Hi,
This only applies to the notifications that should be sent by the asynchronous timed service. On task creation/change, emails are sent OK. Also, the test job of the asynch timed service works fine.
Problem description:
A notification email is not sent to users when InfoLog tasks are starting or when they are due, even though a notification is requested. Notifications do appear in the browser in the notification area, with correct timing and content. I don’t seem to be able to find the reason by myself, so please help me troubleshoot this!
Additional info:
- egroupware-epl 17.1.20171218
- module: InfoLog
- after update: no, never worked on this system
- error logs: no references in the web server error log. PHP warnings in mail generated by cron, will include one example at the bottom.
- database: MySQL 5.7.20
- web server and php: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.6.33
Here is an example of PHP warnings in email generated by cron at 02:00:00, when infolog-async-notification runs:
PHP Warning: Illegal string offset 'app' in /usr/share/egroupware/infolog/inc/class.infolog_merge.inc.php on line 157
#1 /usr/share/egroupware/infolog/inc/class.infolog_merge.inc.php(68): infolog_merge->infolog_replacements('479', '', '')
#2 /usr/share/egroupware/api/src/Storage/Merge.php(825): infolog_merge->get_replacements('479', '')
#3 /usr/share/egroupware/api/src/Storage/Tracking.php(1184): EGroupware\Api\Storage\Merge->merge_string(NULL, Array, NULL, 'text/html')
#4 /usr/share/egroupware/api/src/Storage/Tracking.php(1051): EGroupware\Api\Storage\Tracking->get_signature(Array, NULL, '30')
#5 /usr/share/egroupware/api/src/Storage/Tracking.php(743): EGroupware\Api\Storage\Tracking->get_body(false, Array, NULL, false, '30')
#6 /usr/share/egroupware/infolog/inc/class.infolog_bo.inc.php(1792): EGroupware\Api\Storage\Tracking->send_notification(Array, NULL, xxxxx@...', '30', 'notify_due_resp...')
#7 [internal function]: infolog_bo->async_notification(NULL)
#8 /usr/share/egroupware/api/src/loader/deprecated_factory.php(179): call_user_func(Array, NULL)
#9 /usr/share/egroupware/api/src/Asyncservice.php(456): ExecMethod('infolog.infolog...', NULL)
#10 /usr/share/egroupware/api/asyncservices.php(76): EGroupware\Api\Asyncservice->check_run('crontab')
#11 {main}
Many thanks for any and all help!