stanzaWorkerPool does not consumed

Using k6.io (with bosh) I got openfire users to login and shut down without sending any packages. So I tried to test the sessions being closed by openfire. I noticed that a session was not closed after a certain amount of time after running the test. This session never closes.

After that, when people try to login, I saw that the <auth> package was not processed. When I debug Openfire, I noticed that the HttpBindManager.getInstance().getSessionManager().execute method in HttpSession.java does not work. It runs to the 569th line, but not to the 570th.

When I examined the execute method, I noticed that the stanzaWorkerPool was not consumed. As you can see, there are 271 pending jobs in it.

This is stucks openfire and blocking users from logging in. When I review the code I am not using “xmpp.jmx.enabled”. My Openfire version: 4.8.0 Alpha, build bda4ffa

1 Like

Thank you for your detailed report. Can you reproduce this problem? If you can, could you please create a thread dump of Openfire, and check if there is a deadlock?

I got an error when export thread dump from Intellij idea. So i used that code:

jstack 75762 > /tmp/threaddump.txt

threaddump.txt (120.4 KB)

Thanks. There is no deadlock in this thread dump. Was the thread dump taken at a time when there were unconsumed tasks in the workQueue of the pool?

Yes, 5705 jobs were waiting this time.

In addition, I would like to point out that I also experience this when I put my computer to sleep. But the first time I tried it, I experienced it even though my computer was on.