powered by Jive Software

Openfire do not come messages to users

Проблема начала проявляться где-то полгода назад.
Сейчас эта проблема более массовая.
Клиенты абсолютно разные, но проблема у всех одна, не приходят сообщения, помогает только переподключение пользователя к серверу, или перезагрузка сервера.
После переподключения все сообщения приходят, но хочется разобраться в проблеме.
Проблема проявляется в версиях 4.2.3 и после обновления в 4.3.2 (по ощущениям стало еще хуже).

The problem began to appear about six months ago.
Now this problem is more widespread.
The clients are completely different, but the problem is the same for everyone, messages do not come, only reconnecting the user to the server or restarting the server helps.
After reconnection, all messages come, but I want to understand the problem.
The problem manifests itself in versions 4.2.3 and after the update in 4.3.2 (it felt worse by feeling).

Anything in the logs at the moment when clients start to have this issue? /openfire/logs/all.log

2019.02.15 14:44:23 WARN  [socket_c2s-thread-10]: org.jivesoftware.openfire.nio.ConnectionHandler - Closing connection due to exception in session: (0x00000025: nio socket, server, / =>
java.io.IOException: Соединение разорвано другой стороной
        at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:1.8.0_171]
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[?:1.8.0_171]
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[?:1.8.0_171]
        at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[?:1.8.0_171]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[?:1.8.0_171]
        at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:273) ~[mina-core-2.0.7.jar:?]
        at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44) ~[mina-core-2.0.7.jar:?]
        at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:690) ~[mina-core-2.0.7.jar:?]
        at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664) ~[mina-core-2.0.7.jar:?]
        at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653) ~[mina-core-2.0.7.jar:?]
        at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67) ~[mina-core-2.0.7.jar:?]
        at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124) ~[mina-core-2.0.7.jar:?]
        at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) ~[mina-core-2.0.7.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_171]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_171]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]

upd: узнал сейчас, клиент реально закрыл клиент и выключил компьютер. а за это время у двух человек проявилась проблема (вот кстати в версии 4.3.2 они уже стали оффлайн на сервере, хотя сам клиент показывает что онлайн). И никаких записей в логах больше нет. Странно всё это… Клиенты все разные. Но по большей части psi+. Наткнулся на ссылку https://github.com/psi-plus/main/issues/745
Теперь проверяю эту опцию в клиенте, на других клиентах (не psi+) тоже проблема присутствует. Вообще не понимаю как это все тестировать. Кто виноват сервер или клиент? Как определить?

upd: found out now, the client actually closed the client and turned off the computer. and during this time, two people showed a problem (by the way, in version 4.3.2 they already became offline on the server, although the client himself shows that online). And there are no more entries in the logs. All this is strange … Clients are all different. But for the most part psi +. I came across the link https://github.com/psi-plus/main/issues/745
Now I check this option in the client, on other clients (not psi +) the problem is also present. I don’t understand how to test all this. Who is to blame the server or client? How to determine?

It is always hard to investigate such problems. Can’t help much with that. All i see that it says that connection was closed from the client side. It is even harder to pin point the issue when all the clients are different. Maybe some client causing this issue to all the rest.

Похоже что проблема именно с клиентом psi+
Отключил управление потоками в настройках соединения на проблемных машинах, проблема не проявляется более 3х дней.