Project

General

Profile

Documentation #2505

Referers se cumulant sur la journée en cours

Added by RealET 🔸 over 7 years ago. Updated about 7 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Target version:
Start date:
01/23/2012
Due date:
% Done:

0%


Description

Le symptôme

La page affichant les liens entrant du jour garde les referers de la veille et les cumule.

Le symptôme est apparu après passage de Debian 5 à Debian 6.

Version de MySQL 5.1.49-3

Recherche de la cause

Le code concerné :
http://core.spip.org/projects/spip/repository/entry/branches/spip-2.1/ec
rire/genie/popularites.php#L73

@ sql_alter("TABLE
spip_referers DROP visites_veille,

CHANGE visites_jour
visites_veille INT(10) UNSIGNED NOT NULL DEFAULT '0',
ADD visites_jour INT(10)
UNSIGNED NOT NULL DEFAULT '0'");
@

Le SQL exécuté :

ALTER TABLE spip_referers DROP visites_veille, CHANGE visites_jour
visites_veille INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD visites_jour
INT(10) UNSIGNED NOT NULL DEFAULT '0'

J’ai testé sur le serveur via PHPMyAdmin : pas d’erreur apparente :

Votre requête SQL a été exécutée avec succès ( Traitement en 0.0256 sec.
)

ALTER TABLE spip_referers DROP visites_veille,
CHANGE visites_jour visites_veille INT( 10 ) UNSIGNED NOT NULL DEFAULT
'0',
ADD visites_jour INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'

Sauf que l’action n’est pas faite (table inchangée).

Je l’ai fait en 3 requêtes successives :

@ALTER TABLE spip_referers DROP visites_veille ;

ALTER TABLE spip_referers CHANGE visites_jour visites_veille INT
UNSIGNED NOT NULL DEFAULT '0' ;

ALTER TABLE spip_referers ADD visites_jour INT UNSIGNED NOT NULL
DEFAULT '0' ;@

Et là, l’action est faite.

C'est un bug de MySQL !!!!

Le bug est connu chez MySQL : http://bugs.mysql.com/bug.php?id=61493
Avec :
[13 Jun 2011 5:24] Shane Bester
a workaround is to use "old_alter_table=1" in my.cnf

[21 Jun 2011 19:00] Paul DuBois
Noted in 5.1.59, 5.5.15, 5.6.3 changelogs.

ALTER TABLE {MODIFY|CHANGE} ... FIRST did nothing except rename
columns if the old and new versions of the table had exactly the same
structure with respect to column data types. As a result, the mapping
of column name to column data was incorrect. The same thing happened
for ALTER TABLE DROP COLUMN, ADD COLUMN statements intended to
produce a new version of table with exactly the same structure as the
old version.

CHANGESET - http://lists.mysql.com/commits/139515

Résolution

old_alter_table=1 dans le my.cnf

a résolu le bug

History

#1 Updated by cedric - over 7 years ago

  • Status changed from Nouveau to Fermé

problème noté pour mémoire dans http://zone.spip.org/trac/spip-zone/changeset/59170
on ferme pour le moment vu qu'il y a un patch cote mysql

#2 Updated by b b about 7 years ago

  • Project changed from SPIP to Statistiques
  • Category deleted (19)

Also available in: Atom PDF