OCS: Can’t call method «rollback» on an undefined value at System.pm

El siguiente error se puede presentar al ejecutar ocsinventory-agent desde un cliente contra el servidor de OCS:

# ocsinventory-agent
 [error] Cannot establish communication : 500 Internal Server Error

Si la petición desde el cliente se lanza en modo debug, en los logs de Apache en el servidor de OCS se genera el siguiente error:

[Wed May 22 09:37:07.722434 2019] [perl:error] [pid 22158] [client 10.11.3.61:54396] Can't call method "rollback" on an undefined value at /usr/local/share/perl5/Apache/Ocsinventory/Server/System.pm line 282.\n

Can’t call method «rollback» on an undefined value at /usr/local/share/perl5/Apache/Ocsinventory/Server/System.pm

Si el error tiene lugar tras actualizar OCS Inventory, confirmad que no se han sobreescrito la configuración de acceso a MySQL tanto en el fichero global de configuración de base de datos de ocs inventory reports dbconfig.inc.php como en el archivo de configuración de apache z-ocsinventory-server.conf:

# vim /etc/httpd/conf.d/z-ocsinventory-server.conf
# vim /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php

Es probable que ahí aparezcan los datos por defecto de usuario/contraseña de acceso a MySQL:

Verificadlo. Si están mal, basta con corregirlo y reiniciar Apache para que el funcionamiento vuelva a ser el correcto. Ejemplo del archivo de Apache:

  # Master Database settings
  # Replace localhost by hostname or ip of MySQL server for WRITE
  PerlSetEnv OCS_DB_HOST localhost
  # Replace 3306 by port where running MySQL server, generally 3306
  PerlSetEnv OCS_DB_PORT 3306
  # Name of database
  PerlSetEnv OCS_DB_NAME ocsweb
  PerlSetEnv OCS_DB_LOCAL ocsweb
  # User allowed to connect to database
  PerlSetEnv OCS_DB_USER ocs
  # Password for user
  PerlSetVar OCS_DB_PWD ocs