Thanks @Andrew!
I've opened an issue in Github right now:
https://github.com/grommunio/gromox/issues/113
Hope one of the devs will pick it soon. It's a very small change and might hopefully be implemented soon.
Thanks @Andrew!
I've opened an issue in Github right now:
https://github.com/grommunio/gromox/issues/113
Hope one of the devs will pick it soon. It's a very small change and might hopefully be implemented soon.
Thats why we in Debian build it ourself. Well since Bookworm one was added and my script only needs to take care of the traffic thingy.
It looks like the newly updated Brotli/VTS modules that Grommunio has released to fix Issue 2 in this thread have themselves created a problem. After installing this update, NGINX will no longer start.
The module files look to have been moved from /usr/share/nginx/modules
to /usr/lib64/nginx/modules
in this latest update, but the main config file /etc/nginx/nginx.conf
is still attempting to load these modules from the old location.
In the old /usr/share/nginx/modules
location there are now a couple of conf files that reference the new location for these modules, so I believe the entries in /etc/nginx/nginx.conf
are now redundant. After commenting them out, NGINX starts up fine.
I can confirm that the issue has been fixed. I also ran into the problem mentioned by Andrew and fixed it by commenting out the two lines in /etc/nginx/nginx.conf. The modules are loaded in an included file from the correct path.
Also another problem with /etc/redis path in grommunio-common has been fixed.
After these issues, Grommunio runs fine with RL 9.5.
Thanks @Andrew for sharing!
Thanks daniel. Did you experience the Python/SQLite issue (Issue 3 in the original post)? Apart from creating error logs in the "Gromox http" log it seemed to cause issues with ActiveSync sessions dropping and needing to reauthenticate every few hours, but has been fine since the workaround of adding my own libraries to LD_LIBRARY_PATH
.
I suspect that one would be a bit more effort to fix properly as it would require either a code change or Grommunio to distribute their own build of Python with an updated version of SQLite.
@Andrew Today I experienced some really strange behaviors with Thunderbird and imap. Folders aren't working as expected.
Coud be a sqlite issue:
sqlite3_exec(/var/lib/gromox/user/0/1/exmdb/midb.sqlite3) "UPDATE folders SET name=CONCAT('t',ROWID)": no such function: CONCAT (1) at [<libgromox_common.so.0(_ZN6gromox11gx_sql_execEP7sqlite3PKcj+0xa4) [0x7f1603144258]><midb(+0x14e53) [0x56376fa12e53]><midb(+0x1604a) [0x56376fa1404a]><midb(+0x1a248) [0x56376fa18248]><midb(+0xc97e) [0x56376fa0a97e]><midb(+0xc9d7) [0x56376fa0a9d7]><midb(+0xd058) [0x56376fa0b058]><libc.so.6(+0x89d22) [0x7f1602689d22]><libc.so.6(+0x10ed40) [0x7f160270ed40]>]
Currently I don't have a clue how to fix this
daniel That sounds like a similar issue. Mine was with the UNIXEPOCH function that was added in SQLite 3.38. Yours seems to be with the CONCAT function that looks to have been added in SQLite 3.44. RHEL 9.5 uses SQLite 3.34 so neither of these functions are valid. Grommunio looks to have updated their code to rely on a version of SQLite not supported by RHEL and derivative distros.
Unfortunately, because SQLite is being called by Python, manually installing a later version of SQLite itself isn't sufficient; because the libraries Python uses are independent to the system version of SQLite and are compiled as part of Python itself. Messing with the system version of Python doesn't seem like a good idea given the number of things that depend on it, so the the workaround I used is as follows.
Download and build the latest version of SQLite from source:
curl https://www.sqlite.org/2024/sqlite-autoconf-3470200.tar.gz -o sqlite-autoconf-3470200.tar.gz
tar xvfz sqlite-autoconf-3470200.tar.gz
cd sqlite-autoconf-3470200
./configure
make
Copy the compiled libraries from the .libs
subdirectory to one where they can be accessed by Grommunio:
mkdir /opt/libsqlite3
cp -P .libs/* /opt/libsqlite3
cp --remove-destination libsqlite3.la /opt/libsqlite3
You could also just cp .libs/* /opt/libsqlite3
but there are a few symlinks included that would result in duplicate files that way. I'm not sure if all of these files are required, but I copied them all to be on the safe side.
Create a file /opt/libsqlite3/env
with content LD_LIBRARY_PATH=/opt/libsqlite3
Create an override for the gromox-http service with systemctl edit gromox-http.service
and add the following between the start and end comments to have the service reference the newly created environment file.
[Service]
EnvironmentFile=/opt/libsqlite3/env
Save the override and restart gromox-http systemctl restart gromox-http
. The service should now use the updated SQLite libraries created in /opt/libsqlite3.
This seems to work and I haven't yet encountered any issues within my use case (Outlook MAPI/HTTP, ActiveSync, Grommunio Web), but it does mean that any time an update is released for SQLite I'll have to go through the process to compile the new version all over again to keep it patched. I definitely put it into the category of a kludge, but it keeps my system stable for now. Hopefully Grommunio can work out a more permanent solution for the EL distros.
Thanks @Andrew, great workaround description.
As I hope the devs will find a permanent solution without self managed sqlite, I've filed an issue at Github:
https://github.com/grommunio/gromox/issues/114
My server installed the latest set of updates last night and NGINX died again.
It looks like the Grommunio updates have re-added the faulty /etc/nginx/nginx.conf
instructions to load the Brotil/VTS modules from /usr/share/nginx/modules
instead of the /usr/lib64/nginx/modules
location Grommunio has moved them to.
I have removed the load_module
lines again, and NGINX is working, but if Grommunio keeps adding the faulty lines back in, it will only last until the next update.
@Andrew
you should not modify the service file itself.
Instead please create this folder:
/etc/systemd/system/gromox-http.service.d/
and then create a file (e.g.)
sqlite.conf
with the content:
[Service]
Environment=LD_LIBRARY_PATH=/opt/grommunio/lib64
(or where you placed it in the first place)
GeneralProbe systemctl edit
doesn't change the original service file. It creates an override file that takes precedence over the contents of the service file. In this case it would create /etc/systemd/system/gromox-http.service.d/override.conf
. It's essentially the same thing as your suggestion, but a more official/supported method of creating the file.
@mwilliams I've applied the update but I'm still experiencing problems:
Dec 10 18:33:02 midb[1145473]: sqlite3_exec(/var/lib/gromox/user/0/1/exmdb/midb.sqlite3) "UPDATE folders SET name=CONCAT('t',ROWID)": no such function: CONCAT (1) at [<libgromox_common.so.0(_ZN6gromox11gx_sql_execEP7sqlite3PKcj+0xa4) [0x7fc454a63258]><midb(+0x14e53) [0x5604e51cce53]><midb(+0x1604a) [0x5604e51ce04a]><midb(+0x16358) [0x5604e51ce358]><midb(+0xc97e) [0x5604e51c497e]><midb(+0xc9d7) [0x5604e51c49d7]><midb(+0xd058) [0x5604e51c5058]><libc.so.6(+0x89d22) [0x7fc454089d22]><libc.so.6(+0x10ed40) [0x7fc45410ed40]>]
Maybe the imap error has something to do with german umlauts or ampersand in folder names. I have duplicate folders in the subscription list and greyed out folders in the current folder pane. All folders have umlauts or ampersand in its name.
@mwilliams Sorrry, just noticed I've applied gromox-2.38.4 to my box - .5 seems not to be available in the repo. I'll update here after updating.
@mwilliams gromox-2.38.5.g9866cfd-6 has been applied and the sqlite error doesn't get logged anymore. But I still have issues with IMAP folder containing umlauts and ampersand. Maybe a separate problem... What logs would help to analyze that issue if I file a bug on Github?
The IMAP folder issue has been fixed:
https://github.com/grommunio/gromox/issues/115
Doesn't seem to be related to the sqlite issue and also should not only affect RHEL 9 based distros.
Big thanks to the team at Grommunio for resolving the majority of these issues.
The only one outstanding I believe now is the rogue load_module
lines getting added to NGINX. I updated again last night and they got added back in, breaking NGINX once more. Deleting these lines (they're trying to load the modules from the original /usr/share/nginx/modules
location but Grommunio moved them to /usr/lib64/nginx/modules
) fixes it temporarily, but every time an update gets installs it re-adds the offending lines and breaks NGINX again.
load_module modules/ngx_http_brotli_static_module.so;
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_vhost_traffic_status_module.so;
FYI the NGINX config issue is still happening. I updated again last night and it re-added the bad config lines.
Grommunio seems to ship an updated version of sqlite that breaks dnf.
Anyone else affected?
bye
Daniel
© 2020-2024 grommunio GmbH. All rights reserved. | https://grommunio.com | Data Protection | Legal notice