Dear Sirs,
I’m using E-GroupWare Community since version 1.4 or so. Sadly now I have an issue I can’t solve without a clue again.
I have 2 E-GroupWare instances. One is with LDAP account and authentication, version 17.1.20190111 working perfectly. The other was my oldest instance with IMAP authentication and SQL accounts, version 17.1.20190808. Both were on old FreeBSD server (no Docker, sorry) with PHP 5.6 and MySQL 5.6. I’ve migrated them on new FreeBSD server with PHP 7.4 and MariaDB 10.5. Meanwhile I migrated SQL/IMAP auth to LDAP with no problems.
After the transfer to the new host the first instance worked just fine but the second failed with a lot of errors for empty values and invalid SQL showing missing arguments. It’s important to note that the same instance works on the old host. After some days in useless experiments I decided to make a new instance and, eventually, to transfer some of the important information from the failing old one before destroying the old host. But this failed too:
Version: 20.1.20210125
installed: by git checkout -b 20.1
DB: MariaDB 10.5.8
PHP 7.4.15
WEB server: Apache 2.4.46 with mod_php (most standard way for testing)
auth type, account storage: LDAP
additional EGW modules: phpbrain, phpgwapi (needed for my old data)
The setup process passes without errors. But when I log in none of the apps works and errors pop up. Trying to set Preferences I get:
Database error
Invalid SQL: UPDATE egw_access_log SET WHERE
You have an error in your SQL syntax; check the manual...
Most of the errors in my php.log are:
[18-Feb-2021 11:40:11 Europe/Sofia] # Instance=default, User=ivo, Request=POST https://leo.kit.bg/egwtest/json.php?menuaction=notifications.notifications_ajax.get_notifications, User-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
[18-Feb-2021 11:40:11 Europe/Sofia] Database error (EGroupware\Api\Db\Exception\InvalidSql): Invalid SQL: UPDATE egw_access_log SET WHERE lo IS NULL
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘WHERE lo IS NULL’ at line 1 (1064)
[18-Feb-2021 11:40:11 Europe/Sofia] # Instance=default, User=ivo, Request=POST https://leo.kit.bg/egwtest/json.php?menuaction=notifications.notifications_ajax.get_notifications, User-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
[18-Feb-2021 11:42:48 Europe/Sofia] PHP Warning: Creating default object from empty value in /var/www/html/egwtest/api/src/Db.php on line 510
In some posts here I found the issue might be session-related. So I double-checked that the sessions work and even tested with MCrypt disabled with no effect.
To make the puzzle more annoying the other instance (17.1.20190111) works perfectly on the same host but in different directory. I think it’s not necessary to ensure you that I’ve checked the WEB server configuration more than twice.
On the client side I have a Cookie auto delete plugin but I’ve tested with a newsly installed Chrome too.
I need some advice and I’m looking forward it.
Thank you in advance!