Нашел баг в 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! 🙂
February 23rd, 2017 - 02:25
Awsome info and right to the point. I am not sure if this is truly the best place to ask but do you people have any ideea where to hire some pronassiofel writers? Thx