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

Jørgen Løland commented on DERBY-3463:
--------------------------------------

Hi Ole,

I tried to reproduce the first problem (slave still in slave mode after 
failover), but running a simple test client (insert/update/delete) works fine 
without reproducing the bug. The last line of the reported exception looks 
interesting: 

"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)). "

Can you verify that the disk is not full and is working, e.g. by rerunning the 
test on another machine or disk? 

If the disk is not the problem: 
I thought all operation types were working with replication, but this may not 
be right. Hence, it could be the case that your workload contains an operation 
that is not handled correctly. Can you provide some more information on the 
workload (or even better - check if there are any specific operations that 
causes the problem)?

> 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
>            Assignee: Jørgen Løland
>             Fix For: 10.4.0.0
>
>         Attachments: NOreplicationLoad.tar, replicationLoad.tar
>
>
> 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