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 "Jørgen Løland (JIRA)" <ji...@apache.org> on 2008/02/04 14:11:08 UTC

[jira] Updated: (DERBY-3361) Specifying a non-existant slaveHost for startSlave seemingly succeeds in starting slave mode.

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

Jørgen Løland updated DERBY-3361:
---------------------------------

    Attachment: derby-3361-1a.diff
                derby-3361-1a.stat

The attached patch makes the startSlave connection attempt hang until slave replication mode is confirmed started or until an error occurs.

In addition, the patch adds host and port information to a derby.log message and a few exceptions for easier debugging. DERBY-3356 is also fixed by this patch.

All tests passed; the patch is ready for review.

> Specifying a non-existant slaveHost for startSlave seemingly succeeds in starting slave mode.
> ---------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3361
>                 URL: https://issues.apache.org/jira/browse/DERBY-3361
>             Project: Derby
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 10.4.0.0
>         Environment: Trunk (615841) + patch DERBY-3205/stopSlave_v1b 
>            Reporter: Ole Solberg
>            Assignee: Jørgen Løland
>         Attachments: derby-3361-1a.diff, derby-3361-1a.stat
>
>
> Specifying a non-existant slaveHost for startSlave seemingly succeeds in starting slave mode.
> -----------------------------------------------------------------------------------------------------------------------
>  CONNECT 'jdbc:derby://atum11:9999/test;startSlave=true;slaveHost=noSuchHost;slavePort=8989';
> ERROR XRE08: DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE08, SQLERRMC: Replication slave mode started successfully for database 'test'. Connection refused because the database is in replication slave mode. 
> Slave derby.log shows a NPE:
> --------------------------------------
> 2008-01-29 11:52:40.050 GMT:
>  Booting Derby version The Apache Software Foundation - Apache Derby - 10.4.0.0 alpha - (615841M): instance c013800d-0117-c563-d051-000003bf6570
> on database directory /export/home/tmp/os136789/Replication_common_Trunk/slave/test  
> Database Class Loader started - derby.database.classpath=''
> 2008-01-29 11:52:40.308 GMT:
> Shutting down instance c013800d-0117-c563-d051-000003bf6570
> ----------------------------------------------------------------
> ----------------------------------------------------------------
> 2008-01-29 11:52:40.320 GMT:
>  Booting Derby version The Apache Software Foundation - Apache Derby - 10.4.0.0 alpha - (615841M): instance a816c00e-0117-c563-d051-000003bf6570
> on database directory /export/home/tmp/os136789/Replication_common_Trunk/slave/test  
> 2008-01-29 11:52:40.814 GMT Thread[DRDAConnThread_2,5,main] Cleanup action starting
> ERROR XRE08: Replication slave mode started successfully for database 'test'. Connection refused because the database is in replication slave mode. 
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:423)
> 	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:73)
> 	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(EmbedConnection40.java:54)
> 	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68)
> 	at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:211)
> 	at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
> 	at org.apache.derby.impl.drda.Database.makeConnection(Database.java:234)
> 	at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1346)
> 	at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1296)
> 	at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3033)
> 	at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1090)
> 	at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:932)
> 	at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:277)
> Cleanup action completed
> 2008-01-29 11:52:40.816 GMT Thread[DRDAConnThread_2,5,main] Cleanup action starting
> ERROR XRE08: Replication slave mode started successfully for database 'test'. Connection refused because the database is in replication slave mode. 
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:423)
> 	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:73)
> 	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(EmbedConnection40.java:54)
> 	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68)
> 	at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:211)
> 	at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
> 	at org.apache.derby.impl.drda.Database.makeConnection(Database.java:234)
> 	at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1346)
> 	at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1296)
> 	at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3033)
> 	at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1090)
> 	at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:932)
> 	at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:277)
> Cleanup action completed
> 2008-01-29 11:52:40.816 GMT Thread[DRDAConnThread_2,5,main] (DATABASE = test), (DRDAID = {1}), Replication slave mode started successfully for database 'test'. Connection refused because the database is in replication slave mode. 
> New exception raised during cleanup null
> java.lang.NullPointerException
> 	at org.apache.derby.impl.services.replication.slave.SlaveController.stopSlave(SlaveController.java:259)
> 	at org.apache.derby.impl.services.replication.slave.SlaveController.stopSlave(SlaveController.java:287)
> 	at org.apache.derby.impl.db.SlaveDatabase.stop(SlaveDatabase.java:149)
> 	at org.apache.derby.impl.services.monitor.TopService.stop(TopService.java:405)
> 	at org.apache.derby.impl.services.monitor.TopService.shutdown(TopService.java:349)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(BaseMonitor.java:235)
> 	at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(DatabaseContextImpl.java:60)
> 	at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(ContextManager.java:330)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(TransactionResourceImpl.java:419)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:337)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1859)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleStopReplicationSlave(EmbedConnection.java:747)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:296)
> 	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:73)
> 	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(EmbedConnection40.java:54)
> 	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68)
> 	at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:211)
> 	at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
> 	at org.apache.derby.impl.db.SlaveDatabase.handleShutdown(SlaveDatabase.java:317)
> 	at org.apache.derby.impl.db.SlaveDatabase.access$200(SlaveDatabase.java:73)
> 	at org.apache.derby.impl.db.SlaveDatabase$SlaveDatabaseBootThread.run(SlaveDatabase.java:293)
> 	at java.lang.Thread.run(Thread.java:619)
> Cleanup action completed

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.