Debian Jessie openfire 4.2.3 to 4.3.2 upgrade

Есть успешный опыт обновления openfire 4.2.3 до версии 4.3.2 на Debian Jessie?
У меня ругается на 7 версию Java. Установил java8-runtime-headless из jessie-backports но всеравно не запускается сервер.
В логах ничего не нашел. Пришлось по быстрому вернуть все назад.

Have a successful upgrade experience from openfire 4.2.3 to version 4.3.2 on Debian Jessie?
I swear on the 7th version of Java. I installed java8-runtime-headless from jessie-backports but the server does not start anyway.
Found nothing in the logs. I had to quickly get it back.

I’m sure we would have lots of reports if it was wide spread, but i have seen a few reports with problems on Debian, so i have filed https://issues.igniterealtime.org/browse/OF-1684
Nobody have looked into that yet.

Остановил сервер, почистил логи openfire.
установил пакет dpkg -i openfire_4.3.2_all.deb
не стартует, в логах пусто.
заметил следующее сообщение:

best java alternative in: /usr/lib/jvm/java-7-openjdk-i386/jre
Starting openfire: openfire.

добавил строку в файл /etc/init.d/openfire
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-i386/jre"
не стартует!

ок, отменяю изменения. запускаю VM на jessie, ставлю пакеты:
apt-get install -t jessie-backports java8-runtime-headless default-jre-headless
установил пакет dpkg -i openfire_4.3.2_all.deb
стартует! Похоже проблема в каком то конфигурационном файле, буду разбираться дальше.

Stopped the server, cleaned openfire logs.
installed the package dpkg -i openfire_4.3.2_all.deb
does not start, the logs are empty.
noticed the following message:

best java alternative in: /usr/lib/jvm/java-7-openjdk-i386/jre
Starting openfire: openfire.

added a line to the file /etc/init.d/openfire
JAVA_HOME ="/usr/lib/jvm/java-8-openjdk-i386/jre "
does not start!

OK, undo changes. I start VM on jessie, I put packets:
apt-get install -t jessie-backports java8-runtime-headless default-jre-headless
installed the package dpkg -i openfire_4.3.2_all.deb
starts! It looks like a problem in some kind of configuration file, I will understand further.

Openfire 4.3.2 требует для работы java 8 версии.

Ошибка конфигурации наподобие этой Can not update from 4.2.3 to 4.3.2 on Debian ?
Если да, то можно её спокойно игнорировать и выбрать вариант ‘N’, чтобы сохранить текущую конфигурацию.
В релизе 4.3.1 были добавлены одноразовые токены (https://github.com/igniterealtime/Openfire/pull/1249), которые можно использовать для входа, если забыт/потерян пароль администратора. И в рамках этой задачи был изменён файл openfire.xml. Этот же файл был изменён в процессе конфигурации. Поэтому при обновлении apt не знает, что делать.

1 Like

ma1uta, пока не выявил никаких ошибок, при обновлении версии я оставляю openfire.xml старой версии (нажимаю N). Проблема кроется в чем то другом.
Я указал принудительно использовать 8 версию java в /etc/init.d/openfire но результат нулевой.
Чистая установка 4.3.2 работает, обновление с 4.2.3 до 4.3.2 нет. На боевом сервере не могу долго оставлять сервер в простое. На виртуальном, пока не добился той же проблемы.

Вообще цель обновления немного другая, клиенты жалуются что не приходят сообщения. Помогает только перезагрузка сервера, или если клиент принудительно сам переподключается к серверу.

Итак, удалось до конца разобраться в причине и найти способ решения проблемы.
Причина была в том, что openfire не мог подключиться к mysql базе, хотя конфиг файл не менялся, все данные о пользователе/пароле/БД openfire подхватить не смог.

Решил проблему следующим образом:
Предварительно на Debian Jessie из jessie-backports нужно поставить пакеты:
apt-get install -t jessie-backports java8-runtime-headless default-jre-headless
Далее скачиваем и устанавливаем openfire 4.3.2.
При запуске openfire выбирает java 7 версии (если она больше нигде не используется, можно ее удалить), а для работы требуется 8 версия.
Сначала выясняем какие версии java доступны в системе:
update-alternatives --display java | grep -oe \/.*\/bin\/java | sed 's/\/bin\/java//g'
далее запоминаем и копируем директорию с Java 8, в моем случае это:
/usr/lib/jvm/java-8-openjdk-amd64/jre.
Далее нужно определить переменную JAVA_HOME, добавляем в файл /etc/default/openfire следующую строку:
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre"
После открываем файл /etc/openfire/openfire.xml и меняем строку <setup>true</setup> на <setup>false</setup>
Запускаем /etc/init.d/openfire start
После чего нужно зайти в консоль администратора и заново подставить все пароли для доступа к БД Mysql и LDAP.

I saw reports that some users had to change timezone id in db connection string. Maybe you worked around this by rerunning the setup, but it could be just a simple edit in openfire.xml. I guess this could be related to updating mysql connector in 4.3. There was very old version of it before, now we use the latest version and maybe it operates differently with timezones.

Да, Openfire 4.3.2 работает с java версией не ниже 8.
Также был обновлён драйвер для mysql, и теперь поддерживаются только mysql версий выше 5.5

wroot, возможно проблема с часовыми поясами обошла меня стороной. У меня никаких проблем с этим не было, ни на рабочем, ни на тестовом сервере. Единственное что поменялось в openfire.xml - это строки с пользователем и паролем к бд. Т.е. от старой версии они не работали.

wroot, maybe a problem with time zones has bypassed me. I had no problems with this, either on the worker or on the test server. The only thing that has changed in openfire.xml is the lines with the user and the password to the database. Those. from the old version they did not work.

Hi to all I successfully install the openfire 4.3.2 and connect to mariadb well.
The problem with not connect is for me time zone.
For test I setup and openfire 4.3.0 with the same way.
But before install the openfire from deb I run command

timedatectl set-timezone UTC

After change the timezone setup and run openfire 4.3.2 is ok.
I think is not good when to install new version on Debian/Ubuntu and connect Mysql/Mariadb need to change timezone.