Баг в Dumper Lite 1.0.8
Первое новое сообщение • Сообщений: 6
• Страница 1 из 1
Баг в Dumper Lite 1.0.8
Сегодня попытался развернуть дамп, созданный в 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.
В моем случае получилось так, что блок начинался с инструкции 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
Да есть такой баг, возникает при определенных условиях. В версии 2 уже исправлено (точнее там другой парсер).
- zapimir
- Site Admin
- Сообщения: 489
- Зарегистрирован: 01.10.2009 21:39:52
Re: Баг в Dumper Lite 1.0.8
Сначала пытался использовать новую версию (вторую), но, к сожалению, попытка провалилась. База довольно большая (дамп около 700 мегабайт), процесс постоянно прерывался (появлялось сообщение про 30 секунд и кнопку продолжить, хотя реально проходило не больше 10 секунд), а в итоге билась кодировка в некоторых таблицах (хотя сам дамп нормальный, а в дампере принудительно указал cp1251).
А вот старая версия отработала нормально, правда процесс разворачивания занял минут 10. Пришлось дописать:
define('TIME_LIMIT', 0);
ignore_user_abort(true);
И добавить запись файла в конце процесса для сигнализации
А вот старая версия отработала нормально, правда процесс разворачивания занял минут 10. Пришлось дописать:
define('TIME_LIMIT', 0);
ignore_user_abort(true);
И добавить запись файла в конце процесса для сигнализации
- Hint
- Сообщения: 3
- Зарегистрирован: 10.03.2010 00:37:36
Re: Баг в Dumper Lite 1.0.8
Вы восстанавливали базу или делали делали бэкап в новой версии? Просто сейчас отключена работа с чужими дампами, возможно ошибки были из-за этого.
- zapimir
- Site Admin
- Сообщения: 489
- Зарегистрирован: 01.10.2009 21:39:52
Re: Баг в Dumper Lite 1.0.8
zapimir писал(а):Вы восстанавливали базу или делали делали бэкап в новой версии? Просто сейчас отключена работа с чужими дампами, возможно ошибки были из-за этого.
Дамп был создан этим же скриптом (везде указывал cp1251, да и сама база полностью в cp1251). При восстановлении базы из дампа была побита кодировка в одной таблице (остальные же перенеслись нормально).
Если говорить точнее, то речь идет о базе форума Invision Power Board... побилась таблица с сообщениями (posts).
- Hint
- Сообщения: 3
- Зарегистрирован: 10.03.2010 00:37:36
Re: Баг в Dumper Lite 1.0.8
Значит у базы просто битая кодировка была, бэкап рекомендуется делать в режиме авто, восстановление аналогично.
- zapimir
- Site Admin
- Сообщения: 489
- Зарегистрирован: 01.10.2009 21:39:52
Сообщений: 6
• Страница 1 из 1
Кто сейчас на конференции
Сейчас этот форум просматривают: MSN [Bot] и гости: 1

