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 2019-03-23 00:45:16

jerome.calmettes
Member
From: Bourg en Bresse
Registered: 2013-09-27
Posts: 13

GLPI 9.4.1.1 lenteurs - inexploitable

Bonjour

Suite migration de la 9.2 en 9.4.1.1 GLPI est devenu extrêmement lent ce qui le rend totalement inexploitable
Auparavant tout était très fonctionnel et rien n'a été fait hormis la mise a jour et celle des plugins
A noter que si on retire Fusion cela améliore les choses mais ca reste très difficile de travailler au dela de 5 personnes simultanées

GLPI tourne sur un MariaDB (ras coté BDD qui est a peine a 1% d'utilisation coté CPU et 5% coté mémoire)
Coté IIS quand je regarde les logs de GLPI je me retrouve noyé sous les erreurs (fichiers log qui atteint 2 Go en une journée...)
A noter que j'ai déjà désactivé tous les plugins, je les ai supprimés, réinstallés et c'est pareil
Idem pour les fichiers de GLPI (ou j'ai fait une réinstall)
J'ai tenté 2 upgrades et toujours le même résultat


Les erreurs récurrentes sont  (php-error-log):
[2019-03-22 09:01:00] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in D:\Sites\glpi\inc\toolbox.class.php line 659
  *** PHP Notice(8): Undefined index: SCRIPT_FILENAME
  Backtrace :
  inc\autoload.function.php:58                       
  inc\includes.php:149                               isAPI()
  front\cron.php:38                                  include()


[2019-03-22 09:05:06] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in D:\Sites\glpi\inc\toolbox.class.php line 659
  *** PHP Warning(2): in_array() expects parameter 2 to be array, null given
  Backtrace :
  :                                                 
  inc\plugin.class.php:1720                          in_array()
  inc\plugin.class.php:1083                          Plugin::isPluginLoaded()
  inc\includes.php:106                               Plugin::doHook()
  ajax\common.tabs.php:33                            include()

[2019-03-22 23:36:30] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in D:\Sites\glpi\inc\toolbox.class.php line 659
  *** PHP Warning(2): Invalid argument supplied for foreach()
  Backtrace :
  inc\plugin.class.php:1241                         
  inc\search.class.php:6664                          Plugin::getAddSearchOptions()
  inc\log.class.php:119                              Search::getOptions()
  inc\commondbtm.class.php:632                       Log::constructHistory()
  inc\commondbtm.class.php:1446                      CommonDBTM->updateInDB()
  plugins\fusioninventory\inc\agent.class.php:973    CommonDBTM->update()
  ...fusioninventory\inc\communication.class.php:210 PluginFusioninventoryAgent->setAgentVersions()
  ...fusioninventory\inc\communication.class.php:461 PluginFusioninventoryCommunication->import()
  plugins\fusioninventory\front\communication.php:93 PluginFusioninventoryCommunication->handleOCSCommunication()
  plugins\fusioninventory\index.php:59               include_once()


Coté plugin Fusion :

[2019-03-22 23:39:01] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in D:\Sites\glpi\inc\toolbox.class.php line 659
  *** PHP Notice(8): Use of undefined constant PLUGIN_FUSIONINVENTORY_VERSION - assumed 'PLUGIN_FUSIONINVENTORY_VERSION'
  Backtrace :
  inc\toolbox.class.php:676                         
  plugins\fusioninventory\front\communication.php:73 Toolbox::userErrorHandlerDebug()
  plugins\fusioninventory\index.php:59               include_once()


Et dans le sql error log

  *** MySQL query error:
  SQL: INSERT INTO `glpi_items_operatingsystems` (`itemtype`, `items_id`, `operatingsystemarchitectures_id`, `operatingsystemkernelversions_id`, `operatingsystems_id`, `operatingsystemversions_id`, `operatingsystemservicepacks_id`, `operatingsystemeditions_id`, `licenseid`, `license_number`, `is_dynamic`, `entities_id`, `is_recursive`, `date_creation`, `date_mod`) VALUES ('Computer', '4376', '1', '2310', '30', '27', '0', '2', '00252-60273-03099-AA077', '', '1', '0', '0', '2019-03-22 23:33:53', '2019-03-22 23:33:53')
  Error: Duplicate entry '4376-Computer-30-1' for key 'unicity'
  Backtrace :
  inc\dbmysql.class.php:821                         
  inc\commondbtm.class.php:658                       DBmysql->insert()
  inc\commondbtm.class.php:1140                      CommonDBTM->addToDB()
  ...nventory\inc\inventorycomputerlib.class.php:186 CommonDBTM->add()
  ...ry\inc\inventorycomputerinventory.class.php:537 PluginFusioninventoryInventoryComputerLib->updateComputer()
  ...inventory\inc\inventoryruleimport.class.php:769 PluginFusioninventoryInventoryComputerInventory->rulepassed()
  inc\rule.class.php:1432                            PluginFusioninventoryInventoryRuleImport->executeActions()
  inc\rulecollection.class.php:1539                  Rule->process()
  ...ry\inc\inventorycomputerinventory.class.php:337 RuleCollection->processAllRules()
  ...ry\inc\inventorycomputerinventory.class.php:102 PluginFusioninventoryInventoryComputerInventory->sendCriteria()
  ...fusioninventory\inc\communication.class.php:229 PluginFusioninventoryInventoryComputerInventory->import()
  ...fusioninventory\inc\communication.class.php:461 PluginFusioninventoryCommunication->import()
  plugins\fusioninventory\front\communication.php:93 PluginFusioninventoryCommunication->handleOCSCommunication()
  plugins\fusioninventory\index.php:59               include_once()

Aucun message d'erreur durant la migration

Si vous avez une piste je suis preneur
Bonne soirée


GLPI 9.4.1.1 - FusionInventory 9.4.0+1.0 / Windows 2012R2 / PHP 7.1.7 x64 / IIS 7.5 / MariaDB 10.1.26

Offline

#2 2019-03-24 16:35:12

jerome.calmettes
Member
From: Bourg en Bresse
Registered: 2013-09-27
Posts: 13

Re: GLPI 9.4.1.1 lenteurs - inexploitable

Bonjour

Nouvelle tentative et réinstallation complète
J'ai refait un tuning complet innodb qui améliore les choses
Par contre les plugins continue a cracher des erreurs
Exemple fusion qui me donne des problème SQL sur des duplicate entry

  *** MySQL query error:
  SQL: INSERT INTO `glpi_items_operatingsystems` (`itemtype`, `items_id`, `operatingsystemarchitectures_id`, `operatingsystemkernelversions_id`, `operatingsystems_id`, `operatingsystemversions_id`, `operatingsystemservicepacks_id`, `operatingsystemeditions_id`, `licenseid`, `license_number`, `is_dynamic`, `entities_id`, `is_recursive`, `date_creation`, `date_mod`) VALUES ('Computer', '4986', '1', '2308', '1', '0', '1', '0', '55041-011-6703543-86734', '', '1', '0', '0', '2019-03-24 15:30:06', '2019-03-24 15:30:06')
  Error: Duplicate entry '4986-Computer-1-1' for key 'unicity'
  Backtrace :
  inc\dbmysql.class.php:821                         
  inc\commondbtm.class.php:658                       DBmysql->insert()
  inc\commondbtm.class.php:1140                      CommonDBTM->addToDB()
  ...nventory\inc\inventorycomputerlib.class.php:186 CommonDBTM->add()
  ...ry\inc\inventorycomputerinventory.class.php:537 PluginFusioninventoryInventoryComputerLib->updateComputer()
  ...inventory\inc\inventoryruleimport.class.php:769 PluginFusioninventoryInventoryComputerInventory->rulepassed()
  inc\rule.class.php:1432                            PluginFusioninventoryInventoryRuleImport->executeActions()
  inc\rulecollection.class.php:1539                  Rule->process()
  ...ry\inc\inventorycomputerinventory.class.php:337 RuleCollection->processAllRules()
  ...ry\inc\inventorycomputerinventory.class.php:102 PluginFusioninventoryInventoryComputerInventory->sendCriteria()
  ...fusioninventory\inc\communication.class.php:229 PluginFusioninventoryInventoryComputerInventory->import()
  ...fusioninventory\inc\communication.class.php:461 PluginFusioninventoryCommunication->import()
  plugins\fusioninventory\front\communication.php:93 PluginFusioninventoryCommunication->handleOCSCommunication()
  plugins\fusioninventory\index.php:59               include_once()

Ou dans les logs php qui me dit que le user crée pour Fusion (user 3365 ici) trouve 2 résultats (j'ai cherché en base, je n'en ai bien qu'un)
[2019-03-24 15:33:02] glpiphplog.WARNING: CommonDBTM::getFromDBByCrit() in \glpi-9.4.1\inc\commondbtm.class.php line 378
getFromDBByCrit expects to get one result, 2 found!  {"user":"3365@XXXMONSERVEURXXX"}


Merci


GLPI 9.4.1.1 - FusionInventory 9.4.0+1.0 / Windows 2012R2 / PHP 7.1.7 x64 / IIS 7.5 / MariaDB 10.1.26

Offline

#3 2019-03-24 22:48:03

jerome.calmettes
Member
From: Bourg en Bresse
Registered: 2013-09-27
Posts: 13

Re: GLPI 9.4.1.1 lenteurs - inexploitable

Bon pour ceux qui ont les mêmes problèmes voici les différents corrects :
Problèmes liés à fusion se reporter à
https://github.com/fusioninventory/fusi … ssues/2789
et passer tous les fix

Pour les duplicates il ya plusieurs sujets mais la base est de supprimer les doublons avec la requetes SQL
DELETE t1
FROM glpi_items_operatingsystems AS t1, glpi_items_operatingsystems AS t2
WHERE t1.id < t2.id
AND t1.items_id = t2.items_id

Au passage faire un update de la table et faire un set de is_dynamic à 1 dans la table glpi_items_operatingsystems

Pour le message Undefined index: SCRIPT_FILENAME il provient du cron sur le IIS
Lorsqu'il est lancé via FastCGI le $_SERVER["SCRIPT_FILENAME"] n'existe pas (NULL ou NOT SET)
Il suffit de rajouter dans autoload.function.inc sur la ligne 55 (fonction isAPI) la vérification ci-dessous

   if (!isset($_SERVER["SCRIPT_FILENAME"]) || empty($_SERVER["SCRIPT_FILENAME"])) {
      return false;
    }


GLPI 9.4.1.1 - FusionInventory 9.4.0+1.0 / Windows 2012R2 / PHP 7.1.7 x64 / IIS 7.5 / MariaDB 10.1.26

Offline

#4 2019-03-24 22:48:46

jerome.calmettes
Member
From: Bourg en Bresse
Registered: 2013-09-27
Posts: 13

Re: GLPI 9.4.1.1 lenteurs - inexploitable

A suivre demain en pleine charge


GLPI 9.4.1.1 - FusionInventory 9.4.0+1.0 / Windows 2012R2 / PHP 7.1.7 x64 / IIS 7.5 / MariaDB 10.1.26

Offline

#5 2019-03-25 15:17:57

alexccl
Member
Registered: 2017-10-04
Posts: 27

Re: GLPI 9.4.1.1 lenteurs - inexploitable

Code is loading a lot of time same datas just to display fields...
Solution, load these datas once then reuse previous loaded...

Solution OK for version GLPI 9.4.1.1

File \inc\commondbtm.class.php
Function : public final function searchOptions()
ADD just after declaration :
/*DENIS*/ if(defined('DenisSearchOptionsCache')) return DenisSearchOptionsCache;
THEN at the end of funtion, just before return :
/*DENIS*/ define('DenisSearchOptionsCache',$options);

Do the same in file \inc\ticket.class.php
Function : function rawSearchOptions()
ADD just after declaration :
/*DENIS*/ if(defined('DenisRawSearchOptionsCache')) return DenisRawSearchOptionsCache;
THEN at the end of funtion, just before return :
/*DENIS*/ define('DenisRawSearchOptionsCache',$tab);


ça a résolu mon problème   !

Offline

#6 2019-03-25 15:28:41

orthagh
Administrator
From: TECLIB - CAEN
Registered: 2010-11-30
Posts: 662
Website

Re: GLPI 9.4.1.1 lenteurs - inexploitable

Bonjour.

Merci de voir l'autre sujet https://forum.glpi-project.org/viewtopic.php?id=168420
Et ma réponse dans celui-ci

Offline

#7 2019-03-26 08:45:02

jerome.calmettes
Member
From: Bourg en Bresse
Registered: 2013-09-27
Posts: 13

Re: GLPI 9.4.1.1 lenteurs - inexploitable

Merci orthagh

L’ensemble des correctifs améliore effectivement les choses et GLPI est de nouveau fluide
A savoir on a été obligé d'arreter Fusion Inventory
Si on le remet en marche GLPI devient de nouveau lent + plantages
Je vais voir s'il y a un autre sujet sur le forum et au besoin en créer un

Bonne journée et encore merci a vous


GLPI 9.4.1.1 - FusionInventory 9.4.0+1.0 / Windows 2012R2 / PHP 7.1.7 x64 / IIS 7.5 / MariaDB 10.1.26

Offline

#8 2019-03-26 09:16:09

Nico-G
Member
Registered: 2019-03-07
Posts: 6

Re: GLPI 9.4.1.1 lenteurs - inexploitable

Pour fusion il faut appliquer ces fix https://github.com/glpi-project/glpi/pull/5611
Cela a résolu les lenteurs pour moi et je peux continuer à utiliser le plugin

Offline

#9 2019-06-10 07:42:09

Burton658
Member
Registered: 2019-06-10
Posts: 1

Re: GLPI 9.4.1.1 lenteurs - inexploitable

You should not extract the archive on an existing GLPI directory, but create a new directory, extract the archive,n and then copy the config/config_db.php file, the files and the plugins directory of your old installation on this new directory.

Offline

Board footer

Powered by FluxBB