i’'m also seeing this problem with gaim 1.5 (gnutls 1.0.20 and 1.0.25) and wildfire 2.5.1.
when i click disconnect in gaim, nothing shows up in the debug log in the wildfire console.
here is the jvm thread dump while gaim is waiting in gnutls_bye:
Full thread dump Java HotSpot™ Server VM (1.5.0_06-b05 mixed mode):
“Client SR - 10181026” daemon prio=1 tid=0x0832ea10 nid=0x7ba9 runnable
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.nio.channels.Channels$ReadableByteChannelImpl.read(Unknown Source)
- locked <0xb0cc1610> (a java.lang.Object)
at org.jivesoftware.wildfire.net.TLSStreamReader.doRead(TLSStreamReader.java:62)
at org.jivesoftware.wildfire.net.TLSStreamReader.doRead(TLSStreamReader.java:87)
at org.jivesoftware.wildfire.net.TLSStreamReader.access$000(TLSStreamReader.java:2 7)
at org.jivesoftware.wildfire.net.TLSStreamReader$1.read(TLSStreamReader.java:153)
- locked <0xb0cd85d8> (a org.jivesoftware.wildfire.net.TLSStreamReader$1)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
- locked <0xb0cd8550> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(Unknown Source)
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2971)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3025)
at org.jivesoftware.wildfire.net.MXParser.nextImpl(MXParser.java:75)
at org.xmlpull.mxp1.MXParser.nextToken(MXParser.java:1100)
at org.dom4j.io.XMPPPacketReader.parseDocument(XMPPPacketReader.java:290)
at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:174)
at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)
at java.lang.Thread.run(Unknown Source)
“SunJsseListener1-1” prio=1 tid=0x083df0d0 nid=0x79ab in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x936a78d0> (a org.mortbay.util.ThreadPool$PoolThread)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:522)
- locked <0x936a78d0> (a org.mortbay.util.ThreadPool$PoolThread)
“SunJsseListener1-0” prio=1 tid=0x083d2cf8 nid=0x79aa in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x936a7858> (a org.mortbay.util.ThreadPool$PoolThread)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:522)
- locked <0x936a7858> (a org.mortbay.util.ThreadPool$PoolThread)
“Acceptor [SSL: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=9091]]” prio=1 tid=0x083d2048 nid=0x79a9 runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x936aeed8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(Unknown Source)
at org.mortbay.util.ThreadedServer.acceptSocket(ThreadedServer.java:423)
at org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:608)
“SocketListener0-1” prio=1 tid=0x083d6310 nid=0x79a8 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x936aee30> (a org.mortbay.util.ThreadPool$PoolThread)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:522)
- locked <0x936aee30> (a org.mortbay.util.ThreadPool$PoolThread)
“SocketListener0-0” prio=1 tid=0x08322128 nid=0x79a7 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x936aedb8> (a org.mortbay.util.ThreadPool$PoolThread)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:522)
- locked <0x936aedb8> (a org.mortbay.util.ThreadPool$PoolThread)
“Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=9090]” prio=1 tid=0x08322560 nid=0x79a6 runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x936adeb0> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.mortbay.util.ThreadedServer.acceptSocket(ThreadedServer.java:423)
at org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:608)
“SessionScavenger” daemon prio=1 tid=0x083200d0 nid=0x79a5 waiting on condition
at java.lang.Thread.sleep(Native Method)
at org.mortbay.jetty.servlet.AbstractSessionManager$SessionScavenger.run(AbstractS essionManager.java:588)
“Rollover” daemon prio=1 tid=0x8d35fb68 nid=0x79a4 waiting on condition
at java.lang.Thread.sleep(Native Method)
at org.mortbay.util.RolloverFileOutputStream$Rollover.run(RolloverFileOutputStream .java:302)
“DestroyJavaVM” prio=1 tid=0x0805d4c8 nid=0x798c waiting on condition
“pool-2-thread-1” prio=1 tid=0x0822c9d0 nid=0x79a3 waiting on condition
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNano s(Unknown Source)
at java.util.concurrent.DelayQueue.take(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
“SocketSendingTracker” daemon prio=1 tid=0x0822f1a8 nid=0x79a2 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x934913c0> (a org.jivesoftware.wildfire.net.SocketSendingTracker$1)
at org.jivesoftware.wildfire.net.SocketSendingTracker$1.run(SocketSendingTracker.j ava:64)
- locked <0x934913c0> (a org.jivesoftware.wildfire.net.SocketSendingTracker$1)
“Secure Socket Listener” daemon prio=1 tid=0x0822ea98 nid=0x79a1 runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x9328a258> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(Unknown Source)
at org.jivesoftware.wildfire.net.SSLSocketAcceptThread.run(SSLSocketAcceptThread.j ava:140)
“Socket Listener at port 5222” daemon prio=1 tid=0x8d38dc18 nid=0x79a0 runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x9347cbf8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.jivesoftware.wildfire.net.SocketAcceptThread.run(SocketAcceptThread.java:12 5)
“Socket Listener at port 5269” daemon prio=1 tid=0x8e6e6210 nid=0x799f runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x933159c8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.jivesoftware.wildfire.net.SocketAcceptThread.run(SocketAcceptThread.java:12 5)
“pool-1-thread-1” prio=1 tid=0x082cd948 nid=0x799e runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x93260088> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.jivesoftware.wildfire.filetransfer.ProxyConnectionManager$1.run(ProxyConnec tionManager.java:76)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
“Auditor” prio=1 tid=0x08297440 nid=0x799d in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x93315210> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x93315210> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)
“MUC cleanup” prio=1 tid=0x082c9218 nid=0x799c in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x9330c5a0> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x9330c5a0> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)
“Sessions cleanup” prio=1 tid=0x8de297c8 nid=0x799b in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x93307d38> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x93307d38> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)
“Thread-2” daemon prio=1 tid=0x8de31418 nid=0x799a waiting on condition
at java.lang.Thread.sleep(Native Method)
at org.jivesoftware.database.ConnectionPool.run(ConnectionPool.java:370)
at java.lang.Thread.run(Unknown Source)
“HSQLDB Timer @1cbfe9d” daemon prio=1 tid=0x08356000 nid=0x7999 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x932e6348> (a org.hsqldb.lib.HsqlTimer)
at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
- locked <0x932e6348> (a org.hsqldb.lib.HsqlTimer)
at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
“Thread-0” daemon prio=1 tid=0x8e6272a0 nid=0x7998 waiting on condition
at java.lang.Thread.sleep(Native Method)
at com.install4j.runtime.Launcher$StopWatcherThread.run(Unknown Source)
“Low Memory Detector” daemon prio=1 tid=0x8e6019b0 nid=0x7996 runnable
“CompilerThread1” daemon prio=1 tid=0x8e6005c8 nid=0x7995 waiting on condition
“CompilerThread0” daemon prio=1 tid=0x0810cc98 nid=0x7994 waiting on condition
“AdapterThread” daemon prio=1 tid=0x0810bc08 nid=0x7993 waiting on condition
“Signal Dispatcher” daemon prio=1 tid=0x0810ac70 nid=0x7992 waiting on condition
“Finalizer” daemon prio=1 tid=0x081015d8 nid=0x7991 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on <0x930d3810> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x930d3810> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
“Reference Handler” daemon prio=1 tid=0x080fff88 nid=0x7990 in Object.wait()
at java.lang.Object.wait(Native Method)