Форум vBTorrents.org

Форум vBTorrents.org (https://vbtorrents.org/index.php)
-   VBTT v.2.0 (https://vbtorrents.org/forumdisplay.php?f=2)
-   -   Ошибка в Cron'e (https://vbtorrents.org/showthread.php?t=124)

MiraMaX166 23.01.2010 09:33

Ошибка в Cron'e - причина SiteMap
 
Уже два дня в одно и то же время получаю письмо следующего содержания:

Ошибка базы данных в vBulletin 3.8.4:

Invalid SQL:

SELECT COUNT(*) as cnt,max(lastpost) as lastupdate
FROM vbtt_thread AS thread
INNER JOIN vbtt_tagthread AS tagthread ON
(tagthread.tagid = 1 AND tagthread.threadid = thread.threadid)
WHERE thread.forumid IN()
AND thread.visible = 1
AND thread.sticky IN (0, 1)
AND thread.open <> 10
GROUP BY tagthread.tagid;

Ошибка MySQL : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
AND thread.visible = 1
AND thread.sticky IN (0, 1)' at line 5
Номер ошибки : 1064
Дата запроса : Saturday, January 23rd 2010 @ 02:02:01 AM
Дата ошибки : Saturday, January 23rd 2010 @ 02:02:02 AM
Скрипт : http://торрент_.ru/cron.php
Реферрер :
IP адрес : 91.215.169.133
Имя пользователя : Незарегистрированный
Имя класса : vB_Database
Версия MySQL :

Помогите разобраться, в чем может быть баг.

MiraMaX166 23.01.2010 11:07

Причину нашёл - это vBSEO SiteMap Generator, но он работал нормально до недавнего времени...

Добавлено через 49 минут
Немного покопавшись понял что идёт кривой запрос от сайтмапа:

SELECT COUNT(*) as cnt,max(lastpost) as lastupdate
FROM vbtt_thread AS thread
INNER JOIN vbtt_tagthread AS tagthread ON
(tagthread.tagid = 1 AND tagthread.threadid = thread.threadid)
WHERE thread.forumid IN() - это место вызывает баг
AND thread.visible = 1
AND thread.sticky IN (0, 1)
AND thread.open <> 10
GROUP BY tagthread.tagid;

Если я вставляю туда что-то вида (0, 1), то обработка проходит. Вкурить не могу почему раньше работало, а сейчас нет...
В общем, не нравится пустое значение в скобках...

Добавлено через 17 минут
А вот как выглядет сам шаблон запроса в БД (файл vbseo_sitemap_functions.php)

PHP код:

SELECT COUNT(*) as cnt,max(lastpost) as lastupdate
                   FROM 
" . TABLE_PREFIX . "thread AS thread
                   INNER JOIN 
" . TABLE_PREFIX . "tagthread AS tagthread ON
                       
(tagthread.tagid $rrow[tagid] AND tagthread.threadid thread.threadid)
                   
WHERE thread.forumid IN(" . implode(', ', $vbseo_vars['forumslist']) . ")
                       AND 
thread.visible 1
                       
AND thread.sticky IN (01)
                       AND 
thread.open <> 10
                   GROUP BY tagthread
.tagid 

Получается, что (" . implode(', ', $vbseo_vars['forumslist']) . ") - внутри скобок функции не обрабатываются в строковые переменные для передачи запроса в бд. Из-за чего произошёл крах, не понятно.

Кстати, ща пропарсил и выяснил, что крах возникает не везде, что-то по этому шаблону успевает отработать:

homepage] [11,251.2Kb mem used] [0s (+0s)]
[SECTION START] forumdisplay [11,251.3Kb mem used] [0s (+0s)]
[SECTION START] showthread [11,251.5Kb mem used] [0s (+0s)]
[archive homepage] [11,251.5Kb mem used] [0s (+0s)]
[SECTION START] forumdisplay archived [11,251.5Kb mem used] [0s (+0s)]
[SECTION START] member [11,251.6Kb mem used] [0s (+0s)]
[SECTION START] polls [11,294.5Kb mem used] [0s (+0s)]
[SECTION START] blogs [11,295.0Kb mem used] [0s (+0s)]
[SECTION START] albums [11,295.5Kb mem used] [0s (+0s)]
[SECTION START] groups [11,295.6Kb mem used] [0s (+0s)]
[SECTION START] tags [11,295.9Kb mem used] [0s (+0s)]

Ступор возникает на tagthread...

Отключил в настройках добавление страницы тегов, всё стало обрабатываться...

[homepage] [11,251.9Kb mem used] [0s (+0s)]
[SECTION START] forumdisplay [11,252.0Kb mem used] [0s (+0s)]
[SECTION START] showthread [11,252.2Kb mem used] [0s (+0s)]
[archive homepage] [11,252.2Kb mem used] [0s (+0s)]
[SECTION START] forumdisplay archived [11,252.2Kb mem used] [0s (+0s)]
[SECTION START] member [11,252.3Kb mem used] [0s (+0s)]
[SECTION START] polls [11,295.2Kb mem used] [0s (+0s)]
[SECTION START] blogs [11,295.7Kb mem used] [0s (+0s)]
[SECTION START] albums [11,296.2Kb mem used] [0s (+0s)]
[SECTION START] groups [11,296.4Kb mem used] [0s (+0s)]
[SECTION START] blog tags [11,297.0Kb mem used] [0s (+0s)]
[create sitemap file] filename: sitemap_1.xml.gz, number of urls: 18 [11,292.6Kb mem used] [0s (+0s)]
[create sitemap index] filename: sitemap_index.xml.gz, number of sitemaps: 1 [11,292.6Kb mem used] [0s (+0s)]
Файл sitemap cоздан. Нажмите здесь, чтобы вернуться [11,294.5Kb mem used] [2s (+2s)]

Заметил ещё глюк, точнее продолжение первого:
Если меток на форуме нет вообще - генерация сайтмапа проходит нормально, даже с включенной опцией тэгов,
Но если есть хоть один тэг, то генерация пройдёт успешно только при отключенной опции...

MiraMaX166 23.01.2010 12:32

Сейчас разобрался полностью, после установки vbtt появляется этот глюк с тэгами... Причем на 3.8.1 - нет, а на 3.8.4 - да.
Выхода тут три:
1. Юзать 3.8.1
2. Отключать добавление тэгов в сайтмап
3. Не юзать сайтмап вообще

Skald 23.01.2010 19:27

MiraMaX166, единственное в чем может быть проблема - это нехватка памяти для php-скрипта (сайтмеп генератор много памяти потребляет) тогда будут похожие симптомы...


Текущее время: 23:29. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4 Patch Level 6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot