Openfire 3.6.3 (563 subsciptions)
IMGateway 1.2.4d (msn,aim, yahoo enabled)
I’ve noticed after a few days of monitoring, that threads dumps on the openfire jvm are showing Timer threads that never seem to be cleaned up.
“Timer-10217” daemon prio=10 tid=0x0a550400 nid=0xaef in Object.wait() [0xc6848000…0xc6848f30]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0xed3d33e8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)
My monitor period was over 6 days and doing daily thread dumps produced;
43 Timers on the first day
383 … second day
635 … third day
765 … fourth day
1672 … fifth day
1782 …sixth day
I have confirmed that timers are indeed aggregating, ie all timers that existed on day n, exist on day n + m. Total threads on these dumps show that 97% are Timer threads.
The target is an internal test machine, so there is seldom more than 3-4 conncurrent users and only about 30 or so *active *accounts used sparingly. We use the gateway with the above networks enabled + group chat.
I’m not an Openfire or Gateway developer / expert so I have not isolated yet what part of the code or action is responsible for this. From looking through the code, I can see the gateway and openfire source contains a few Timers, but there is also a host of imported libraries, so the culprit may also lie in there.
From my testing in isolation, I worked the gateway in the typical fashion in which we use it, but have not reproduced this in any manner.
Any info or suggestions much appreciated,