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

Gordon Sim commented on PROTON-214:
-----------------------------------

I actually think there is a race in the test logic, where the server can see 
the running flag has been turned off and stops before the client actually 
manages to establish a connection. In the testSendBogus() test the window for 
this race is somewhat larger than other tests as the test itself does not 
establish the connection to the server (that is done on teardown in response to 
sending the trigger message).

That said, this does also raise the question of how failure to connect should 
be signalled. Should send() throw an exception in this case rather than timing 
out?
                
> Test "proton_tests.messenger.MessengerTest.testSendBogus" failed
> ----------------------------------------------------------------
>
>                 Key: PROTON-214
>                 URL: https://issues.apache.org/jira/browse/PROTON-214
>             Project: Qpid Proton
>          Issue Type: Bug
>    Affects Versions: 0.3
>         Environment: Run "mvn test" from a clean checkout - this uses 
> proton-j by default.
>            Reporter: Philip Harvey
>            Assignee: Gordon Sim
>
> The system test "proton_tests.messenger.MessengerTest.testSendBogus" is 
> failing on my computer when run against proton-j.  I think I've seen this 
> test pass occasionally so I suspect there's something unreliable about the 
> test.
> Here is the output.
> proton_tests.messenger.MessengerTest.testSendBogus ......................Feb 
> 4, 2013 2:07:19 PM org.apache.qpid.proton.messenger.impl.MessengerImpl 
> processActive
> SEVERE: Error processing connection
> java.io.IOException: Connection reset by peer
>       at sun.nio.ch.FileDispatcher.read0(Native Method)
>       at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
>       at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
>       at sun.nio.ch.IOUtil.read(IOUtil.java:206)
>       at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:236)
>       at 
> org.apache.qpid.proton.driver.impl.ConnectorImpl.read(ConnectorImpl.java:95)
>       at 
> org.apache.qpid.proton.driver.impl.ConnectorImpl.process(ConnectorImpl.java:80)
>       at 
> org.apache.qpid.proton.messenger.impl.MessengerImpl.processActive(MessengerImpl.java:426)
>       at 
> org.apache.qpid.proton.messenger.impl.MessengerImpl.waitUntil(MessengerImpl.java:525)
>       at 
> org.apache.qpid.proton.messenger.impl.MessengerImpl.waitUntil(MessengerImpl.java:506)
>       at 
> org.apache.qpid.proton.messenger.impl.MessengerImpl.send(MessengerImpl.java:205)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186)
>       at 
> org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204)
>       at org.python.core.PyObject.__call__(PyObject.java:387)
>       at org.python.core.PyObject.__call__(PyObject.java:391)
>       at org.python.core.PyMethod.__call__(PyMethod.java:109)
>       at proton$py.send$201(__pyclasspath__/proton.py:997)
>       at proton$py.call_function(__pyclasspath__/proton.py)
>       at org.python.core.PyTableCode.call(PyTableCode.java:165)
>       at org.python.core.PyBaseCode.call(PyBaseCode.java:134)
>       at org.python.core.PyFunction.__call__(PyFunction.java:317)
>       at org.python.core.PyMethod.__call__(PyMethod.java:109)
>       at 
> proton_tests.messenger$py.teardown$4(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton_tests/messenger.py:52)
>       at 
> proton_tests.messenger$py.call_function(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton_tests/messenger.py)
>       at org.python.core.PyTableCode.call(PyTableCode.java:165)
>       at org.python.core.PyBaseCode.call(PyBaseCode.java:134)
>       at org.python.core.PyFunction.__call__(PyFunction.java:317)
>       at org.python.core.PyMethod.__call__(PyMethod.java:109)
>       at 
> org.python.pycode._pyx1.run$36(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test:344)
>       at 
> org.python.pycode._pyx1.call_function(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test)
>       at org.python.core.PyTableCode.call(PyTableCode.java:165)
>       at org.python.core.PyBaseCode.call(PyBaseCode.java:166)
>       at org.python.core.PyFunction.__call__(PyFunction.java:338)
>       at org.python.core.PyMethod.__call__(PyMethod.java:139)
>       at 
> org.python.pycode._pyx1._run$55(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test:484)
>       at 
> org.python.pycode._pyx1.call_function(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test)
>       at org.python.core.PyTableCode.call(PyTableCode.java:165)
>       at org.python.core.PyBaseCode.call(PyBaseCode.java:134)
>       at org.python.core.PyFunction.__call__(PyFunction.java:317)
>       at org.python.core.PyMethod.__call__(PyMethod.java:109)
>       at 
> org.python.pycode._pyx1.run_test$41(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test:412)
>       at 
> org.python.pycode._pyx1.call_function(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test)
>       at org.python.core.PyTableCode.call(PyTableCode.java:165)
>       at org.python.core.PyBaseCode.call(PyBaseCode.java:166)
>       at org.python.core.PyFunction.__call__(PyFunction.java:338)
>       at 
> org.python.pycode._pyx1.run$54(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test:460)
>       at 
> org.python.pycode._pyx1.call_function(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test)
>       at org.python.core.PyTableCode.call(PyTableCode.java:165)
>       at org.python.core.PyBaseCode.call(PyBaseCode.java:134)
>       at org.python.core.PyFunction.__call__(PyFunction.java:317)
>       at org.python.core.PyMethod.__call__(PyMethod.java:109)
>       at 
> org.python.pycode._pyx1.f$0(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test:650)
>       at 
> org.python.pycode._pyx1.call_function(/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test)
>       at org.python.core.PyTableCode.call(PyTableCode.java:165)
>       at org.python.core.PyCode.call(PyCode.java:18)
>       at org.python.core.Py.runCode(Py.java:1275)
>       at org.python.core.__builtin__.execfile_flags(__builtin__.java:522)
>       at 
> org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:225)
>       at org.apache.qpid.proton.JythonTest.test(JythonTest.java:70)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>       at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
>       at 
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
>       at 
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
>       at 
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
>       at 
> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
>       at 
> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
>  fail
> Error during teardown:  Traceback (most recent call last):
>     File 
> "/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton-test",
>  line 337, in run
>       phase()
>     File 
> "/fast/.jenkins/jobs/Trunk-Proton-J/workspace/proton/tests/target/classes/proton_tests/messenger.py",
>  line 48, in teardown
>       self.client.send()
>     File "__pyclasspath__/proton.py", line 997, in send
>   TimeoutException: java.util.concurrent.TimeoutException

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to