Заметки Ruby программиста Всякие полезные наработки

5Июн/100

Нашел баг в Sequel

Недавно разбирался с замечательным e-commerce решением на ruby . Когда дело дошло до деплоя - решил попробовать heroku. Соответствующее расширение для адаптации Spree к "суровым реалиям" heroku безнадежно устарело, поэтому пришлось его переписать.

Все вроде получилось и заработало... Но вот засада: команда "heroku db:push" вдруг стала пропихивать на хост вопросительные знаки (?) вместо кириллических символов... Варианты решения проблемы путем явного указания кодировки не помогли.

Начал копать: для проталкивания данных на хост heroku использует taps. Который на днях обновился до версии 0.3.8 и потянул за собой обновление гема sequel до версии 3.12.0, который используется для чтения данных... и, как оказалось, напрасно! Подлый баг притаился в адаптере mysql для sequel. Автор gem sequel, поддавшись на правокацию, переместил установку кодировки после инициализации соединения с БД. В результате кодировка не устанавливалась и происходило некорректное чтение из БД кириллических символов.

Найденный баг зарепортил авторам Sequel и taps. Если с taps достаточно просто откатится на предыдущую версию sequel, то с самим Sequel - проблема. У автора нет нормально решения. Поэтому приглашаются все для обсуждения и совместного поиска решения.

Спасибо за внимание. Для начала достаточно. 🙂

З.Ы.

Корректно работающей версией taps на данный момент остается версия 0.3.6, sequel - 3.11.0.

З.З.Ы.

taps 0.3.9 + sequel 3.12.1 снова в строю. Таки решили откатить проблемный патч, но во всем обвинили баг в libmysqlclient. Aman Gupta saves the world! 🙂

Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Нет обратных ссылок на эту запись.