Slave db is still in replication slave mode after failover if there was 
replication load before failover.
---------------------------------------------------------------------------------------------------------

                 Key: DERBY-3463
                 URL: https://issues.apache.org/jira/browse/DERBY-3463
             Project: Derby
          Issue Type: Bug
          Components: Replication
         Environment: Trunk, svn r630806
            Reporter: Ole Solberg
             Fix For: 10.4.0.0


Slave db is still in replication slave mode after failover if there was 
replication load before failover.
I.e. connect to slave after failover is refused. Case A) below.
(Connect to master after failover is OK.)

If however there is no replication load on master db before failover connection 
to slave succeeds,
but connection to master fails(hang).


Trunk svn r630806

A) Replication load.
-------------------

Master and slave servers started.
Master: create master db.
Master: freeze db
Copy master db to slave.
Master: unfreeze db.

Slave:
jdbc:derby://localhost:4527//home/os136789/Replication/testing/db_slave/wombat;startSlave=true;slaveHost=localhost;slavePort=6666

Master:
jdbc:derby://localhost:1527//home/os136789/Replication/testing/db_master/wombat;startMaster=true;slaveHost=localhost;slavePort=6666

Slave:
SQLException: -1 XRE08 DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE08, SQLERRMC: 
Replication slave mode started successfully for database 
'/home/os136789/Replication/testing/db_slave/wombat'. Connection refused 
because the database is in replication slave mode.

Running tests against master.


Master:
jdbc:derby://localhost:1527//home/os136789/Replication/testing/db_master/wombat;failover=true
SQLException: -1 XRE20 DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE20, SQLERRMC: 
Failover performed successfully for database 
'/home/os136789/Replication/testing/db_master/wombat', the database has been 
shutdown.


Slave:
/usr/local/java/jdk1.6/jre/lib/../bin/java 
-Dij.driver=org.apache.derby.jdbc.ClientDriver 
-Dij.connection.slave=jdbc:derby://localhost:4527//home/os136789/Replication/testing/db_slave/wombat
 -classpath 
/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbyclient.jar:/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbytools.jar
 org.apache.derby.tools.ij 
/home/os136789/Replication/testing/verify_ReplicationTestRun.sql

ERROR 08004: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08004, SQLERRMC: 
Connection refused to database 
'/home/os136789/Replication/testing/db_slave/wombat' because it is in 
replication slave mode.


Master:
/usr/local/java/jdk1.6/jre/lib/../bin/java 
-Dij.driver=org.apache.derby.jdbc.ClientDriver 
-Dij.connection.master=jdbc:derby://localhost:1527//home/os136789/Replication/testing/db_master/wombat
 -classpath 
/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbyclient.jar:/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbytools.jar
 org.apache.derby.tools.ij 
/home/os136789/Replication/testing/verify_ReplicationTestRun.sql
(Connection OK)



Test run logfile.out plus derby.log from master and slave:
Attachement: replicationLoad.tar 

>From slave derby.log:
ERROR XSLA7: Cannot redo operation null in the log.
        at 
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:300)
        at 
org.apache.derby.impl.store.raw.log.FileLogger.redo(FileLogger.java:1525)
        at 
org.apache.derby.impl.store.raw.log.LogToFile.recover(LogToFile.java:920)
        at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java:334)
        at 
org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1999)
        at 
org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
        at 
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:553)
        at 
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:419)
        at 
org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java:1019)
        at 
org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1999)
        at 
org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
        at 
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:553)
        at 
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:419)
        at 
org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java:793)
        at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java:205)
        at 
org.apache.derby.impl.db.SlaveDatabase.bootBasicDatabase(SlaveDatabase.java:425)
        at 
org.apache.derby.impl.db.SlaveDatabase.access$000(SlaveDatabase.java:70)
        at 
org.apache.derby.impl.db.SlaveDatabase$SlaveDatabaseBootThread.run(SlaveDatabase.java:312)
        at java.lang.Thread.run(Thread.java:619)
Caused by: ERROR XSDFI: Error encountered while trying to write data to disk 
during database recovery.  Check that the database disk is not full. If it is 
then delete unnecessary files, and retry connecting to the database.  It is 
also possible that the file system is read only, or the disk has failed, or 
some other problem with the media.  System encountered error while processing 
page Page(2,Container(0, 336)).




B) No replication load.
-------------------

Master and slave servers started.
Master: create master db.
Master: freeze db
Copy master db to slave.
Master: unfreeze db.

Slave:
jdbc:derby://localhost:4527//home/os136789/Replication/testing/db_slave/wombat;startSlave=true;slaveHost=localhost;slavePort=6666

Master:
jdbc:derby://localhost:1527//home/os136789/Replication/testing/db_master/wombat;startMaster=true;slaveHost=localhost;slavePort=6666

Slave:
SQLException: -1 XRE08 DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE08, SQLERRMC: 
Replication slave mode started successfully for database 
'/home/os136789/Replication/testing/db_slave/wombat'. Connection refused 
because the database is in replication slave mode.


NOT Running tests against master.


Master: 
jdbc:derby://localhost:1527//home/os136789/Replication/testing/db_master/wombat;failover=true
failOver_direct Got SQLException: -1 XRE20 DERBY SQL error: SQLCODE: -1, 
SQLSTATE: XRE20, SQLERRMC: Failover performed successfully for database 
'/home/os136789/Replication/testing/db_master/wombat', the database has been 
shutdown.


Slave:
/usr/local/java/jdk1.6/jre/lib/../bin/java 
-Dij.driver=org.apache.derby.jdbc.ClientDriver 
-Dij.connection.slave=jdbc:derby://localhost:4527//home/os136789/Replication/testing/db_slave/wombat
 -classpath 
/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbyclient.jar:/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbytools.jar
 org.apache.derby.tools.ij 
/home/os136789/Replication/testing/verify_ReplicationTestRun.sql
(Connection OK)

Master:
/usr/local/java/jdk1.6/jre/lib/../bin/java 
-Dij.driver=org.apache.derby.jdbc.ClientDriver 
-Dij.connection.master=jdbc:derby://localhost:1527//home/os136789/Replication/testing/db_master/wombat
 -classpath 
/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbyclient.jar:/home/os136789/Apache/myDerbySandbox/trunk/jars/insane/derbytools.jar
 org.apache.derby.tools.ij 
/home/os136789/Replication/testing/verify_ReplicationTestRun.sql

Failure: Hangs! (On 'show schemas;') 



Test run logfile.out plus derby.log from master and slave:
Attachement: NOreplicationLoad.tar 





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

Reply via email to