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

Jason Huynh commented on GEODE-338:
-----------------------------------

Some more information about why this test was disabled for now.

We are planning to add a new unit test that actually targets what we were 
attempting to test originally.  That is the actual pooling and reuse of 
selectors and the clean up of the pooled selectors.

The problem about the now disabled test was that it was relying on retrieving 
file descriptor(fd) counts and comparing the old socket connection code with 
the new connection code with this count.  The thought being that the new 
connection code would use less file descriptors over time.  However there are 
other factors that affect fd counts.  The first could be that the garbage 
collector may kick in and clean out some fds before we do our first 
measurement.  Another is that Geode may create fds in other areas of the 
product that although should be the same amount for old/new connection methods, 
may behave differently based on the threading of the test.  Another issue may 
be that the jvm version may have already addressed the original fd leak issue 
that we were trying to fix.



> FDDUnitTest. testFDSocketFixOnlyServers
> ---------------------------------------
>
>                 Key: GEODE-338
>                 URL: https://issues.apache.org/jira/browse/GEODE-338
>             Project: Geode
>          Issue Type: Bug
>          Components: tests
>            Reporter: Jason Huynh
>            Assignee: Jason Huynh
>              Labels: CI
>
> The following error occurred while running this test:
> junit.framework.AssertionFailedError
>       at junit.framework.Assert.fail(Assert.java:55)
>       at junit.framework.Assert.assertTrue(Assert.java:22)
>       at junit.framework.Assert.assertTrue(Assert.java:31)
>       at junit.framework.TestCase.assertTrue(TestCase.java:201)
>       at 
> com.gemstone.gemfire.internal.FDDUnitTest.testFDSocketFixOnlyServers(FDDUnitTest.java:109)
>       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:86)
>       at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:49)
>       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.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
>       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)
> There may be a better way to get FD counts or at least  more consistent way...



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

Reply via email to