Openfire breaks after Java/Mariadb update
Not sure if this is the best place to put this (new wiki page maybe?). I encountered a server-side issue when testing software updates on the lvalert-test
box before trying the same procedure on production and playground.
The list of packages from apt-get upgrade
:
The following packages were automatically installed and are no longer required:
linux-image-4.9.0-3-amd64 linux-image-4.9.0-4-amd64
Use 'apt autoremove' to remove them.
The following packages have been kept back:
default-jre default-jre-headless icedtea-netx linux-image-amd64 mariadb-client-10.1
mariadb-server mariadb-server-10.1 mariadb-server-core-10.1
The following packages will be upgraded:
apt apt-transport-https apt-utils base-files bind9-host ca-certificates-java certbot curl dbus
dirmngr dnsutils gnupg gnupg-agent gpgv icedtea-netx-common java-common libapt-inst2.0
libapt-pkg5.0 libbind9-140 libc-bin libc-dev-bin libc-l10n libc6 libc6-dev libcups2 libcurl3
libcurl3-gnutls libdbus-1-3 libdns-export162 libdns162 libisc-export160 libisc160 libisccc140
libisccfg140 libjs-jquery libldb1 liblwres141 libmariadbclient-dev libmariadbclient18
libpam-systemd libpng16-16 libpq5 libsmbclient libssh2-1 libssl1.0.2 libsystemd0 libudev1
libwayland-client0 libwayland-cursor0 libwayland-server0 libwbclient0 libxapian30 linux-libc-dev
locales mariadb-client-core-10.1 mariadb-common multiarch-support openjdk-8-jre
openjdk-8-jre-headless openssh-client openssh-server openssh-sftp-server osg-ca-certs
puppet-agent python-ldb python-samba python3-acme python3-certbot python3-cryptography
python3-josepy rsync samba-common samba-common-bin samba-libs smbclient systemd systemd-sysv
tzdata udev unzip vim vim-common vim-runtime vim-tiny wget xxd
86 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
Need to get 105 MB of archives.
After this operation, 15.0 MB of additional disk space will be used.
Do you want to continue? [Y/n]
and from apt-get dist-upgrade
:
The following packages were automatically installed and are no longer required:
icedtea-netx icedtea-netx-common linux-image-4.9.0-3-amd64 linux-image-4.9.0-4-amd64
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
default-java-plugin icedtea-8-plugin
The following NEW packages will be installed:
libconfig-inifiles-perl linux-image-4.9.0-9-amd64
The following packages will be upgraded:
default-jre default-jre-headless icedtea-netx linux-image-amd64 mariadb-client-10.1
mariadb-server mariadb-server-10.1 mariadb-server-core-10.1
8 upgraded, 2 newly installed, 2 to remove and 0 not upgraded.
Need to get 55.8 MB of archives.
After this operation, 193 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Everything upgraded fine, but I noticed this in the output from apt-get:
Current default time zone: 'America/Chicago'
Local time is now: Thu Jun 27 14:04:36 CDT 2019.
Universal Time is now: Thu Jun 27 19:04:36 UTC 2019.
Run 'dpkg-reconfigure tzdata' if you wish to change it.
Important to note that for later. After the upgrade, lvalert-test
because unresponsive to clients and I couldn't access the web interface. service openfire status
still showed it running, but there was this in the error log:
2019.06.27 14:13:44 org.jivesoftware.openfire.auth.DefaultAuthProvider - User SQL failure:
java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the last attempt is as follows: java.sql.SQLException: The server time zone value 'CDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
I googled around and found the following posts with similar issues:
https://bugs.mysql.com/bug.php?id=85816 https://stackoverflow.com/questions/26515700/mysql-jdbc-driver-5-1-33-time-zone-issue https://stackoverflow.com/questions/52906554/server-time-zone-value-cdt-is-unrecognized-or-represents-more-than-one-time-zo
I manually opened the openfire.xml
configuration file and edited the mysql connection string to look like this:
<serverURL>jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&useLegacyDatetimeCode=false&serverTimezone=America/Chicago</serverURL>
And then i restarted openfire, and tests have been passing since. Leaving this ticket open until I patch the production servers.