Bug MySQL 5.0.51a

Depuis quelques jours on me rapporte des comportements étranges sur les forums de fedora-fr. Les messages récents ne seraient plus triés dans le bon ordre (ni dans aucun autre d'ailleurs)... Étonnant, car je n'ai rien touché au code de notre PunBB depuis un bon petit moment...

Bref un petit vim include/common.php pour passer le PUN_SHOW_QUERIES à 1 et ainsi tracer les requêtes MySQL et m'apercevoir que la requête fait bien un ORDER BY t.last_post DESC:

[sql]
SELECT t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id
FROM punbb_topics AS t
WHERE t.id
IN ( 14524, 29504, 29192, 29526, 29426, 29358, 29381, 29507, 29512, 29534, 29523, 29531, 29532, 29514, 29469, 28791, 29308, 29141, 20353, 29449, 29505, 28867, 29500, 29495, 29535, 29321, 29478, 29480, 29486, 29499, 29506, 29528, 29529, 29457, 29496, 29533, 28380, 29510, 28969, 29142, 29416, 29454, 29511, 29513, 26116, 29333, 29267, 29455, 29493, 29524, 28420, 29258, 29410, 29418, 29452, 29509, 29491, 29477, 29487, 29492, 29501, 29508, 29515, 29517, 29519, 29520, 29525, 29530, 29527, 27926, 28938, 29231, 29265, 29371, 29440, 29485, 29497, 29502, 29518, 29522, 29521 )
GROUP BY t.id, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id
ORDER BY t.last_post DESC
LIMIT 0 , 30

Un café plus tard, je lance directement la requête dans l'interface de phpMyAdmin et je m'aperçois que les résultats ne sont effectivement pas triés dans l'ordre... Mais qu'ai je fais ?! Je trace le log de yum et je constate que je suis récemment passé de mysql-server 5.0.45 à la version 5.0.51a...

[bash]
root@borsalino ~> cat /var/log/yum.log | grep mysql
Oct 15 20:05:57 Installed: mysql.i386 5.0.27-1.fc6
Oct 15 20:08:09 Installed: mysql-server.i386 5.0.27-1.fc6
Oct 15 20:08:10 Installed: php-mysql.i386 5.1.6-3.7.fc6
Jan 20 18:56:44 Installed: mysql-libs.i386 5.0.45-1.fc6.remi
Jan 20 18:56:47 Updated: mysql.i386 5.0.45-1.fc6.remi
Jan 20 18:56:54 Updated: mysql-server.i386 5.0.45-1.fc6.remi
Jan 20 18:56:54 Updated: php-mysql.i386 5.2.5-1.fc6.remi
Feb 17 13:06:18 Updated: mysql-libs.i386 5.0.51a-1.fc6.remi
Feb 17 13:06:22 Updated: mysql.i386 5.0.51a-1.fc6.remi
Feb 17 13:06:29 Updated: mysql-server.i386 5.0.51a-1.fc6.remi

Dans le doute je contact l'ami Remi qui m'aide et me trouve ce bug : #30596 : GROUP BY optimization gives wrong result order.

Effectivement en virant les GROUP BY la requête se retrouve ordonnée comme il faut...
5 minutes plus tard Remi lance un build de MySQL comportant le correctif que j'installe dans la foulée et tout ce remet à marcher dans l'ordre ;-).

[bash]
root@borsalino ~> yum --enable remi-test update mysql\*

3 réactions

  • De Marcet De Marcet - 19/02/2008, 08:35 #1

    Un grand merci en tout cas pour cette correction rapide.

  • De LLaumgui De LLaumgui - 19/02/2008, 09:28 #2

    C'est fou quand même, on part sur un PEBKAC et en fait c'est un problème du moteur...

  • De TitaX De TitaX - 19/02/2008, 11:37 #3

    Félicitation à vous deux !

Attribution - Partage dans les Mêmes Conditions 4.0 International