[sisyphus] dspam-mysql vs MySQL server in Sisyphus

Ivan Adzhubey =?iso-8859-1?q?iadzhubey_=CE=C1_rics=2Ebwh=2Eharvard=2Eedu?=
Вт Янв 30 22:48:09 MSK 2007


On Tuesday 30 January 2007 13:35, Sergey Ivanov wrote:
> Ivan Adzhubey wrote:
> > On Tuesday 30 January 2007 09:24, Sergey Ivanov wrote:
> >> Значит у вас какие-то очень хорошие настройки сервера MySQL, так что он
> >> по дефолту создаёт более правильные таблицы чем у меня. Я специально
> >> попробовал те же самые эксперименты провёл в свежесгенерированном
> >> виртуальном OpenVZ контейнере с сизифом, так что у меня MySQL по
> >> сравнению с Сизифом никак не изменён ни в лучшую ни в худшую сторону.
> >> Что ещё может быть? Сбои оборудования - трудно поверить...
> >> Или MySQL этот вообще работает непредсказуемо?
> >
> > Таблицы тут скорее всего непричем, попробуйте сделать из своей таблице
> > просто select * без where, должны получить все 5 строк. Это какой-то баг
> > в операторе IN, может быть был патч, который действительно выпал из
> > архитектуры x86_64? Надо мейнтейнера дергать, повесьте баг в багзилле. Я
> > попробую разобраться, но у меня нет под рукой Сизифа на x86_64. А у вас
> > x32 Сизиф есть, проверьте?
>
> Иван,
> я вчера ещё пробовал в openvz контейнере, на 64-х битной машине но сам
> контернер 32-х битный. Там результат тот же, выбраны 3 строчки.
> И если я select * то получаю все пять строчек.
> Но похоже это очень распространённый для MySQL баг, я попробовал
> имеющийся под ругой MySQL 5.0.27,REV=2006.12.29 от blastwave на
> Solaris-10 i386 (32 bit) и получил вообще всего одну строчку.
> Ещё эта проблема акитвно обсуждалась в
> http://dspam.nuclearelephant.com/dspam-users/index.html см. тред "MySQL
> 4.1 Bug",  они ещё упоминали багзиллу MySQL
> (http://bugs.mysql.com/bug.php?id=24759), но там вроде убедить авторов
> MySQL что это баг - не удалось, зато они наоборот убедили оппонентов что
> так и должно быть.

Почитал - согласен. В багзилле MySQL все объяснено вполне разумно - потеря 
точности при конвертации из строки в double. Можно конечно поспорить по 
поводу неоднозначного результата конверсии (зависит от платформы и даже от 
того, как написано выражение), но это бесполезно - результат такой конверсии 
неопределен по определению ;-). Так что это скорее баг dspam, надо либо 
убрать одинарные кавычки (зачем они вообще нужны если значение - число?) или 
добавить в явном виде оператор CAST(... AS UNSIGNED). Похоже, дергать надо 
мейнтейнеров dspam.

--Иван


> Я на всякий случай напишу про это в нашу багзиллу на MySQL-server,
> однако у меня самого нет ни малейшей ясности баг это и если баг то не
> dspam'ский ли.



Подробная информация о списке рассылки Sisyphus