Баг в Dumper Lite 1.0.8

Что-то не работает? Пишите здесь.

Баг в Dumper Lite 1.0.8

Новое сообщение Hint » 10.03.2010 00:53:55

Сегодня попытался развернуть дамп, созданный в 1.0.8 с использованием того же скрипта (1.0.8). Сильно удивился, когда увидел сообщение об ошибке в SQL-запросе. На что я только не думал, часа 4 убил на поиск причины, а оказалось, что ошибка в самом скрипте, а точнее в функции fn_read_str. В определенный момент она возвращает не очередную строку, а здоровенный блок из множества строк.

В моем случае получилось так, что блок начинался с инструкции INSERT (но переменная $insert не была установлена, т. к. там жесткая регулярка). Размер "запроса" в этом случае превысил 65536 байт и был передан в mysql_query. А вот следующий запрос уже содержал по сути мусор и приводил к ошибке.

Короче, в функции fn_read_str ошибка. Мне уже лень было фиксить, потому что голова трещала, поэтому я просто изменил "размер буфера": по умолчанию за раз читается 4096 символов, а я поменял на 4095, "сбив" условия. Скорее всего баг в strpos или в trim (если конец строки попадает на нулевой символ).

Несколько фраз для поисковиков.
Sypex Dumper. Возникла ошибка! Неправильный запрос. You have an error in your SQL syntax.
Получаете такие ошибки? Попробуйте заменить в dumper.php все числа 4096 на 4095.
Hint
 
Сообщения: 3
Зарегистрирован: 10.03.2010 00:37:36

Re: Баг в Dumper Lite 1.0.8

Новое сообщение zapimir » 10.03.2010 09:06:44

Да есть такой баг, возникает при определенных условиях. В версии 2 уже исправлено (точнее там другой парсер).
zapimir
Site Admin
 
Сообщения: 489
Зарегистрирован: 01.10.2009 21:39:52

Re: Баг в Dumper Lite 1.0.8

Новое сообщение Hint » 10.03.2010 11:29:18

Сначала пытался использовать новую версию (вторую), но, к сожалению, попытка провалилась. База довольно большая (дамп около 700 мегабайт), процесс постоянно прерывался (появлялось сообщение про 30 секунд и кнопку продолжить, хотя реально проходило не больше 10 секунд), а в итоге билась кодировка в некоторых таблицах (хотя сам дамп нормальный, а в дампере принудительно указал cp1251).
А вот старая версия отработала нормально, правда процесс разворачивания занял минут 10. Пришлось дописать:
define('TIME_LIMIT', 0);
ignore_user_abort(true);
И добавить запись файла в конце процесса для сигнализации :)
Hint
 
Сообщения: 3
Зарегистрирован: 10.03.2010 00:37:36

Re: Баг в Dumper Lite 1.0.8

Новое сообщение zapimir » 15.03.2010 12:32:07

Вы восстанавливали базу или делали делали бэкап в новой версии? Просто сейчас отключена работа с чужими дампами, возможно ошибки были из-за этого.
zapimir
Site Admin
 
Сообщения: 489
Зарегистрирован: 01.10.2009 21:39:52

Re: Баг в Dumper Lite 1.0.8

Новое сообщение Hint » 15.03.2010 23:01:15

zapimir писал(а):Вы восстанавливали базу или делали делали бэкап в новой версии? Просто сейчас отключена работа с чужими дампами, возможно ошибки были из-за этого.

Дамп был создан этим же скриптом (везде указывал cp1251, да и сама база полностью в cp1251). При восстановлении базы из дампа была побита кодировка в одной таблице (остальные же перенеслись нормально).
Если говорить точнее, то речь идет о базе форума Invision Power Board... побилась таблица с сообщениями (posts).
Hint
 
Сообщения: 3
Зарегистрирован: 10.03.2010 00:37:36

Re: Баг в Dumper Lite 1.0.8

Новое сообщение zapimir » 16.03.2010 15:32:25

Значит у базы просто битая кодировка была, бэкап рекомендуется делать в режиме авто, восстановление аналогично.
zapimir
Site Admin
 
Сообщения: 489
Зарегистрирован: 01.10.2009 21:39:52


Вернуться в Проблемы и баги

Кто сейчас на конференции

Сейчас этот форум просматривают: MSN [Bot] и гости: 1

cron