[ 
https://issues.apache.org/jira/browse/DERBY-5194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Knut Anders Hatlen updated DERBY-5194:
--------------------------------------

    Attachment: sleep-repro.diff

Sleeping for half a second before closing the server socket during network 
server shutdown (see the attached sleep-repro.diff) makes the test fail 
consistently in my environment when run via JDBCDriversEmbeddedTest.

logs/serverConsoleOutput.log shows that the server fails to start with the 
following error: java.net.BindException: Address already in use

I think the problem is that the network server shutdown only waits until ping 
starts failing, and that since DERBY-3869 ping can start failing before the 
server socket has been closed. The shutdown command therefore returns while the 
server socket is still up, and the test continues and attempts to create a new 
server while the port is still in use.

> AutoloadTest timed out waiting for network server to start
> ----------------------------------------------------------
>
>                 Key: DERBY-5194
>                 URL: https://issues.apache.org/jira/browse/DERBY-5194
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.8.1.1
>            Reporter: Knut Anders Hatlen
>         Attachments: sleep-repro.diff
>
>
> Seen when testing the 10.8.1.1 release candidate on Windows Vista:
> http://dbtg.foundry.sun.com/derby/test/10.8.1.1_RC/logs/jvm1.6/vista/JDBCDriversEmbedded/report.txt
> 1) AutoloadTest: clientjunit.framework.AssertionFailedError: Timed out 
> waiting for network server to start
>       at 
> org.apache.derbyTesting.junit.NetworkServerTestSetup.setUp(NetworkServerTestSetup.java:205)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:20)
>       at junit.extensions.TestSetup.run(TestSetup.java:25)
>       at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>       at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>       at junit.extensions.TestSetup.run(TestSetup.java:25)
> The following exception was printed to the console while the test was running:
> java.lang.Exception: DRDA_InvalidReplyTooShort.S:Invalid reply from network 
> server: Insufficient data.
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessageWork(Unknown
>  Source)
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessage(Unknown
>  Source)
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.fillReplyBuffer(Unknown 
> Source)
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.readResult(Unknown Source)
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.pingWithNoOpen(Unknown 
> Source)
>       at org.apache.derby.impl.drda.NetworkServerControlImpl.ping(Unknown 
> Source)
>       at org.apache.derby.drda.NetworkServerControl.ping(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.NetworkServerTestSetup.pingForServerUp(NetworkServerTestSetup.java:567)
>       at 
> org.apache.derbyTesting.junit.NetworkServerTestSetup.pingForServerStart(NetworkServerTestSetup.java:636)
>       at 
> org.apache.derbyTesting.junit.NetworkServerTestSetup.setUp(NetworkServerTestSetup.java:196)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:20)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.extensions.TestSetup.run(TestSetup.java:25)
>       at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>       at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.extensions.TestSetup.run(TestSetup.java:25)
>       at junit.framework.TestSuite.runTest(TestSuite.java:230)
>       at junit.framework.TestSuite.run(TestSuite.java:225)
>       at junit.framework.TestSuite.runTest(TestSuite.java:230)
>       at junit.framework.TestSuite.run(TestSuite.java:225)
>       at junit.textui.TestRunner.doRun(TestRunner.java:121)
>       at junit.textui.TestRunner.start(TestRunner.java:185)
>       at junit.textui.TestRunner.main(TestRunner.java:143)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to