1

Тема: Ошибка после обновления с s2-dev-r1685 на s2-dev-r1711

Роман, после обновления на последнюю версию при включенном дебаге выдает такое:

The error occurred on line 62 in /home/.../_admin/tree.php

Database reported: 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 ')' at line 1 (Errno: 1064).

Phpinfo сообщает, что версия MySQL у меня 5.0.51a. В админке показывает MySQL Improved 5.1.39.

Что пошло не так?

10.04.2014 20:22:07. Текст был изменен (boo).

2

Re: Ошибка после обновления с s2-dev-r1685 на s2-dev-r1711

Не могу пока понять, в чем дело.

Правильно ли я понимаю, что ошибка возникает при добавлении новых страниц?

У вас нет каких-нибудь нестандартных расширений с хуком "fn_create_article_pre_ins_qr"? Попробуйте их отключить и посмотреть, не пропадает ли ошибка. В частности, не установлено ли расширение отсюда: http://s2cms.ru/forum/topic/73/? Для надежности можно попробовать отключить (но не удалять!) все расширения.

Если предыдущее не поможет, нужно будет понять, какой sql-запрос формируется в этом файле на 62 строчке, где возникает ошибка: http://s2cms.ru/trac/browser/trunk/_admin/tree.php#L62
У вас есть доступ к лог-файлам ошибок веб-сервера? Умеете пользоваться средствами разработки браузера? Инструкцию напишу после, в зависимости от ответа.

3

Re: Ошибка после обновления с s2-dev-r1685 на s2-dev-r1711

Именно так. Ошибка возникает при попытке создать новую страницу. Редактирование уже существующих проходит нормально.

Отключение всех расширений ничего не дало.
Доступ к логам есть, ошибок в них нет.

Средствами разработки браузера пользоваться умею.

Сначала пишет, что не может найти:

jquery-2.0.3.min.map
/_admin/js

http://6.firepic.org/6/images/2014-04/10/i7c283dh2p4n.gif
По этому поводу на stackoverflow пишут, что этот файл нужен для отладки минифицированной версии jQuery и рекомендуют отключать девелоперские опции или же оставлять файлик.

При попытке создать выдает ошибку 503:

GET http://…/_admin/site_ajax.php?action=create&id=25&title=%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F+%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 503 (Service Temporarily Unavailable) jquery.js:6
x.support.cors.e.crossDomain.send jquery.js:6
x.extend.ajax jquery.js:6
(anonymous function) admin.js:643
x.event.dispatch jquery.js:5
y.handle jquery.js:5
x.event.trigger jquery.js:5
x.fn.extend.triggerHandler jquery.js:5
func.apply.$.extend.__callback jquery.jstree.js:44
(anonymous function) jquery.jstree.js:188
(anonymous function) jquery.jstree.js:183
x.isFunction.i jquery.js:4
x.event.dispatch jquery.js:5
y.handle jquery.js:5
obj.css.append.$.keyup jquery.jstree.js:184
x.event.dispatch jquery.js:5
y.handle jquery.js:5

Вызов происходит при выполнении функции в admin.js (http://s2cms.ru/trac/browser/trunk/_adm … in.js#L643).

11.04.2014 05:07:22. Текст был изменен (boo).

4

Re: Ошибка после обновления с s2-dev-r1685 на s2-dev-r1711

Я решил написать фрагмент кода и сделать скриншот, и нашел ошибку: http://s2cms.ru/trac/changeset/1713
Можете скачать последнюю версию: http://s2cms.ru/downloads/development/

На всякий случай напишу, что я имел в виду в предыдущем посте. Непосредственно перед запросом добавляем функцию var_dump:

($hook = s2_hook('fn_create_article_pre_ins_qr')) ? eval($hook) : null;
var_dump($s2_db->query_build($query, true));
$s2_db->query_build($query) or error(__FILE__, __LINE__);

Данные отправятся в ответ на аякс-запрос, и их можно просмотреть на вкладке network:

http://puu.sh/83ojl.png

По строке запроса я выяснил, в чем ошибка (запрос на скриншоте уже исправленный).

5

Re: Ошибка после обновления с s2-dev-r1685 на s2-dev-r1711

Комментарий к вашим раскопкам. Присутствие файла /_admin/js/jquery-2.0.3.min.map влияет только на отладку. На строчке 643 в admin.js всё в порядке - там код аякс-запроса к серверу. В ответ сервер выдает ошибку 503 из-за ошибочного sql-запроса.

6

Re: Ошибка после обновления с s2-dev-r1685 на s2-dev-r1711

Отлично, обновил, всё работает как надо!

Жаль, что знаний у меня недостаточно пока для полного понимания что и где происходит и по какой причине. Буду разбираться.