You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2014-03-17 10:53:26

dethegeek
HELPER
From: France
Registered: 2013-09-03
Posts: 588
Website

[0.84.4] BUG simple quotes dans requete SQL

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

#2 2014-03-17 12:19:45

MoYo
GLPI - Lead
From: Poitiers
Registered: 2004-09-13
Posts: 14,513
Website

Re: [0.84.4] BUG simple quotes dans requete SQL

C'est un problème de plugin je déplace


MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI :    Support     Contribute     References     Freshmeat

Offline

#3 2014-03-20 15:40:53

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,273

Re: [0.84.4] BUG simple quotes dans requete SQL

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

#4 2014-03-20 16:24:00

dethegeek
HELPER
From: France
Registered: 2013-09-03
Posts: 588
Website

Re: [0.84.4] BUG simple quotes dans requete SQL

Bonjour

On se croirait à lire une BD de Tintin big_smile

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

#5 2014-03-20 17:45:38

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,273

Re: [0.84.4] BUG simple quotes dans requete SQL

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

#6 2014-03-24 10:47:35

dethegeek
HELPER
From: France
Registered: 2013-09-03
Posts: 588
Website

Re: [0.84.4] BUG simple quotes dans requete SQL

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

#7 2014-03-24 12:19:06

dethegeek
HELPER
From: France
Registered: 2013-09-03
Posts: 588
Website

Re: [0.84.4] BUG simple quotes dans requete SQL

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

#8 2014-05-15 10:21:48

dethegeek
HELPER
From: France
Registered: 2013-09-03
Posts: 588
Website

Re: [0.84.4] BUG simple quotes dans requete SQL

Bonjour

petit rappel pour ce bug, vu que j'ai trouvé comment le reproduire.

Offline

Board footer

Powered by FluxBB