Upgrade from 24.5.0

Upgrade from 24.5.0#

When you are upgrading from the previous version, you should use Ansible Galaxy, which will take care of all the tasks. Before starting the procedure, make sure that you satisfy the Requirements & Preliminaries and check the Known Issues.

This method works if you have a working Ansible installation. Make sure you read the Requirements & Preliminaries Section before starting the upgrade, then access Ansible’s Control Node (see Section Ansible Setup) and issue the following command.

$ ansible-galaxy collection install zxbot.carbonio_upgrade

Hint

This command can be run by any user, preferably by the one who installed the playbook.

The above command will install the necessary infrastructure to use for the Carbonio upgrade. Next, you need to move to the directory where you have the inventory file of your installation (it is called data in the Ansible Setup, then issue the following command.

$ ansible-playbook zxbot.carbonio_upgrade.carbonio_upgrade \
-u root -i carbonio-inventory

In case the procedure does not complete successfully, you can run the command a second time, during which the tasks that successfully run will be skipped. For details, refer to Section Troubleshooting Ansible Installation.

Requirements & Preliminaries#

The Ansible playbook will update all the packages installed on he system, from any active configured repository, not only Carbonio's. To avoid this behaviour, comment out any repositories from which you do not want to upgrade packages.

This upgrade procedure requires that PostgreSQL 16 be installed. If you did not yet upgrade it, please refer to Section PostgreSQL 16 Upgrade.

The upgrade procedure is otherwise the same, regardless the underlying supported operating system.

Known Issues#

This is a list of known issues that impact Carbonio after the upgrade to 24.7.1.

Version mismatch on CLI and Carbonio Admin Panel

After the upgrade to 24.7.1, the Carbonio Admin Panel will still report the version of Carbonio to be 24.7.0. However, the CLI zmcontrol -v will report the correct version (24.7.1).

Advanced modules not starting

There are a few corner cases that prevent the advanced modules, provided by the Service Roles, to be running. The problem is that the Node featuring the Mailstore & Provisioning Role can not communicate with the Database (PostgreSQL) or DB Connector (pgpool), depending on your setup. You can check if this is the case if you find in log file /opt/zextras/log/mailbox.log error messages like:

2024-07-29 10:13:58,575 ERROR [main] [] extensions -
Error getting connection from data source org.postgresql.ds.PGSimpleDataSource@4151251b org.jooq.exception.DataAccessException:
Error getting connection from data source org.postgresql.ds.PGSimpleDataSource@4151251b at com.zextras.modules.core.db.LazyDataSourceConnectionProvider.acquire(BaseDSLContextProvider.java:72) ~[?:?]

Caused by: org.postgresql.util.PSQLException: Connection to 127.78.0.25:20000 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

Caused by: java.net.ConnectException: Connection refused

2024-07-29 10:14:00,642 FATAL [main] [] extensions - Unable to initialize zextras: org.jooq.exception.DataAccessException:
Error getting connection from data source org.postgresql.ds.PGSimpleDataSource@4151251b at org.jooq_3.14.8.POSTGRES.debug (null:-1)

Caused by: org.postgresql.util.PSQLException: Connection to 127.78.0.25:20000 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

Caused by: java.net.ConnectException: Connection refused

In order to fix the problem, ensure that PostgreSQL is reachable and then restart the mailbox.

zextras$ zmmailboxdctl restart