grizzly
  1. grizzly
  2. GRIZZLY-680

SSL client may hang with 1.9.16 when send series packets to server then wait for a reply

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.9.16
    • Fix Version/s: 1.9.17
    • Component/s: framework
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: Sun

    • Issuezilla Id:
      680

      Description

      This only happens with SSL. It's hard to reproduce by running the test on command
      line by itself but easy to reproduce when run the test through Tonga.

      The test does following
      make a SSL connection to server (use Grizzly 1.9.16 NIO framwork)
      send message #1
      send message #2
      ......
      send message #100
      send DISCONNECT message <--- DISCONNECT is an application protocol message
      to end the
      application session (not socket, ie. the server
      and client will be
      still connected after this message)
      wait for reply for the DISCONNECT message <--- hangs

      The same test runs fine with TCP.

      jstack on server side at time of 'hang'
      ---------------------------------------------------
      Thread t@41: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@39: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@38: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@37: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@36: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@35: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@34: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@33: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@32: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@31: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@30: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=9504145 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@29: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@28: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@27: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.Controller.start() @bci=355, line=804 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@25: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=394243363 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
      • com.sun.messaging.jmq.jmsserver.multibroker.CallbackDispatcher.run() @bci=30,
        line=349 (Interpreted frame)

      Thread t@15: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=6449030 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.util.TimerThread.mainLoop() @bci=201, line=509 (Interpreted frame)
      • java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)

      Thread t@9: (state = BLOCKED)

      Thread t@8: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=835175 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Interpreted frame)
      • java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Interpreted frame)
      • java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted
        frame)

      Thread t@7: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=394243265 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
      • java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted
        frame)

      "grizzly-thread-dump.txt" 213 lines, 13832 characters
      changsha >cat grizzly-thread-dump.txt

      Thread t@41: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@39: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@38: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@37: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@36: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@35: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@34: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@33: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@32: (state = IN_NATIVE)

      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll0(long, int, long, int) @bci=0
        (Interpreted frame)
      • sun.nio.ch.DevPollArrayWrapper.poll(long) @bci=18, line=164 (Interpreted frame)
      • sun.nio.ch.DevPollSelectorImpl.doSelect(long) @bci=28, line=68 (Interpreted
        frame)
      • sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled frame)
      • sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
        -
        com.sun.grizzly.SelectorHandlerRunner.doSelect(com.sun.grizzly.SelectorHandler,
        com.sun.grizzly.NIOContext) @bci=24, line=184 (Interpreted frame)
      • com.sun.grizzly.SelectorHandlerRunner.run() @bci=205, line=129 (Interpreted
        frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork() @bci=47, line=379
        (Interpreted frame)
      • com.sun.grizzly.util.FixedThreadPool$BasicWorker.run() @bci=1, line=360
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@31: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@30: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=9504145 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@29: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@28: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.ReadController.start() @bci=72, line=118 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable)
        @bci=43, line=650 (Interpreted frame)
      • java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=675
        (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@27: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • com.sun.grizzly.Controller.waitUntilSeletorHandlersStop() @bci=40, line=1052
        (Interpreted frame)
      • com.sun.grizzly.Controller.start() @bci=355, line=804 (Interpreted frame)
      • com.sun.grizzly.Controller.run() @bci=1, line=662 (Interpreted frame)
      • java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)

      Thread t@25: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=394243363 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
      • com.sun.messaging.jmq.jmsserver.multibroker.CallbackDispatcher.run() @bci=30,
        line=349 (Interpreted frame)

      Thread t@15: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=6449030 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.util.TimerThread.mainLoop() @bci=201, line=509 (Interpreted frame)
      • java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)

      Thread t@9: (state = BLOCKED)

      Thread t@8: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=835175 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Interpreted frame)
      • java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Interpreted frame)
      • java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted
        frame)

      Thread t@7: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=394243265 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
      • java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted
        frame)

        Activity

        Hide
        jfarcand added a comment -

        Alexey is looking at it.

        Show
        jfarcand added a comment - Alexey is looking at it.
        Hide
        oleksiys added a comment -

        Fixed

        Author: oleksiys
        Date: 2009-06-30 09:52:35+0000
        New Revision: 3401

        Modified:
        trunk/code/modules/grizzly/src/main/java/com/sun/grizzly/filter/ParserProtocolFilter.java
        trunk/code/modules/grizzly/src/main/java/com/sun/grizzly/filter/SSLReadFilter.java
        trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/SSLUtils.java

        Log:
        fix issue #680
        https://grizzly.dev.java.net/issues/show_bug.cgi?id=680
        "SSL client may hang with 1.9.16 when send series packets to server then wait for a reply"

        ProtocolParserFilter should reinvoke the filterchain, if some data left in secured input buffer

        Show
        oleksiys added a comment - Fixed Author: oleksiys Date: 2009-06-30 09:52:35+0000 New Revision: 3401 Modified: trunk/code/modules/grizzly/src/main/java/com/sun/grizzly/filter/ParserProtocolFilter.java trunk/code/modules/grizzly/src/main/java/com/sun/grizzly/filter/SSLReadFilter.java trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/SSLUtils.java Log: fix issue #680 https://grizzly.dev.java.net/issues/show_bug.cgi?id=680 "SSL client may hang with 1.9.16 when send series packets to server then wait for a reply" ProtocolParserFilter should reinvoke the filterchain, if some data left in secured input buffer

          People

          • Assignee:
            oleksiys
            Reporter:
            amyk
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: