I am testing the supported repo for RHEL 9 with:
grommunio-admin-api-1.14.0.7c32a58-29.2.noarch
grommunio-admin-api-bash-completion-1.14.0.7c32a58-29.2.noarch
grommunio-admin-common-17.1694125-16.2.noarch
grommunio-admin-web-2.8.0.18.a39ffbd-12.2.noarch
grommunio-common-21.8eb9e0e-20.2.aarch64
grommunio-dav-1.3.16.17b01b4-1.2.noarch
grommunio-error-pages-1.0.10.bb2df37-17.2.noarch
grommunio-sync-2.0.44.19084c5-32.1.noarch
grommunio-web-3.6.0.d28e88b9-1.2.noarch
gromox-2.19.1.6397a63-1.1.aarch64
system-user-grommunio-3-10.18.noarch
system-user-gromox-2-15.2.noarch
and ran into this problem:
- Create a user called
alice@example.net
using web admin
- Create a user called
bob@example.net
using web admin
- Login with user
bob@example.net
with web client
- Delete user
bob@example.net
using web admin
- Create a user called
bob@example.net
using web admin
- Try to login with re-created user
bob@example.net
with web client
- End up with "You have insufficient privileges to open this object" in web client
- Run
systemctl condrestart gromox-*
as a last resort idea…
- Figure out that login with re-created user
bob@example.net
with web client works…
This feels like a caching bug in one of the gromox core components…thus we repeated it.
- Delete user
bob@example.net
using web admin
- Create a user called
bob@example.net
using web admin
- Try to login with re-created user
bob@example.net
with web client
- End up with "Error 500 - Internal Server Error" in web client
- Figure out that user creation is somehow messed up:
MariaDB [grommunio]> select id, username, domain_id, group_id, homeserver, maildir from users;
+----+---------------------+-----------+----------+------------+--------------------------+
| id | username | domain_id | group_id | homeserver | maildir |
+----+---------------------+-----------+----------+------------+--------------------------+
| 0 | admin | 0 | 0 | 0 | |
| 1 | tux@example.net | 1 | 0 | 0 | /var/lib/gromox/user/0/1 |
| 7 | abuse@example.net | 1 | 0 | 0 | /var/lib/gromox/user/2/1 |
+----+---------------------+-----------+----------+------------+--------------------------+
3 rows in set (0.000 sec)
MariaDB [grommunio]>
vs.
$ find /var/lib/gromox/user/2/1
/var/lib/gromox/user/2/1
/var/lib/gromox/user/2/1/ext
/var/lib/gromox/user/2/1/cid
/var/lib/gromox/user/2/1/eml
/var/lib/gromox/user/2/1/tmp
/var/lib/gromox/user/2/1/tmp/imap.rfc822
/var/lib/gromox/user/2/1/tmp/faststream
/var/lib/gromox/user/2/1/exmdb
/var/lib/gromox/user/2/1/exmdb/midb.sqlite3
/var/lib/gromox/user/2/1/exmdb/exchange.sqlite3
/var/lib/gromox/user/2/1/config
/var/lib/gromox/user/2/1/config/portrait.jpg
$
vs.
$ systemctl status gromox-http.service
● gromox-http.service - Gromox HTTP service
Loaded: loaded (/usr/lib/systemd/system/gromox-http.service; enabled; preset: disabled)
Active: active (running) since Mon 2023-12-04 21:56:31 CET; 3min 49s ago
Docs: man:http(8gx)
Process: 8883 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
Main PID: 8475 (http)
Tasks: 82 (limit: 97448)
Memory: 21.8M
CPU: 518ms
CGroup: /system.slice/gromox-http.service
└─8475 /usr/libexec/gromox/http
Dec 04 21:56:31 grommunio.example.net http[8475]: system: HTTP daemon is now running
Dec 04 21:58:41 grommunio.example.net systemd[1]: Reloading Gromox HTTP service...
Dec 04 21:58:41 grommunio.example.net http[8475]: ldap_adaptor: default host <ldapi:///>, base <>, #conn=8, mailattr=mail
Dec 04 21:58:41 grommunio.example.net systemd[1]: Reloaded Gromox HTTP service.
Dec 04 21:58:41 grommunio.example.net http[8475]: nsp: Invalidating AB caches
Dec 04 21:59:07 grommunio.example.net systemd[1]: Reloading Gromox HTTP service...
Dec 04 21:59:07 grommunio.example.net http[8475]: ldap_adaptor: default host <ldapi:///>, base <>, #conn=8, mailattr=mail
Dec 04 21:59:07 grommunio.example.net systemd[1]: Reloaded Gromox HTTP service.
Dec 04 21:59:07 grommunio.example.net http[8475]: nsp: Invalidating AB caches
Dec 04 21:59:26 grommunio.example.net http[8475]: E-1434: sqlite3_open /var/lib/gromox/user/2/0/exmdb/exchange.sqlite3: unable to open database file
$
Why is gromox-http.service looking for /var/lib/gromox/user/2/0/exmdb/exchange.sqlite3
instead of /var/lib/gromox/user/2/1/exmdb/exchange.sqlite3
?
- Run
systemctl condrestart gromox-*
as a last resort idea…
- Figure out that login with re-created user
bob@example.net
with web client works…
Conclusion: Something is really buggy?
Interesting finding, but might be unrelated:
- After deleting a user,
/var/lib/gromox/user/2/
directory still exists (but is empty)
- If
/var/lib/gromox/user/2/
already exists, a new user leads to /var/lib/gromox/user/2/1/
instead of ``/var/lib/gromox/user/2/0/`?
- Why is it
/var/lib/gromox/user/2/
at all, but not /var/lib/gromox/user/1/
?