glpi-project / glpi

GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.
https://glpi-project.org
GNU General Public License v3.0
4.18k stars 1.28k forks source link

Tremendous Email Notification Lag running version GLPI ver 10.0.0 #11695

Closed rudolcas closed 2 years ago

rudolcas commented 2 years ago

Code of Conduct

Is there an existing issue for this?

Version

Version 10.0

Bug description

Tremendous Email Notification Lag running version GLPI ver 10.0

Please help!

RC

Relevant log output

No response

Page URL

No response

Steps To reproduce

No response

Your GLPI setup information

No response

Anything else?

No response

rudolcas commented 2 years ago

Every time I reply on the ticket as super-user/or tech/or anybody its taking a long time to email reply to be sent-out/received.

cconard96 commented 2 years ago

Please provide the requested GLPI setup information from Setup > General > System tab. Please also include if the "queuednotification" and "mailgate" Automatic Actions are set for GLPI mode or CLI mode (Setup > Automatic Actions).

rudolcas commented 2 years ago

GLPI Setup Information

Information about system installation & configuration
GLPI 10.0.0 (/glpi => /var/www/html/glpi)
Installation mode: TARBALL
Current language:en_US

Server
 
Operating system: Linux glpi-mvhelp.mvista.com 4.18.0-348.23.1.el8_5.x86_64 #1 SMP Wed Apr 27 15:32:52 UTC 2022 x86_64
PHP 7.4.29 fpm-fcgi (Core, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apcu, bz2, calendar, cgi-fcgi, ctype, curl,
    date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd, openssl,
    pcre, pdo_mysql, pdo_sqlite, session, sockets, sodium, sqlite3, standard, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl,
    zip, zlib)
Setup: max_execution_time="30" memory_limit="128M" post_max_size="8M" safe_mode="" session.save_handler="files"
    upload_max_filesize="2M" 
Software: Apache/2.4.37 (rocky) ()
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0
Server Software: MariaDB Server
    Server Version: 10.3.32-MariaDB
    Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Parameters: glpidbadmin@localhost/glpidb
    Host info: Localhost via UNIX socket

PHP version (7.4.29) is supported.
Sessions configuration is OK.
Allocated memory is sufficient.
mysqli extension is installed.
Following extensions are installed: dom, fileinfo, json, simplexml.
curl extension is installed.
gd extension is installed.
intl extension is installed.
libxml extension is installed.
zlib extension is installed.
The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
Database engine version (10.3.32) is supported.
The log file has been created successfully.
Write access to /var/www/html/glpi/files/_cache has been validated.
Write access to /var/www/html/glpi/config has been validated.
Write access to /var/www/html/glpi/files/_cron has been validated.
Write access to /var/www/html/glpi/files has been validated.
Write access to /var/www/html/glpi/files/_dumps has been validated.
Write access to /var/www/html/glpi/files/_graphs has been validated.
Write access to /var/www/html/glpi/files/_lock has been validated.
Write access to /var/www/html/glpi/files/_pictures has been validated.
Write access to /var/www/html/glpi/files/_plugins has been validated.
Write access to /var/www/html/glpi/files/_rss has been validated.
Write access to /var/www/html/glpi/files/_sessions has been validated.
Write access to /var/www/html/glpi/files/_tmp has been validated.
Write access to /var/www/html/glpi/files/_uploads has been validated.
Web access to files directory is protected
For security reasons, SELinux mode should be Enforcing.
exif extension is installed.
ldap extension is installed.
openssl extension is installed.
zip extension is installed.
bz2 extension is installed.
Zend OPcache extension is installed.
Following extensions are installed: ctype, iconv, mbstring, sodium.
Write access to /var/www/html/glpi/marketplace has been validated.
Access to timezone database (mysql) is not allowed.

GLPI constants
 
GLPI_ROOT: /var/www/html/glpi
GLPI_CONFIG_DIR: /var/www/html/glpi/config
GLPI_VAR_DIR: /var/www/html/glpi/files
GLPI_MARKETPLACE_DIR: /var/www/html/glpi/marketplace
GLPI_USE_CSRF_CHECK: 1
GLPI_CSRF_EXPIRES: 7200
GLPI_CSRF_MAX_TOKENS: 100
GLPI_USE_IDOR_CHECK: 1
GLPI_IDOR_EXPIRES: 7200
GLPI_ALLOW_IFRAME_IN_RICH_TEXT: 
GLPI_TELEMETRY_URI: https://telemetry.glpi-project.org
GLPI_INSTALL_MODE: TARBALL
GLPI_NETWORK_MAIL: glpi@teclib.com
GLPI_NETWORK_SERVICES: https://services.glpi-network.com
GLPI_MARKETPLACE_ALLOW_OVERRIDE: 1
GLPI_MARKETPLACE_MANUAL_DOWNLOADS: 1
GLPI_USER_AGENT_EXTRA_COMMENTS: 
GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: 1
GLPI_AJAX_DASHBOARD: 1
GLPI_CALDAV_IMPORT_STATE: 0
GLPI_DEMO_MODE: 0
GLPI_CENTRAL_WARNINGS: 1
GLPI_DOC_DIR: /var/www/html/glpi/files
GLPI_CACHE_DIR: /var/www/html/glpi/files/_cache
GLPI_CRON_DIR: /var/www/html/glpi/files/_cron
GLPI_DUMP_DIR: /var/www/html/glpi/files/_dumps
GLPI_GRAPH_DIR: /var/www/html/glpi/files/_graphs
GLPI_LOCAL_I18N_DIR: /var/www/html/glpi/files/_locales
GLPI_LOCK_DIR: /var/www/html/glpi/files/_lock
GLPI_LOG_DIR: /var/www/html/glpi/files/_log
GLPI_PICTURE_DIR: /var/www/html/glpi/files/_pictures
GLPI_PLUGIN_DOC_DIR: /var/www/html/glpi/files/_plugins
GLPI_RSS_DIR: /var/www/html/glpi/files/_rss
GLPI_SESSION_DIR: /var/www/html/glpi/files/_sessions
GLPI_TMP_DIR: /var/www/html/glpi/files/_tmp
GLPI_UPLOAD_DIR: /var/www/html/glpi/files/_uploads
GLPI_INVENTORY_DIR: /var/www/html/glpi/files/_inventories
GLPI_NETWORK_REGISTRATION_API_URL: https://services.glpi-network.com/api/registration/
GLPI_MARKETPLACE_PLUGINS_API_URI: https://services.glpi-network.com/api/glpi-plugins/
GLPI_I18N_DIR: /var/www/html/glpi/locales
GLPI_VERSION: 10.0.0
GLPI_SCHEMA_VERSION: 10.0.0@9eb698d8fd49f9256d7bd63a6d747587e0effaff
GLPI_MARKETPLACE_PRERELEASES: 
GLPI_MIN_PHP: 7.4.0
GLPI_MAX_PHP: 8.2.0
GLPI_YEAR: 2022

Libraries
 
htmlawed/htmlawed version 1.2.6 in (/var/www/html/glpi/vendor/htmlawed/htmlawed)
phpmailer/phpmailer version 6.6.0 in (/var/www/html/glpi/vendor/phpmailer/phpmailer/src)
simplepie/simplepie version 1.5.8 in (/var/www/html/glpi/vendor/simplepie/simplepie/library)
mpdf/mpdf in (/var/www/html/glpi/vendor/mpdf/mpdf/src)
michelf/php-markdown in (/var/www/html/glpi/vendor/michelf/php-markdown/Michelf)
true/punycode in (/var/www/html/glpi/vendor/true/punycode/src)
iamcal/lib_autolink in (/var/www/html/glpi/vendor/iamcal/lib_autolink)
sabre/dav in (/var/www/html/glpi/vendor/sabre/dav/lib/DAV)
sabre/http in (/var/www/html/glpi/vendor/sabre/http/lib)
sabre/uri in (/var/www/html/glpi/vendor/sabre/uri/lib)
sabre/vobject in (/var/www/html/glpi/vendor/sabre/vobject/lib)
laminas/laminas-i18n in (/var/www/html/glpi/vendor/laminas/laminas-i18n/src)
laminas/laminas-servicemanager in (/var/www/html/glpi/vendor/laminas/laminas-servicemanager/src)
monolog/monolog in (/var/www/html/glpi/vendor/monolog/monolog/src/Monolog)
sebastian/diff in (/var/www/html/glpi/vendor/sebastian/diff/src)
donatj/phpuseragentparser in (/var/www/html/glpi/vendor/donatj/phpuseragentparser/src/UserAgent)
elvanto/litemoji in (/var/www/html/glpi/vendor/elvanto/litemoji/src)
symfony/console in (/var/www/html/glpi/vendor/symfony/console)
scssphp/scssphp in (/var/www/html/glpi/vendor/scssphp/scssphp/src)
laminas/laminas-mail in (/var/www/html/glpi/vendor/laminas/laminas-mail/src/Protocol)
laminas/laminas-mime in (/var/www/html/glpi/vendor/laminas/laminas-mime/src)
rlanvin/php-rrule in (/var/www/html/glpi/vendor/rlanvin/php-rrule/src)
blueimp/jquery-file-upload in (/var/www/html/glpi/vendor/blueimp/jquery-file-upload/server/php)
ramsey/uuid in (/var/www/html/glpi/vendor/ramsey/uuid/src)
psr/log in (/var/www/html/glpi/vendor/psr/log/Psr/Log)
psr/simple-cache in (/var/www/html/glpi/vendor/psr/simple-cache/src)
psr/cache in (/var/www/html/glpi/vendor/psr/cache/src)
league/csv in (/var/www/html/glpi/vendor/league/csv/src)
mexitek/phpcolors in (/var/www/html/glpi/vendor/mexitek/phpcolors/src/Mexitek/PHPColors)
guzzlehttp/guzzle in (/var/www/html/glpi/vendor/guzzlehttp/guzzle/src)
guzzlehttp/psr7 in (/var/www/html/glpi/vendor/guzzlehttp/psr7/src)
glpi-project/inventory_format in (/var/www/html/glpi/vendor/glpi-project/inventory_format/lib/php)
wapmorgan/unified-archive in (/var/www/html/glpi/vendor/wapmorgan/unified-archive/src)
paragonie/sodium_compat in (/var/www/html/glpi/vendor/paragonie/sodium_compat/src)
symfony/cache in (/var/www/html/glpi/vendor/symfony/cache)
html2text/html2text in (/var/www/html/glpi/vendor/html2text/html2text/src)
symfony/dom-crawler in (/var/www/html/glpi/vendor/symfony/dom-crawler)
twig/twig in (/var/www/html/glpi/vendor/twig/twig/src)
twig/string-extra in (/var/www/html/glpi/vendor/twig/string-extra)
symfony/polyfill-ctype not found
symfony/polyfill-iconv not found
symfony/polyfill-mbstring not found
symfony/polyfill-php80 in (/var/www/html/glpi/vendor/symfony/polyfill-php80)
symfony/polyfill-php81 in (/var/www/html/glpi/vendor/symfony/polyfill-php81)

LDAP directories
 
Server: Taken this info out

SQL replicas
 
Not active

Notifications
 
Way of sending emails: SMTP+SSL (it-help@mvista.com@smtp.gmail.com)

Plugins list
 

rudolcas commented 2 years ago

queuednotification setup

image

cconard96 commented 2 years ago

In GLPI mode, the actions are started occasionally when users navigate GLPI. If you do not have a lot of users navigating pages, then the actions would not be run consistently. Also, when a specific user's navigation triggers an automatic action run, that user cannot trigger another run for another 5 minutes. This was to avoid having a consistently slower experience. Finally, in GLPI mode, only one action can be triggered at a time.

If you have the ability to add a cron job (Linux/MacOS) or Scheduled Task (Windows) it is preferred to use CLI mode for at least time-sensitive actions. GLPI mode is the default because it works even if not the most performant on all systems even one that are hosted that don't give access to these scheduler systems.

Here is a link to the user documentation for configuring automatic actions in CLI mode: https://glpi-user-documentation.readthedocs.io/fr/latest/modules/configuration/crontasks.html

I would suggest trying to switch at least those two actions I mentioned before to CLI mode and setting up a cron/Scheduled Task to run every minute (make sure it runs under the web server user account to avoid issues with permissions).

rudolcas commented 2 years ago

Yeah what I see is that queuenotifications* is the problem.

There was no automatic actions before it and I have it on one-minute frequency. Just waiting there for a few minutes - It seems like it doesn't even trigger unless going into there and manually pressing "Execute."

Then the email is sent out... sigh

rudolcas commented 2 years ago

1. I have updated my crontab

image

Everything is looking good there..

2. Checked Administration/Entities/Root Entity

image

3. Switched from GLPI --- to ---> CLI on the Setup/Automatic Actions/queuednotification****

image

Still after much testing - nothing is happening with the Notification Update. I always have to press down Execute to send out email updates.

rudolcas commented 2 years ago

Any update?

cedric-anne commented 2 years ago

Hi,

  1. The script to call is php /var/www/glpi/front/cron.php.
  2. This script should not be called using root user. Indeed, it should be called using same user as your web server uses (e.g. www-data), as crontask may create files that HAVE to be read later by the web server user.
  3. Until GLPI 9.5, notifications related to tickets were not using the notification queue, and that was sometime causing issues. Now they are put in notification queue like all other notifications. It can explain the small "lag" you are experiencing.
cedric-anne commented 2 years ago

I closed this issue as it is a configuration issue, not a GLPI bug.

rudolcas commented 2 years ago

I have changed it to user "apache" on the cronjob, but it still DOESN'T work. I am not sure why this case is closed it should still be opened until this is solved.

image

rudolcas commented 2 years ago

image

cconard96 commented 2 years ago

The called script in the crontab needs to be /var/www/html/glpi/front/cron.php not /var/www/html/glpi/front/queuednotification.php.

The issue was closed because it seems like a configuration issue and not a bug in GLPI. If you need additional help with the configuration of CLI mode or something else, you can open a topic on the forum. https://forum.glpi-project.org/

rudolcas commented 2 years ago

Thank you, here always thinking it was the action "/queuednotification.php" job that was always stuck. Now working by modifying to /cron.php !

image