Uploaded image for project: 'Undertow'
  1. Undertow
  2. UNDERTOW-665

Websockets - java.util.ConcurrentModificationException when running autobahn 7.1.5 test

XMLWordPrintable

      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:

      1. start EAP 7.0.0.ER7
      2. deploy attached websocket-endpoints.war
      3. run autobahn testsuite test 7.1.5 (wstest -m fuzzingclient -s fuzzing_client_spec.json, where fuzzing_client_spec.json contains [3]
      4. 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": {}
      }
      

              sdouglas1@redhat.com Stuart Douglas (Inactive)
              sdouglas1@redhat.com Stuart Douglas (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: