Please make a Jira. I also need an example to run which reproduces the
error.

On Tue, Apr 25, 2023 at 6:35 AM Kishore Mokkarala <kishore....@gmail.com>
wrote:

> Hi,
> I have migrated from 2.0.21 to 2.023 for solving CVE, i have seen thread
> blocking issue, So used latest mina verstion 2.2.1 but still threads were
> blocked here is the sample code.Thread hungs at awaitUninterruptibly.  Once
> this issue comes  in sub sequest launches nothing will work all threads
> will be blocked forever,i have to restart the process to make it work. For
> single thread working fine,if i start 50-100 threads this thread blocking
> issue will surface.
>
> *Here is the sample thread dump:*
> "pool-118-thread-6" #508 prio=5 os_prio=0 cpu=345.84ms elapsed=*1929.48s*
> tid=0x00007ec6fc001800 nid=0x4b5d4 in Object.wait()  [0x00007ec7792d4000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(java.base@11.0.14.1/Native Method)
>         - waiting on <no object reference available>
>         at
>
> org.apache.mina.core.future.DefaultIoFuture.await0(DefaultIoFuture.java:218)
>         - waiting to re-lock in wait() <0x00007ed90d1b2c40> (a
> org.apache.mina.core.polling.AbstractPollingIoConnector$ConnectionRequest)
>         at
>
> org.apache.mina.core.future.DefaultIoFuture.awaitUninterruptibly(DefaultIoFuture.java:148)
>         at
>
> org.apache.mina.core.future.DefaultConnectFuture.awaitUninterruptibly(DefaultConnectFuture.java:149)
>         at
>
> com.netscout.nsaapp.geo.g10Plugin.g10.service.G10CaptureService.startRecordCapture(G10CaptureService.java:622)
>         at
>
> com.netscout.nsaapp.geo.g10Plugin.geoblade.service.GeoBladeCaptureService.startRecordCapture(GeoBladeCaptureService.java:67)
>         at
>
> com.netscout.nsaapp.geo.g10Plugin.g10.processor.G10PluginCaptureProcessor.processGatewaySrQueryResponseSuccess(G10PluginCaptureProcessor.java:2156)
>         at
>
> com.netscout.nsaapp.geo.minaG10Proto.server.G10MinaClient.doHandleGatewaySrQueryResponse(G10MinaClient.java:283)
>         at
>
> com.netscout.nsaapp.geo.minaG10Proto.server.G10MinaClient.handleGatewaySrQueryResponse(G10MinaClient.java:268)
>         at jdk.internal.reflect.GeneratedMethodAccessor201.invoke(Unknown
> Source)
>         at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(
> java.base@11.0.14.1/DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(
> java.base@11.0.14.1/Method.java:566)
>         at
>
> org.apache.mina.statemachine.transition.MethodTransition.invokeMethod(MethodTransition.java:281)
>         at
>
> org.apache.mina.statemachine.transition.MethodTransition.doExecute(MethodTransition.java:232)
>         at
>
> org.apache.mina.statemachine.transition.AbstractTransition.execute(AbstractTransition.java:100)
>         at
> org.apache.mina.statemachine.StateMachine.handle(StateMachine.java:183)
>         at
> org.apache.mina.statemachine.StateMachine.handle(StateMachine.java:273)
>         at
>
> org.apache.mina.statemachine.StateMachine.processEvents(StateMachine.java:170)
>         at
> org.apache.mina.statemachine.StateMachine.handle(StateMachine.java:158)
>         - locked <0x00007ed92a951cd8> (a
> com.netscout.nsaapp.geo.minaG10Proto.server.G10StateContext)
>         at
>
> org.apache.mina.statemachine.StateMachineProxyBuilder$MethodInvocationHandler.invoke(StateMachineProxyBuilder.java:261)
>         at com.sun.proxy.$Proxy85.messageReceived(Unknown Source)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>         at
>
> org.apache.mina.filter.keepalive.KeepAliveFilter.messageReceived(KeepAliveFilter.java:414)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>         at
>
> com.netscout.nsaapp.geo.minaG10Proto.server.G10GPBMessageIoFilter.messageReceived(G10GPBMessageIoFilter.java:100)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>         at
> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106)
>         at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89)
>         at
>
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:763)
>         at
>
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:755)
> at
>
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:695)
>         at java.lang.Thread.run(java.base@11.0.14.1/Thread.java:829)
>
>
> "pool-116-thread-8" #458 prio=5 os_prio=0 cpu=172.16ms elapsed=529.47s
> tid=0x00007ed6c800e000 nid=0x124b in Object.wait()  [0x00007ed6d9cda000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(java.base@11.0.14.1/Native Method)
>         - waiting on <no object reference available>
>         at
>
> org.apache.mina.core.future.DefaultIoFuture.await0(DefaultIoFuture.java:218)
>         - waiting to re-lock in wait() <0x00007ee3a971c170> (a
> org.apache.mina.core.polling.AbstractPollingIoConnector$ConnectionRequest)
>         at
>
> org.apache.mina.core.future.DefaultIoFuture.awaitUninterruptibly(DefaultIoFuture.java:148)
>         at
>
> org.apache.mina.core.future.DefaultConnectFuture.awaitUninterruptibly(DefaultConnectFuture.java:149)
>         at
>
> com.netscout.nsaapp.geo.g10Plugin.g10.service.G10CaptureService.startRecordCapture(G10CaptureService.java:622)
>         at
>
> com.netscout.nsaapp.geo.g10Plugin.geoblade.service.GeoBladeCaptureService.startRecordCapture(GeoBladeCaptureService.java:67)
>         at
>
> com.netscout.nsaapp.geo.g10Plugin.g10.processor.G10PluginCaptureProcessor.processGatewaySrQueryResponseSuccess(G10PluginCaptureProcessor.java:2156)
>         at
>
> com.netscout.nsaapp.geo.minaG10Proto.server.G10MinaClient.doHandleGatewaySrQueryResponse(G10MinaClient.java:283)
>         at
>
> com.netscout.nsaapp.geo.minaG10Proto.server.G10MinaClient.handleGatewaySrQueryResponse(G10MinaClient.java:268)
>         at jdk.internal.reflect.GeneratedMethodAccessor281.invoke(Unknown
> Source)
>         at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(
> java.base@11.0.14.1/DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(
> java.base@11.0.14.1/Method.java:566)
>         at
>
> org.apache.mina.statemachine.transition.MethodTransition.invokeMethod(MethodTransition.java:281)
>         at
>
> org.apache.mina.statemachine.transition.MethodTransition.doExecute(MethodTransition.java:232)
>         at
>
> org.apache.mina.statemachine.transition.AbstractTransition.execute(AbstractTransition.java:100)
>         at
> org.apache.mina.statemachine.StateMachine.handle(StateMachine.java:183)
>         at
> org.apache.mina.statemachine.StateMachine.handle(StateMachine.java:273)
>         at
>
> org.apache.mina.statemachine.StateMachine.processEvents(StateMachine.java:170)
>         at
> org.apache.mina.statemachine.StateMachine.handle(StateMachine.java:158)
>         - locked <0x00007ee3aaed5d58> (a
> com.netscout.nsaapp.geo.minaG10Proto.server.G10StateContext)
>         at
>
> org.apache.mina.statemachine.StateMachineProxyBuilder$MethodInvocationHandler.invoke(StateMachineProxyBuilder.java:261)
>         at com.sun.proxy.$Proxy85.messageReceived(Unknown Source)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>         at
>
> org.apache.mina.filter.keepalive.KeepAliveFilter.messageReceived(KeepAliveFilter.java:414)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>         at
>
> com.netscout.nsaapp.geo.minaG10Proto.server.G10GPBMessageIoFilter.messageReceived(G10GPBMessageIoFilter.java:100)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>         at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>         at
> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106)
>         at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89)
>         at
>
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:763)
>
> *This code is working fine with 2.0.21.*
>
> *Here is the code snippet.*
>
>  private static final ExecutorFilter executorFilter = *new
> ExecutorFilter(16,32);*
>
>     StateMachine stateMachine =
> StateMachineFactory.getInstance(IoHandlerTransition.class).create(
>                 G10MinaClient.CONNECTED, new G10MinaClient(processor));
>
>         IoHandler ioHandler = new
> StateMachineProxyBuilder().setStateContextLookup(
>                 new IoSessionStateContextLookup(new StateContextFactory() {
>                     @Override
>                     public StateContext create() {
>                         final G10StateContext stateContext = new
> G10StateContext();
>                         stateContext.setStartedTime(new Date());
>                         return stateContext;
>                     }
>                 })).create(IoHandler.class, stateMachine);
>
> NioSocketConnector connector = new NioSocketConnector();
>         connector.getFilterChain().addLast("LoggingFilter",
> G10CaptureService.loggingFilter);
>         connector.getFilterChain().addLast("codecFilter",
> G10CaptureService.probeCodecFilter);
>         connector.getFilterChain().addLast("executorFilter",
> G10CaptureService.executorFilter);
>         connector.getFilterChain().addLast("gpbMessageFilter",
> G10CaptureService.gpbMessageFilter);
>         connector.getFilterChain().addLast("keepAliveFilter",
> G10CaptureService.keepAliveFilter);
>         connector.setHandler(ioHandler);
>  connectionLock.lock(); // connectionLock is private variable.
> try{
> ConnectFuture primaryConnectFuture = connector.connect(primaryAddress,
> initializer);
> primaryConnectFuture.awaitUninterruptibly(); // no timeout specified.
>
> if (!primaryConnectFuture.isConnected())
> {
>
>                     if (handleIOException(searchExpression,
> captureHandler)) {
>                         return;
>                     }
>                     LOG.info("{} Apache mina connection setup time out
> happend.",
>                     handleConnectionFailed(primaryAddress, captureHandler,
> "Primary IP connection timeout");
>                     return;
> }
> }
> finally
> {
> connectionLock.unLock();
> }
>
> ------------------------------------------
> M.V.S.Kishore
> 91-9886412814
>

Reply via email to