You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2014/08/26 10:51:57 UTC

[jira] [Commented] (DERBY-6714) RuntimeInfoTest failed with insufficient data from server

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

Knut Anders Hatlen commented on DERBY-6714:
-------------------------------------------

It looks like the NPE on the server happens because the session is being closed while the runtime info is retrieved from it, and stmtTable unexpectedly becomes null. I guess the changes in DERBY-6701 made this more likely to happen, since the test now doesn't sleep before calling getRuntimeInfo() the first time. It should be fixed by making the server more robust against this race condition, though, and not by reintroducing the call to sleep() in the test.

> RuntimeInfoTest failed with insufficient data from server
> ---------------------------------------------------------
>
>                 Key: DERBY-6714
>                 URL: https://issues.apache.org/jira/browse/DERBY-6714
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Server
>    Affects Versions: 10.12.0.0
>            Reporter: Knut Anders Hatlen
>         Attachments: derby.log
>
>
> Seen in the nightly testing of trunk.
> http://download.java.net/javadesktop/derby/request_5595117/javadb-task-3919785.html
> {noformat}
> java.lang.Exception: DRDA_InvalidReplyTooShort.S:Ungültige Antwort von Network Server: Daten nicht ausreichend.
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessageWork(NetworkServerControlImpl.java:3357)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessage(NetworkServerControlImpl.java:1988)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.fillReplyBuffer(NetworkServerControlImpl.java:2957)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.readStringReply(NetworkServerControlImpl.java:3010)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.runtimeInfo(NetworkServerControlImpl.java:1443)
> 	at org.apache.derby.drda.NetworkServerControl.getRuntimeInfo(NetworkServerControl.java:516)
> 	at org.apache.derbyTesting.functionTests.tests.derbynet.RuntimeInfoTest.x_testRuntimeInfoAfterConnClose(RuntimeInfoTest.java:193)
> 	at org.apache.derbyTesting.functionTests.tests.derbynet.RuntimeInfoTest.testRunTests(RuntimeInfoTest.java:97)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:119)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:440)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:457)
> 	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)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:58)
> 	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)
> 	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)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:58)
> 	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)
> 	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)
> 	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)
> {noformat}
> [^derby.log] showed that there was a NullPointerException while building the runtimeinfo string:
> {noformat}
> java.lang.NullPointerException
> 	at org.apache.derby.impl.drda.Database.buildRuntimeInfo(Database.java:417)
> 	at org.apache.derby.impl.drda.Session.buildRuntimeInfo(Session.java:291)
> 	at org.apache.derby.impl.drda.DRDAConnThread.buildRuntimeInfo(DRDAConnThread.java:9186)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.buildRuntimeInfo(NetworkServerControlImpl.java:4069)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.getRuntimeInfo(NetworkServerControlImpl.java:2229)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.sendRuntimeInfo(NetworkServerControlImpl.java:2157)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.processCommands(NetworkServerControlImpl.java:1804)
> 	at org.apache.derby.impl.drda.DRDAConnThread.sessionInitialState(DRDAConnThread.java:665)
> 	at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:284)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)