Skip navigation
3116 Views 2 Replies Latest reply: Nov 14, 2008 1:13 PM by oikku RSS
oikku Bronze 2 posts since
Nov 14, 2008
Currently Being Moderated

Nov 14, 2008 8:09 AM

Openfire leaking threads

Hi

 

I was running a tsung performance test on openfire. It first worked fine, but then started leaking threads. Openfire created quite fast hundreds of threads. I made a thread dump and there is a huge amount of "PEP service maintenance" threads.

 

Here is a sample of 2 from the dump:

 

"PEP service maintenance" daemon prio=10 tid=0x00002ab226b8b000 nid=0x29c0 in Object.wait() [0x00002ab22a70c000..0x00002ab22a70cc90]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Unknown Source)
        - locked <0x00002aaf6bf7eae0> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Unknown Source)

 

"PEP service maintenance" daemon prio=10 tid=0x00002ab226b89000 nid=0x29bf in Object.wait() [0x00002ab22a60b000..0x00002ab22a60bb10]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Unknown Source)
        - locked <0x00002aaf6bef13f8> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Unknown Source)

 

 

I quickly browsed the codes and found a potential bug:

 

PEPService class has instance variable Timer:

row 133 in PEPService:     private Timer timer = new Timer("PEP service maintenance");

 

Timer javadoc says: "Corresponding to each Timer object is a single background thread.." == timer = thread

 

IQPEPHandler class creates an instance of PEPService per JID from the message came:

 

// If no service exists yet for jidFrom, create one.
                if (pepService == null) {

     ----- clip---

                    pepService = new PEPService(XMPPServer.getInstance(), jidFrom);
                    pepServices.put(jidFrom, pepService);

 

 

Sounds like a design bug? (or a nasty feature )

 

- Matti

More Like This

  • Retrieving data ...

Bookmarked By (0)

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points