Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8184731

Internal error after sendClose() because of enqueueClose() invokes duplicately

XMLWordPrintable

      Similar failures are observed in several WebSocket tests. This is intermittent but frequent. I can reproduce this problem with about 5 times of repeated test runs.
      This looks to be a product issue in race condition. It is reproducible on several different platforms.

      Stacktraces are similar with j.l.InternError at WebSocketImpl.lambda$enqueueClose$4(WebSocketImpl.java:298).

      See sample from CloseAbortTest.

      java.util.concurrent.ExecutionException: java.lang.InternalError
              at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
              at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
              at CloseAbortTest.closeAbort(CloseAbortTest.java:68)
              at CloseAbortTest.main(CloseAbortTest.java:35)
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base/java.lang.reflect.Method.invoke(Method.java:564)
              at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:115)
              at java.base/java.lang.Thread.run(Thread.java:844)
      Caused by: java.lang.InternalError
              at jdk.incubator.httpclient/jdk.incubator.http.internal.websocket.WebSocketImpl.lambda$enqueueClose$4(WebSocketImpl.java:298)
              at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
              at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
              at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2251)
              at jdk.incubator.httpclient/jdk.incubator.http.internal.websocket.WebSocketImpl.enqueueClose(WebSocketImpl.java:289)
              at jdk.incubator.httpclient/jdk.incubator.http.internal.websocket.WebSocketImpl.sendClose(WebSocketImpl.java:280)
              ... 8 more

            xiaofeya Xiaofeng Yang
            xiaofeya Xiaofeng Yang
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: