Skip to content

Hang on reconnectBlocking #1365

Description

@Xander-Polishchuk

Describe the bug
Sometime WebSocketClient hangs on reconnectBlocking() at WebSocketClient.java:422 on closeLatch.await(). That happens very occasionally.

To Reproduce
Steps to reproduce the behavior:

  1. Setup server and client
  2. Connect to Server
  3. call reconnectBlocking() in a loop

Expected behavior
reconnectBlocking() should never hang

Debug log
The only log:

11:36:42.216 [WebSocketConnectReadThread-5820] TRACE org.java_websocket.WebSocketImpl -- write(171): GET / HTTP/1.1
Connection: Upgrade
Host: localhost:41516
Sec-WebSocket-Key: HGF5XrGAw3IBiWJKCnLPTA==
Sec-WebSocket-Version: 13
Upgrade: websocket


11:36:42.222 [WebSocketConnectReadThread-5820] TRACE org.java_websocket.WebSocketImpl -- process(148): (HTTP/1.1 101 Switching Protocols
Content-Length: 0
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: TfhKZHYT6wDgMrIvABVEeUyEBiw=

)
11:36:42.222 [WebSocketConnectReadThread-5820] TRACE o.java_websocket.drafts.Draft_6455 -- acceptHandshakeAsClient - Matching extension found: DefaultExtension
11:36:42.222 [WebSocketConnectReadThread-5820] TRACE o.java_websocket.drafts.Draft_6455 -- acceptHandshake - Matching protocol found: 
11:36:42.222 [WebSocketConnectReadThread-5820] TRACE org.java_websocket.WebSocketImpl -- open using draft: Draft_6455 extension: DefaultExtension protocol:  max frame size: 2147483647
11:36:42.222 [WebSocketConnectReadThread-5820] TRACE o.java_websocket.AbstractWebSocket -- Connection lost timer started
"Test worker@1" prio=5 tid=0x1 nid=NA waiting
  java.lang.Thread.State: WAITING
	  at jdk.internal.misc.Unsafe.park(Unsafe.java:-1)
	  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
	  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
	  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1047)
	  at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)
	  at org.java_websocket.client.WebSocketClient.closeBlocking(WebSocketClient.java:422)
	  at org.java_websocket.client.WebSocketClient.reset(WebSocketClient.java:343)
	  at org.java_websocket.client.WebSocketClient.reconnectBlocking(WebSocketClient.java:327)

Environment(please complete the following information):

  • Version used: 1.5.4
  • Java version: 17
  • Operating System and version: Windows 10

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions