When sending fragment, then close and then another fragment, it fails with unclean close code, even though it should return 1000. In server log there can be seen ConcurrentModificationException [1]
This is regression in comparison to EAP 7.0.0.ER6 and this error occurs when running standard testsuite used commonly for websockets testing (autobahn testsuite, testcase 7.1.5 [2]). As such we are considering it to be a blocker.
Steps to reproduce:
- start EAP 7.0.0.ER7
- deploy attached websocket-endpoints.war
- run autobahn testsuite test 7.1.5 (wstest -m fuzzingclient -s fuzzing_client_spec.json, where fuzzing_client_spec.json contains [3]
- see server log and autobahn test report, where you can see it fails on getting clean close code
[1]
12:13:39,642 ERROR [org.xnio.listener] (default I/O-4) XNIO001007: A channel event listener threw an exception: java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429) at java.util.HashMap$KeyIterator.next(HashMap.java:1453) at io.undertow.server.protocol.framed.AbstractFramedChannel.handleLastFrame(AbstractFramedChannel.java:489) at io.undertow.server.protocol.framed.AbstractFramedChannel.receive(AbstractFramedChannel.java:451) at io.undertow.websockets.core.AbstractReceiveListener.handleEvent(AbstractReceiveListener.java:38) at io.undertow.websockets.core.AbstractReceiveListener.handleEvent(AbstractReceiveListener.java:33) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.handleEvent(AbstractFramedChannel.java:896) at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.handleEvent(AbstractFramedChannel.java:877) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener$1.run(AbstractFramedChannel.java:903) at io.undertow.server.protocol.framed.AbstractFramedChannel$3.run(AbstractFramedChannel.java:225) at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:580) at org.xnio.nio.WorkerThread.run(WorkerThread.java:464) 12:13:39,648 ERROR [stderr] (default task-3) WebSockets error message detected: null 12:13:39,649 ERROR [stderr] (default task-3) java.nio.channels.ClosedChannelException 12:13:39,649 ERROR [stderr] (default task-3) at io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.beforeRead(AbstractFramedStreamSourceChannel.java:515) 12:13:39,649 ERROR [stderr] (default task-3) at io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.read(AbstractFramedStreamSourceChannel.java:484) 12:13:39,650 ERROR [stderr] (default task-3) at io.undertow.websockets.core.StreamSourceFrameChannel.read(StreamSourceFrameChannel.java:157) 12:13:39,650 ERROR [stderr] (default task-3) at io.undertow.websockets.core.BufferedTextMessage$1.handleEvent(BufferedTextMessage.java:126) 12:13:39,650 ERROR [stderr] (default task-3) at io.undertow.websockets.core.BufferedTextMessage$1.handleEvent(BufferedTextMessage.java:115) 12:13:39,650 ERROR [stderr] (default task-3) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) 12:13:39,650 ERROR [stderr] (default task-3) at io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel$1.run(AbstractFramedStreamSourceChannel.java:273) 12:13:39,650 ERROR [stderr] (default task-3) at io.undertow.server.protocol.framed.AbstractFramedChannel$3.run(AbstractFramedChannel.java:225) 12:13:39,651 ERROR [stderr] (default task-3) at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:580) 12:13:39,651 ERROR [stderr] (default task-3) at org.xnio.nio.WorkerThread.run(WorkerThread.java:464)
[2] Used autobahn versions
Autobahn 0.9.3-3
AutobahnTestSuite 0.7.1
[3] spec file for autobahn wstest
{ "options": {"failByDrop": false}, "outdir": "./reports", "servers": [ { "agent": "echoBasicEndpoint", "url": "ws://localhost:8080/websocket-endpoints/echoBasicEndpoint", "options": {"version": 18} } ], "cases": ["7.1.5"], "exclude-cases": [], "exclude-agent-cases": {} }
- is cloned by
-
UNDERTOW-665 Websockets - java.util.ConcurrentModificationException when running autobahn 7.1.5 test
- Resolved