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 "Dag H. Wanvik (JIRA)" <ji...@apache.org> on 2011/08/03 21:34:26 UTC

[jira] [Commented] (DERBY-5003) NPE in ReplicationRun_Local_3_p5 when stopping slave after purposely crashing master

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

Dag H. Wanvik commented on DERBY-5003:
--------------------------------------

Saw this again, but the slave derby.log file showed an NPE earlier this time, cf this stack from the uploaded file db_slave-derby.log.2:

Replication slave role was stopped for database 'C:\cludev\jagtmp\autoderbyN_regression\suitesAll_7\log\db_slave\wombat'.
java.lang.NullPointerException
	at org.apache.derby.impl.db.BasicDatabase.stop(Unknown Source)
	at org.apache.derby.impl.db.SlaveDatabase.stop(Unknown Source)
	at org.apache.derby.impl.services.monitor.TopService.stop(Unknown Source)
	at org.apache.derby.impl.services.monitor.TopService.shutdown(Unknown Source)
	at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(Unknown Source)
	at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(Unknown Source)
	at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown Source)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown Source)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.internalStopReplicationSlave(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
	at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
	at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
	at org.apache.derby.impl.db.SlaveDatabase.handleShutdown(Unknown Source)
	at org.apache.derby.impl.db.SlaveDatabase.access$200(Unknown Source)
	at org.apache.derby.impl.db.SlaveDatabase$SlaveDatabaseBootThread.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:662)
----------------------------------------------------------------
Mon Aug 01 22:20:48 CEST 2011:
Shutting down instance 601a400f-0131-8701-514f-000002c3da64 on database directory C:\cludev\jagtmp\autoderbyN_regression\suitesAll_7\log\db_slave\wombat with class loader sun.misc.Launcher$AppClassLoader@1ea2dfe 
Mon Aug 01 22:20:48 CEST 2011 Thread[DRDAConnThread_3,5,main] Cleanup action starting
java.lang.NullPointerException
	at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
	at org.apache.derby.impl.store.raw.log.LogToFile.flushAll(Unknown Source)
        :

I am not sure the first NPE is related, though, just an observation. The variable "dd" (data dictionary) is null when stopping here, cf. BasicDatabase#stop.
But it happens as internalStopReplicationSlave shuts down the database after having verified that the slave has stopped, cf. line 1034 in EmbedConnection.

> NPE in ReplicationRun_Local_3_p5 when stopping slave after purposely crashing master
> ------------------------------------------------------------------------------------
>
>                 Key: DERBY-5003
>                 URL: https://issues.apache.org/jira/browse/DERBY-5003
>             Project: Derby
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 10.8.1.2
>            Reporter: Dag H. Wanvik
>              Labels: derby_triage10_8
>         Attachments: db_slave-derby.log
>
>
> Derby.log trace of this: (*Daily* 1066867/2011-02-03 18:00:24 MET, JVM 1.5, Vista):
> NullPointerException in LogToFile.flush on slave: 
> java.lang.NullPointerException
> 	at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
> 	at org.apache.derby.impl.store.raw.log.LogToFile.flushAll(Unknown Source)
> 	at org.apache.derby.impl.store.raw.log.LogToFile.stopReplicationSlaveRole(Unknown Source)
> 	at org.apache.derby.impl.store.replication.slave.SlaveController.stopSlave(Unknown Source)
> 	at org.apache.derby.impl.store.replication.slave.SlaveController.stopSlave(Unknown Source)
> 	at org.apache.derby.impl.db.SlaveDatabase.stopReplicationSlave(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleStopReplicationSlave(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
> 	at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Unknown Source)
> 	at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
> 	at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
> 	at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown
>         Source)
> The client side stack dump:
> [Error/failure logged at Fri Feb 04 04:46:55 CET 2011]
> java.sql.SQLException: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
> 	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
> 	at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:525)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:193)
> 	at org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun.stopSlave(ReplicationRun.java:3445)
> 	at org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun.stopSlave(ReplicationRun.java:3395)
> 	at org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_3_p5.testReplication_Local_3_p5_DERBY_3878(ReplicationRun_Local_3_p5.java:93)
> 	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:585)
> 	at junit.framework.TestCase.runTest(TestCase.java:164)
> 	at junit.framework.TestCase.runBare(TestCase.java:130)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:112)
> 	at org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun.runBare(ReplicationRun.java:207)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:120)
> 	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.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.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)
> Caused by: org.apache.derby.client.am.SqlException: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
> 	at org.apache.derby.client.am.Connection.completeSqlca(Unknown Source)
> 	at org.apache.derby.client.net.NetConnectionReply.parseRdbAccessFailed(Unknown Source)
> 	at org.apache.derby.client.net.NetConnectionReply.parseAccessRdbError(Unknown Source)
> 	at org.apache.derby.client.net.NetConnectionReply.parseACCRDBreply(Unknown Source)
> 	at org.apache.derby.client.net.NetConnectionReply.readAccessDatabase(Unknown Source)
> 	at org.apache.derby.client.net.NetConnection.readSecurityCheckAndAccessRdb(Unknown Source)
> 	at org.apache.derby.client.net.NetConnection.flowSecurityCheckAndAccessRdb(Unknown Source)
> 	at org.apache.derby.client.net.NetConnection.flowUSRIDONLconnect(Unknown Source)
> 	at org.apache.derby.client.net.NetConnection.flowConnect(Unknown Source)
> 	at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
> 	at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnection(Unknown Source)
> 	... 35 more

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