Upgrade#
This section lists known issues that may affect Carbonio CE during or after the upgrade process. Most of them may arise when upgrading from old releases.
Known Issues (Current Release)#
There is no know issue that impacts either the upgrade process to Carbonio CE 24.9.0 or the Carbonio CE operations afterwards.
If you subscribe to an IMAP folder whose name contains Cyrillic (UTF-7)
characters, chances are that you fail, even if you already
subscribed to that folder. The reason is a missing jar, that you
need to download
and save in directory
/opt/zextras/mailbox/jars/
.
To verify the file’s integrity, execute the command
# sha256sum zm-charset-22.5.0.jar
The output of the command includes the SHA256 checksum of the file, which must be:
13ce2d47274df3016ed8ec5d32439fc6a0c03d1dff04bd92e374bcc0ef049548
In case you find on Carbonio CE messages like the following:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/zextras/lib/jars/carbonio-message-dispatcher-auth.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/zextras/lib/jars/log4j-slf4j-impl-2.20.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/zextras/mailbox/jars/log4j-slf4j-impl-2.20.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
While these are only warnings, nonetheless they may become
annoying. The first line is important and gives the reason for the
warning messages: multiple version of the same class are present in
the class path and therefore you need to remove manually the
duplicates (or better rename the .jar
files before to make
sure you do not cause other problems):
/opt/zextras/lib/jars/log4j-slf4j-impl-2.20.0.jar
and
/opt/zextras/mailbox/jars/log4j-slf4j-impl-2.20.0.jar
.
Known Issues (Older Releases)#
During the upgrade from an older version, you may encounter one or more of the following issues that require a manual intervention.
New GPG Key of Grafana in Ubuntu 22.04
Monitoring: a new configuration file for carbonio-prometheus package must be installed
Initialise message dispatcher after Work Stream Collaboration (Chats) upgrade
PostgreSQL Upgrade fails
A missing library causes a RHEL Netcat Issue
Folders with Cyrillic (UTF-7) characters can not be subscribed using IMAP
There are warning messages about SLF4J in the log files
If you migrate from Ubuntu 20.04 to 22.04 and use Monitoring Role’s Grafana, you need to update the location on which its GPG key is stored to prevent warning during upgrades. Log in to the Node on which the Carbonio Monitoring Role is installed and execute the following commands.
-
Remove existent repository
# add-apt-repository -r "deb https://packages.grafana.com/oss/deb stable main"
-
Retrieve GPG key
# wget -q -O - https://packages.grafana.com/gpg.key | \ gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > \ /dev/null
-
Add repository
# echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] \ https://packages.grafana.com/oss/deb stable main" | sudo tee -a \ /etc/apt/sources.list.d/grafana.list
While upgrading the carbonio-prometheus
package, you will be
prompted with the following text:
Configuration file '/etc/carbonio/carbonio-prometheus/prometheus.yml'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
You must replace the existing file with the new one, therefore answer Y or I.
After the upgrade you need to reinitialise the message dispatcher. As
the root
user execute the command
# PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration carbonio_adm 127.78.0.10 20000
Then restart the service
# systemctl restart carbonio-message-dispatcher
During the upgrade of PostgreSQL, an error might be raised in case the existent databases have been created with older version of libc:
2024-03-19 12:28:14.209 UTC [909825] HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE activesync REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.
2024-03-19 12:28:19.669 UTC [909915] WARNING: database "abq" has a collation version mismatch
In case you find in the log some messages similar to the one shown above, you need to recreate the collation and indexes of the databases using the following commands.
First, become the postgres
user
# su - postgres
Then issue these two commands
$ psql -d abq -c "REINDEX DATABASE abq"
$ psql -d abq -c "ALTER DATABASE abq REFRESH COLLATION VERSION;"
These commands should probably be given for each of the databases, so you can copy & paste all the following commands:
psql -d abq -c "REINDEX DATABASE abq"
psql -d abq -c "ALTER DATABASE abq REFRESH COLLATION VERSION;"
psql -d powerstore -c "REINDEX DATABASE powerstore"
psql -d powerstore -c "ALTER DATABASE powerstore REFRESH COLLATION VERSION;"
psql -d activesync -c "REINDEX DATABASE activesync"
psql -d activesync -c "ALTER DATABASE activesync REFRESH COLLATION VERSION;"
psql -d auth -c "REINDEX DATABASE auth"
psql -d auth -c "ALTER DATABASE auth REFRESH COLLATION VERSION;"
psql -d "carbonio-docs-connector-db" -c "REINDEX DATABASE \"carbonio-docs-connector-db\""
psql -d "carbonio-docs-connector-db" -c "ALTER DATABASE \"carbonio-docs-connector-db\" REFRESH COLLATION VERSION;"
psql -d "carbonio-files-db" -c "REINDEX DATABASE \"carbonio-files-db\""
psql -d "carbonio-files-db" -c "ALTER DATABASE \"carbonio-files-db\" REFRESH COLLATION VERSION;"
psql -d carbonio_adm -c "REINDEX DATABASE carbonio_adm"
psql -d carbonio_adm -c "ALTER DATABASE carbonio_adm REFRESH COLLATION VERSION;"
psql -d core -c "REINDEX DATABASE core"
psql -d core -c "ALTER DATABASE core REFRESH COLLATION VERSION;"
psql -d ha -c "REINDEX DATABASE ha"
psql -d ha -c "ALTER DATABASE ha REFRESH COLLATION VERSION;"
psql -d postgres -c "REINDEX DATABASE postgres"
psql -d postgres -c "ALTER DATABASE postgres REFRESH COLLATION VERSION;"
psql -d template0 -c "REINDEX DATABASE template0"
psql -d template0 -c "ALTER DATABASE template0 REFRESH COLLATION VERSION;"
psql -d template1 -c "REINDEX DATABASE template1"
psql -d template1 -c "ALTER DATABASE template1 REFRESH COLLATION VERSION;"
In systems which feature RHEL 8 or RHEL 9, you might find in
journalctl
’s log an error about a missing library for netcat
:
May 02 09:20:02 demo.example.com systemd[1]: Started Session 3 of User zextras.
May 02 09:20:02 demo.example.com bash[3910]: netcat: error while loading shared libraries: libbsd.so.0: cannot open shared object file: No such file or directory
May 02 09:20:02 demo.example.com systemd[1]: Started Session 4 of User zextras.
May 02 09:20:02 demo.example.com bash[3912]: netcat: error while loading shared libraries: libbsd.so.0: cannot open shared object file: No such file or directory
The solution is to install the libbsd package:
# dnf install libbsd