You are not logged in.
Bonjour
Depuis plusieurs mois le log des requetes SQL de GLPI me remonte des erreurs quand des champs contiennent des simples quotes. Il ne semble n'y avoir aucune incidence dans le fonctionnement de GLPI, mais quand on cherche un autre problème, ces erreurs ralentissent l'interprétation des logs.
En voici donc une :
2014-03-12 17:01:22
*** MySQL query error:
***
SQL: UPDATE `glpi_computers`
SET `comment` = \'En attente d\'une reprise \' WHERE `id` =\'3226\'
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'une reprise ' WHERE `id` ='3226'' at line 2
Backtrace :
glpi/inc/commondbtm.class.php :335 DBmysql->query()
/glpi/inc/commondbtm.class.php :1046 CommonDBTM->updateInDB()
/glpi/plugins/fusioninventory/inc/lock.class.php :569 CommonDBTM->update()
: PluginFusioninventoryLock::deleteLock()
/glpi/inc/plugin.class.php :1049 call_user_func()
/glpi/inc/commondbtm.class.php :1048 Plugin::doHook()
/glpi/plugins/fusioninventory/inc/lock.class.php :436 CommonDBTM->update()
/glpi/plugins/fusioninventory/hook.php :2534 PluginFusioninventoryLock::addLocks()
: plugin_item_update_fusioninventory()
/glpi/inc/plugin.class.php :1049 call_user_func()
/glpi/inc/commondbtm.class.php :1048 Plugin::doHook()
/glpi/front/computer.form.php :88 CommonDBTM->update()
/glpi/front/computer.form.php
Je pense que le log suffira à faire la correction requise, au vu de la requête.
Last edited by dethegeek (2014-03-17 10:55:41)
Offline
C'est un problème de plugin je déplace
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
Je dirais même plus que c'est un problème fusionInventory
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour
On se croirait à lire une BD de Tintin
Votre remarque est pertinente vu le back trace; mais je m'étonne que FusionInventry finisse par se charger de cette tâche vu que le champ concerné apaprtient à GLPI.
Le back trace montre qu'on passe par un hook du plugin, mais je pense que la part de travail de FusionInventory est finie, qu'on retourne dans un contexte appartenant exclusivement au coeur et ensuite, que l'erreur survient.
Le mieux que je puisse faire pour valider cette hypothèse est de reproduire l'erreur dans un GLPI sans aucun plugin. Je vous remonte ça dans 1 ou 2 jours. Pour info, c'est un bug qui n'est pas nouveau pour moi, et un petit essai m'a démontré que c'est la présence d'une apostrophe qui produit cette erreur. Si vous avez moyen d'essayer plus rapidement que moi, allez y de bon coeur !
Offline
Je viens d'ajouter votre texte "En attente d'une reprise" dans le commentaire d'un ordinateur et je n'ai eu aucun soucis.
La particularité de Fusion par rapport à un autre plugin est qu'il va insérer directement dans les tables de GLPI et ne passe pas par ses propres tables.
J'attends le résultat de vos tests
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour
Il doit me manquer quelque chose pour reproduire le problème : aucun des GLPI de production, de test, et de développement n'a reproduit le souci. Pourtant j'ai eu d'autres erreurs identiques depuis le 20 mars.
(identiques dans le sens où c'est une apostrophe qui casse le respect de la syntaxe SQL, toujours dans le champs commentaire d'un objet, peu importe que ce soit un ordinateur ou non)
Offline
Re-bonjour
Je pense avoir trouvé :
Il semble en effet que ça se passe dans FI. J'ai reproduit l'erreur en ayant un commentaire avec une apostrophe, et en cliquant sur le bouton "mettre à jour" de l'onglet "verrous (champs)".
Le bug doit donc se produire quand il y a vérification ou mise à jour des verrous, et pas seulement quand on modifie un champ de texte.
Last edited by dethegeek (2014-03-24 12:20:15)
Offline
Bonjour
petit rappel pour ce bug, vu que j'ai trouvé comment le reproduire.
Offline