Viewing Issue Advanced Details |
|||||
| ID | 0001429 | Category | [DMDirc] *Unsorted | Severity | minor |
| Reproducibility | always | Date Submitted | 2008-07-16 20:57 | Last Update | 2008-08-28 12:50 |
| Reporter | MD87 | Assigned To | Dataforce | View Status | public |
| Priority | normal | Status | assigned | Resolution | open |
| Platform | Fixed in Version | Target Version | 0.6.3 | ||
| Product Version | Product Build | ||||
| Summary | 0001429: Plugin system creates stupid number of threads | ||||
| Description | Plugin system creates stupid number of threads | ||||
| Steps To Reproduce | Start client, open prefs dialog, ZOMGS THREADS! | ||||
| Needs unit test | no | ||||
|
[ Relation Graph ]
[ Dependency Graph ]
Relationships |
|
Notes |
|
|
(0002906) Dataforce (administrator) 2008-07-17 02:49 |
Unable to reproduce. -------------------------------------- 2008-07-17 02:48:10 Full thread dump Java HotSpot(TM) Server VM (10.0-b22 mixed mode): "SwingStatusBar messageTimer" prio=10 tid=0x7a58dc00 nid=0x6dd8 in Object.wait() [0x763a2000..0x763a2fc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0xaf173340> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "IRCParser pingTimer" prio=10 tid=0x08891000 nid=0x6f5 in Object.wait() [0x7625e000..0x7625f140] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x8b324220> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "IRCParser pingTimer" prio=10 tid=0x0848bc00 nid=0x546 in Object.wait() [0x7a7ba000..0x7a7bb0c0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x8b258f88> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "IRCParser pingTimer" prio=10 tid=0x08893800 nid=0x3a4 in Object.wait() [0x7620d000..0x7620ddc0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x8b0aa0a0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "IRC Parser thread" prio=10 tid=0x08892800 nid=0x394 runnable [0x761bc000..0x761bcf40] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) - locked <0x8b061b98> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x8b061b98> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362) at com.dmdirc.parser.IRCParser.run(IRCParser.java:764) at java.lang.Thread.run(Thread.java:619) "IRC Parser thread" prio=10 tid=0x08892000 nid=0x387 runnable [0x762af000..0x762afec0] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) - locked <0x8b000ea0> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x8b000ea0> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362) at com.dmdirc.parser.IRCParser.run(IRCParser.java:764) at java.lang.Thread.run(Thread.java:619) "IRCParser pingTimer" prio=10 tid=0x08890800 nid=0x360 in Object.wait() [0x765d9000..0x765da140] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x8afd37b0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Server Reconnect Timer" prio=10 tid=0x0888f000 nid=0x311 in Object.wait() [0x76300000..0x763010c0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0x8afc0888> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "IRC Parser thread" prio=10 tid=0x0899d800 nid=0x30f runnable [0x766cc000..0x766ccdc0] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) - locked <0x8afc0750> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x8afc0750> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362) at com.dmdirc.parser.IRCParser.run(IRCParser.java:764) at java.lang.Thread.run(Thread.java:619) "Server Reconnect Timer" prio=10 tid=0x0899e800 nid=0x301 in Object.wait() [0x76810000..0x76810f40] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0x8afcceb0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Server Reconnect Timer" prio=10 tid=0x0888e400 nid=0x293 in Object.wait() [0x7676e000..0x7676efc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0x8af89208> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "IRC Parser thread" prio=10 tid=0x087e8800 nid=0x7ac3 runnable [0x76495000..0x76495dc0] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) - locked <0x8b259658> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x8b259658> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362) at com.dmdirc.parser.IRCParser.run(IRCParser.java:764) at java.lang.Thread.run(Thread.java:619) "Update Checker Timer" prio=10 tid=0x08a1bc00 nid=0x73d9 in Object.wait() [0x76588000..0x765890c0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x88649e70> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "DestroyJavaVM" prio=10 tid=0x08058c00 nid=0x3176 waiting on condition [0x00000000..0xb7d83090] java.lang.Thread.State: RUNNABLE "Server Who Timer" prio=10 tid=0x083fb000 nid=0x31f4 in Object.wait() [0x7a80b000..0x7a80c140] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x817545f0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Server Who Timer" prio=10 tid=0x0882f000 nid=0x31f2 in Object.wait() [0x7a8ad000..0x7a8ade40] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x81754998> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Server Who Timer" prio=10 tid=0x08452c00 nid=0x31e4 in Object.wait() [0x7aa5c000..0x7aa5cf40] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x81656bc8> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "TimerQueue" daemon prio=10 tid=0x7abc9800 nid=0x31d5 in Object.wait() [0x7ac60000..0x7ac60fc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at javax.swing.TimerQueue.run(TimerQueue.java:236) - locked <0x816e74a0> (a javax.swing.TimerQueue) at java.lang.Thread.run(Thread.java:619) "Server Who Timer" prio=10 tid=0x083bec00 nid=0x31d4 in Object.wait() [0x7acb1000..0x7acb2140] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x815d68a8> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "LoggingPlugin Timer" prio=10 tid=0x7b4ac800 nid=0x31c1 in Object.wait() [0x7b083000..0x7b083dc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x815dc548> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0x815dc548> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Time plugin timer" prio=10 tid=0x7b4f5800 nid=0x31b7 in Object.wait() [0x7b269000..0x7b26a0c0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x815c0e28> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Thread-31" daemon prio=10 tid=0x7b4dc400 nid=0x31b5 waiting on condition [0x7b30b000..0x7b30bdc0] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x816579e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925) at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317) at sun.awt.X11.XTrayIconPeer$Balloon$Displayer.run(XTrayIconPeer.java:877) "AWT-EventQueue-1" prio=10 tid=0x7b492800 nid=0x31b2 in Object.wait() [0x7b3fe000..0x7b3ff040] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.awt.EventQueue.getNextEvent(EventQueue.java:479) - locked <0x81687590> (a com.dmdirc.ui.swing.DMDircEventQueue) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:245) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) "AWT-Shutdown" prio=10 tid=0x7b490c00 nid=0x31b1 in Object.wait() [0x7b580000..0x7b580fc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) - locked <0x815de770> (a java.lang.Object) at java.lang.Thread.run(Thread.java:619) "AWT-XAWT" daemon prio=10 tid=0x7c53f400 nid=0x3194 runnable [0x7c0a7000..0x7c0a7f40] java.lang.Thread.State: RUNNABLE at sun.awt.X11.XToolkit.waitForEvents(Native Method) at sun.awt.X11.XToolkit.run(XToolkit.java:544) at sun.awt.X11.XToolkit.run(XToolkit.java:519) at java.lang.Thread.run(Thread.java:619) "Java2D Disposer" daemon prio=10 tid=0x082ef000 nid=0x3189 in Object.wait() [0x7c132000..0x7c132ec0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x816933a8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) at sun.java2d.Disposer.run(Disposer.java:125) at java.lang.Thread.run(Thread.java:619) "RMI TCP Accept-1099" daemon prio=10 tid=0x08269c00 nid=0x3186 runnable [0x7c742000..0x7c743040] java.lang.Thread.State: RUNNABLE at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384) - locked <0x815d1f90> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341) at java.lang.Thread.run(Thread.java:619) "GC Daemon" daemon prio=10 tid=0x08261000 nid=0x3185 in Object.wait() [0x7c793000..0x7c793fc0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at sun.misc.GC$Daemon.run(GC.java:100) - locked <0x81400080> (a sun.misc.GC$LatencyLock) "RMI Reaper" prio=10 tid=0x08260800 nid=0x3184 in Object.wait() [0x7c7e4000..0x7c7e5140] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x81404ec8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x81404ec8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:333) at java.lang.Thread.run(Thread.java:619) "RMI TCP Accept-0" daemon prio=10 tid=0x081fd800 nid=0x3183 runnable [0x7c835000..0x7c8360c0] java.lang.Thread.State: RUNNABLE at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384) - locked <0x814030f8> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341) at java.lang.Thread.run(Thread.java:619) "Low Memory Detector" daemon prio=10 tid=0x08120400 nid=0x3181 runnable [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=10 tid=0x0811ec00 nid=0x3180 waiting on condition [0x00000000..0x7c9e9408] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x0811c400 nid=0x317f waiting on condition [0x00000000..0x7ca6a388] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x0811b000 nid=0x317e waiting on condition [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x080ff000 nid=0x317d in Object.wait() [0x7cc1f000..0x7cc1ffc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x8141dbc0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x080fe000 nid=0x317c in Object.wait() [0x7cc71000..0x7cc71140] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x8141d8b8> (a java.lang.ref.Reference$Lock) "VM Thread" prio=10 tid=0x080fac00 nid=0x317b runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x0805f800 nid=0x3177 runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x08060800 nid=0x3178 runnable "GC task thread#2 (ParallelGC)" prio=10 tid=0x08061800 nid=0x3179 runnable "GC task thread#3 (ParallelGC)" prio=10 tid=0x08062c00 nid=0x317a runnable "VM Periodic Task Thread" prio=10 tid=0x08121c00 nid=0x3182 waiting on condition JNI global references: 1282 Heap PSYoungGen total 10624K, used 6611K [0xaf080000, 0xb0030000, 0xb4c00000) eden space 7872K, 49% used [0xaf080000,0xaf44cd40,0xaf830000) from space 2752K, 98% used [0xaf860000,0xafb08020,0xafb10000) to space 4096K, 0% used [0xafc30000,0xafc30000,0xb0030000) PSOldGen total 179840K, used 178939K [0x81400000, 0x8c3a0000, 0xaf080000) object space 179840K, 99% used [0x81400000,0x8c2bef90,0x8c3a0000) PSPermGen total 17920K, used 17696K [0x7d400000, 0x7e580000, 0x81400000) object space 17920K, 98% used [0x7d400000,0x7e548290,0x7e580000) |
|
(0003483) Dataforce (administrator) 2008-08-28 12:50 |
Happens when opening prefs panel for the first time due to timeout for the resource manager. PluginManager should handle ResourceManagers and use a single thread for handling timeouts. |

