[ 
https://issues.apache.org/jira/browse/GEODE-911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15199989#comment-15199989
 ] 

Jason Huynh commented on GEODE-911:
-----------------------------------

We have threads that linger after shutting down the SerialGatewaySenderImpl.  
The stop() method sets the eventProcessor to null but when trying to retrieve 
the queues to shut down, has an if check to return null if the eventProcessor 
is null.  This leads to the queues not shutting down and the batch removal 
threads for each queue to linger.  This eventually causes the out of memory 
unable to start native thread issue.  

This probably won't be encountered by a user as it is not expected to 
continually start/shutdown gateway senders, however our tests do this quite 
often in the same jvm.

Will work on a fix and test for this issue.

> CI failure: 
> ConcurrentSerialGatewaySenderOperationsOffHeapDUnitTest.test_Bug44153_StopOneSender_StartAnotherSender_CheckQueueSize
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-911
>                 URL: https://issues.apache.org/jira/browse/GEODE-911
>             Project: Geode
>          Issue Type: Bug
>            Reporter: Sai Boorlagadda
>            Assignee: Jason Huynh
>              Labels: CI
>
> {noformat}
> Error Message
> com.gemstone.gemfire.test.dunit.RMIException: While invoking 
> com.gemstone.gemfire.internal.cache.wan.serial.SerialGatewaySenderOperationsDUnitTest$$Lambda$92/1788087112.run
>  in VM 2 running on Host buildtest.gemstone.com with 8 VMs
> Stacktrace
> com.gemstone.gemfire.test.dunit.RMIException: While invoking 
> com.gemstone.gemfire.internal.cache.wan.serial.SerialGatewaySenderOperationsDUnitTest$$Lambda$92/1788087112.run
>  in VM 2 running on Host buildtest.gemstone.com with 8 VMs
>       at com.gemstone.gemfire.test.dunit.VM.invoke(VM.java:370)
>       at com.gemstone.gemfire.test.dunit.VM.invoke(VM.java:313)
>       at com.gemstone.gemfire.test.dunit.VM.invoke(VM.java:267)
>       at 
> com.gemstone.gemfire.internal.cache.wan.serial.SerialGatewaySenderOperationsDUnitTest.test_Bug44153_StopOneSender_StartAnotherSender_CheckQueueSize(SerialGatewaySenderOperationsDUnitTest.java:434)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at junit.framework.TestCase.runTest(TestCase.java:176)
>       at junit.framework.TestCase.runBare(TestCase.java:141)
>       at junit.framework.TestResult$1.protect(TestResult.java:122)
>       at junit.framework.TestResult.runProtected(TestResult.java:142)
>       at junit.framework.TestResult.run(TestResult.java:125)
>       at junit.framework.TestCase.run(TestCase.java:129)
>       at junit.framework.TestSuite.runTest(TestSuite.java:252)
>       at junit.framework.TestSuite.run(TestSuite.java:247)
>       at 
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
>       at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:105)
>       at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:56)
>       at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:64)
>       at 
> org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:50)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at 
> org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
>       at 
> org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>       at 
> org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
>       at 
> org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
>       at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
>       at 
> org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:106)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at 
> org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
>       at 
> org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>       at 
> org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:360)
>       at 
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
>       at 
> org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: junit.framework.AssertionFailedError: Event never occurred after 
> 240000 ms: Expected region entries: 100 but actual entries: 90 present region 
> keyset [40, 95, 67, 49, 31, 96, 20, 75, 103, 89, 68, 55, 62, 34, 19, 83, 13, 
> 41, 48, 69, 33, 28, 97, 18, 25, 88, 61, 74, 56, 84, 70, 91, 81, 98, 46, 102, 
> 101, 73, 108, 53, 90, 99, 36, 26, 45, 35, 63, 72, 54, 109, 82, 100, 51, 86, 
> 44, 58, 64, 92, 16, 71, 10, 78, 43, 30, 23, 15, 38, 85, 29, 80, 107, 24, 106, 
> 65, 79, 93, 77, 14, 21, 105, 60, 94, 66, 11, 39, 50, 104, 59, 76, 87]
>       at junit.framework.Assert.fail(Assert.java:57)
>       at junit.framework.TestCase.fail(TestCase.java:227)
>       at 
> com.gemstone.gemfire.test.dunit.DistributedTestCase.waitForCriterion(DistributedTestCase.java:1135)
>       at 
> com.gemstone.gemfire.internal.cache.wan.WANTestBase.validateRegionSize(WANTestBase.java:3691)
>       at 
> com.gemstone.gemfire.internal.cache.wan.serial.SerialGatewaySenderOperationsDUnitTest.lambda$test_Bug44153_StopOneSender_StartAnotherSender_CheckQueueSize$81c80a4a$15(SerialGatewaySenderOperationsDUnitTest.java:434)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at hydra.MethExecutor.executeObject(MethExecutor.java:267)
>       at 
> com.gemstone.gemfire.test.dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:84)
>       at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
>       at sun.rmi.transport.Transport$1.run(Transport.java:200)
>       at sun.rmi.transport.Transport$1.run(Transport.java:197)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
>       at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
>       at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
>       at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$95(TCPTransport.java:683)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
>       ... 3 more
> Standard Output
> Previously run tests: [WANManagementDUnitTest, TestRemoteClusterDUnitTest, 
> ClusterConfigurationDUnitTest, UpdateVersionDUnitTest, 
> ConcurrentWANPropogation_2_DUnitTest, 
> ConcurrentParallelGatewaySenderOperation_1_DUnitTest, 
> ConcurrentSerialGatewaySenderOperationsOffHeapDUnitTest]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to