You are not logged in.
bonjour,
Je viens de faire la maj de mon glpi et tout fonctionne nickel sauf la partie Logiciels qui refuse tout simplement de s'afficher. (ça mouline pendant plusieurs secondes et puis rien). Les tables sont tjrs pleines et en mode debug rien ne s'affiche, pas même les infos du debug. Là je viens de refaire une installation en partant juste de la base de données et en conservant le dossier files et config et c'est tjrs pareil. Le hic, c'est que je ne me suis pas rendu compte tout de suite qu'il y avait un couac.
en vous remerciant,
ad
Last edited by ad.aimm (2014-09-29 15:28:03)
Offline
ci dessous la requête qui pose problème :
TCP Port: 3306, Named Pipe: C:/xampp/mysql/mysql.sock
Time Id Command Argument
# Time: 140930 10:08:15
# User@Host: glpi[glpi] @ SRVV07.groupe.local [fe80::a9da:5df9:5600:d307%11]
# Query_time: 53.433573 Lock_time: 0.000000 Rows_sent: 21 Rows_examined: 77581
use glpi;
SET timestamp=1412064495;
SELECT 'ad' AS currentuser,
`glpi_softwares`.`entities_id`, `glpi_softwares`.`is_recursive`, `glpi_softwares`.`name` AS ITEM_0,
`glpi_softwares`.`id` AS ITEM_0_2,
`glpi_manufacturers`.`name` AS ITEM_1,
GROUP_CONCAT(DISTINCT CONCAT(`glpi_softwareversions`.`name`,'$$',`glpi_softwareversions`.`id`) SEPARATOR '$$$$')
AS ITEM_2,
COUNT(DISTINCT `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`id`)
AS ITEM_3,
FLOOR(SUM(`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`number`)
* COUNT(DISTINCT `glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`id`)
/ COUNT(`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`id`)) AS ITEM_4,
MIN(`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`number`) AS ITEM_4_2,
GROUP_CONCAT(DISTINCT CONCAT(`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`name`, ' - ',
`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`otherserial`, '$$',
`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`id`) SEPARATOR '$$$$')
AS ITEM_5,
`glpi_softwares`.`id` AS id FROM `glpi_softwares`LEFT JOIN `glpi_manufacturers`
ON (`glpi_softwares`.`manufacturers_id` = `glpi_manufacturers`.`id`
) LEFT JOIN `glpi_softwareversions`
ON (`glpi_softwares`.`id` = `glpi_softwareversions`.`softwares_id`
) LEFT JOIN `glpi_computers_softwareversions` AS glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e
ON (`glpi_softwareversions`.`id` = `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`softwareversions_id`
AND `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`is_deleted_computer` = '0'
AND `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`is_deleted` = '0'
AND `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`is_template_computer` = '0'
) LEFT JOIN `glpi_softwarelicenses` AS glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296
ON (`glpi_softwares`.`id` = `glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`softwares_id`
AND (`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`expire` IS NULL
OR `glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`expire` > NOW()) ) WHERE `glpi_softwares`.`is_deleted` = '0' AND `glpi_softwares`.`is_template` = '0' GROUP BY `glpi_softwares`.`id` ORDER BY ITEM_0 ASC LIMIT 0, 75;
Offline
et je peux même dire que c'est la table : glpi_softwareversions qui pose problème car si je la vide, j'ai un affichage. ouhh c'est chaud !
Offline
re,
alors j'ai avancé, j'ai mis le doigt sur ce qui pose problème. en fait, dans la vue logiciels on affiche le champ "otherserial" (numéro d'inventaire de la licence) de la table "glpi_softwarelicenses". si je retire ce champs à l'affichage, plus de bug tout fonctionne bien.
ce pb affecte un logiciel qui a 360 entrées, et si j'en supprime aléatoirement 50, ma vue avec ce fameux champs s'affiche correctement. en revanche si j'en supprime que 30, ça fini par s'afficher mais avec une boucle à l'affichage sur le champ "otherserial". autre constatation, dans ce fameux champs il est concaténé le champ "name" + "-" + "otherserial" ce qui ne semble pas être très logique à mon sens.
j'ai constaté le même couac avec la version 0.84.6 et donc la 0.84.7. je pense que ma base de données est clean et que c'est vraiment un pb lié à ces versions.
à vous lire,
merci,
ad.
Offline
une idée lumineuse svp ? je commence à manquer d'idée... merci
Offline
Bonjour,
PI, j'ai migré hier de 0.83.7 à 0.84.8 et je viens d'être confrontée exactement au même phénomène : impossible d'afficher la page logiciels, pas d'erreur, aucune information affichée malgrè le mode débug.
Seul l'arrêt du service mysql me permet de voir les informations du mode debug (je ne suis pas en prod mais sur un "bac à sable" de migration je peux donc faire des tests).
Comme je suis sur un bac à sable, j'ai activé un certain nombre de plugins et comme peu de personnes semblent remonter ce souci, je me demande si un plugin n'est pas à l'origine de ces soucis.
@ad.aimm : tu as des plugins activés ? si oui lesquels ?
et comme le thread a plus d'un mois, as-tu trouvé une solution pérenne ?
Je commence à creuser, y compris en repartant de ma base de prod (avec moins de plugin actifs donc).
cdt,
Sylvie
Offline
si t'as une page blanche, tu dois avoir un message d'erreur fatale dans les log d'erreur d'apache
Offline
Re,
J'ai récupéré le SQL qui est lancé :
SELECT 'glpi' AS currentuser, `glpi_softwares`.`entities_id`, `glpi_softwares`.`is_recursive`, `glpi_softwares`.`name` AS ITEM_0, `glpi_softwares`.`id` AS ITEM_0_2, `glpi_manufacturers`.`name` AS ITEM_1, GROUP_CONCAT(DISTINCT CONCAT(`glpi_softwareversions`.`name`,'$$',`glpi_softwareversions`.`id`) SEPARATOR '$$$$') AS ITEM_2, GROUP_CONCAT(DISTINCT CONCAT(`glpi_operatingsystems_0a35c270152be19b5c8a485502badcd7`.`name`,'$$',`glpi_operatingsystems_0a35c270152be19b5c8a485502badcd7`.`id`) SEPARATOR '$$$$') AS ITEM_3, COUNT(DISTINCT `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`id`) AS ITEM_4, FLOOR(SUM(`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`number`) * COUNT(DISTINCT `glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`id`) / COUNT(`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`id`)) AS ITEM_5, MIN(`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`number`) AS ITEM_5_2, `glpi_softwarecategories`.`name` AS ITEM_6, `glpi_softwares`.`id` AS id
FROM `glpi_softwares`
LEFT JOIN `glpi_manufacturers` ON (`glpi_softwares`.`manufacturers_id` = `glpi_manufacturers`.`id` )
LEFT JOIN `glpi_softwareversions` ON (`glpi_softwares`.`id` = `glpi_softwareversions`.`softwares_id` )
LEFT JOIN `glpi_operatingsystems` AS glpi_operatingsystems_0a35c270152be19b5c8a485502badcd7 ON (`glpi_softwareversions`.`operatingsystems_id` = `glpi_operatingsystems_0a35c270152be19b5c8a485502badcd7`.`id` )
LEFT JOIN `glpi_computers_softwareversions` AS glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e ON (`glpi_softwareversions`.`id` = `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`softwareversions_id` AND `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`is_deleted_computer` = '0' AND `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`is_deleted` = '0' AND `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`is_template_computer` = '0' )
LEFT JOIN `glpi_softwarelicenses` AS glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296 ON (`glpi_softwares`.`id` = `glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`softwares_id` AND (`glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`expire` IS NULL OR `glpi_softwarelicenses_92989d92e67a92f40cdb9012612c4296`.`expire` > NOW()) )
LEFT JOIN `glpi_softwarecategories` ON (`glpi_softwares`.`softwarecategories_id` = `glpi_softwarecategories`.`id` )
WHERE `glpi_softwares`.`is_deleted` = '0' AND `glpi_softwares`.`is_template` = '0' GROUP BY `glpi_softwares`.`id`
ORDER BY ITEM_0 ASC LIMIT 0, 20
Si je le lance tel quel sur la base, j'ai une réponse en 39 secondes.
Si je commente le "LEFT JOIN `glpi_computers_softwareversions`" (et les champs correspondants bien sûr), j'ai une réponse en 1.719 secondes.
Si je remets le "LEFT JOIN `glpi_computers_softwareversions`" mais seulement avec le critère de jointure
`glpi_softwareversions`.`id` = `glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`softwareversions_id`
j'ai un réponse en moins de 5 secondes.
Dès que je remets
`glpi_computers_softwareversions_154c8440a55efea26b94d5d49ee0f76e`.`is_deleted_computer` = '0'
dans le critère de jointure, je redépasse les 30 secondes.
Le champ is_deleted_computer de la table glpi_computers_softwareversions n'est pas indexé.
J'ai ajouté un index sur le champ mais sans amélioration.
J'ai tenté un index sur les 3 champs is_deleted_computer, is_deleted et is_template_computer sans amélioration non plus.
A noter:
- mon bac à sable 0.84.8 (y compris la base mysql) est sous Windows (avec un xamp "from scratch") et certainement pas optimisé.
- ma prod (0.83.7) est sur un redhat (avec la base sur un autre serveur redhat)
- la table glpi_computers_softwareversions (prod et bac à sable) fait 2 493 013 lignes.
Je vais déjà optimiser un peu la config du mysql du bac à sable pour voir.
Cdt,
Sylvie
Offline
bonjour,
Oui je suis resté en 0.83.91 puisque je n'avais aucune aide ... Je pense avoir correctement identifié le problème me concernant par contre je ne sais pas le résoudre. (c'est tout le problème d'une solution Open Source). Sur le fond, je reste un peu déçu car j'avais l'impression d'avoir gratté suffisamment pour apporter des billes. Bref, fini les pleures, je retenterai ma chance en 0.85.x dans quelques temps en espérant que je n'ai plus ce pb. Entre temps, si quelqu'un peut nous aider ba c'est super
merci,
ad.
Offline