Derby
  1. Derby
  2. DERBY-3719

'...replication.buffer.LogBufferFullException' causes failover to fail w/ 'XRE07, SQLERRMC: Could not perform operation because the database is not in replication master mode.'

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 10.4.2.0, 10.5.1.1
    • Fix Version/s: 10.5.2.0, 10.6.1.0
    • Component/s: Replication
    • Labels:
      None
    • Environment:

      Description

      With the patch for DERBY-3709, derby-3709_p1-v2.diff.txt, I was able to provoke this error twice in 30 test runs on this platform (On another platform I saw none in 100 test runs.)

      I will upload the full test run log dir.

      "Summary":

      1) testReplication_Local_StateTest_part2(org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_StateTest_part2)junit.framework.ComparisonFailure: Unexpected SQL state. expected:<XRE[20]> but was:<XRE[07]>

      Master derby.log:
      -----------------------------------------
      ---- BEGIN REPLICATION ERROR MESSAGE (6/10/08 4:08 PM) ----
      Exception occurred during log shipping.
      org.apache.derby.impl.store.replication.buffer.LogBufferFullException
      at org.apache.derby.impl.store.replication.buffer.ReplicationLogBuffer.switchDirtyBuffer(ReplicationLogBuffer.java:357)
      at org.apache.derby.impl.store.replication.buffer.ReplicationLogBuffer.appendLog(ReplicationLogBuffer.java:146)
      at org.apache.derby.impl.store.replication.master.MasterController.appendLog(MasterController.java:428)
      at org.apache.derby.impl.store.raw.log.LogAccessFile.writeToLog(LogAccessFile.java:787)
      at org.apache.derby.impl.store.raw.log.LogAccessFile.flushDirtyBuffers(LogAccessFile.java:534)
      at org.apache.derby.impl.store.raw.log.LogAccessFile.flushLogAccessFile(LogAccessFile.java:574)
      at org.apache.derby.impl.store.raw.log.LogAccessFile.writeLogRecord(LogAccessFile.java:332)
      at org.apache.derby.impl.store.raw.log.LogToFile.appendLogRecord(LogToFile.java:3759)
      at org.apache.derby.impl.store.raw.log.FileLogger.logAndDo(FileLogger.java:370)
      at org.apache.derby.impl.store.raw.xact.Xact.logAndDo(Xact.java:1193)
      at org.apache.derby.impl.store.raw.data.LoggableActions.doAction(LoggableActions.java:221)
      at org.apache.derby.impl.store.raw.data.LoggableActions.actionUpdate(LoggableActions.java:85)
      at org.apache.derby.impl.store.raw.data.StoredPage.doUpdateAtSlot(StoredPage.java:8463)
      at org.apache.derby.impl.store.raw.data.StoredPage.updateOverflowDetails(StoredPage.java:8336)
      at org.apache.derby.impl.store.raw.data.StoredPage.updateOverflowDetails(StoredPage.java:8319)
      at org.apache.derby.impl.store.raw.data.BasePage.insertAllowOverflow(BasePage.java:808)
      at org.apache.derby.impl.store.raw.data.BasePage.insert(BasePage.java:653)
      at org.apache.derby.impl.store.access.heap.HeapController.doInsert(HeapController.java:307)
      at org.apache.derby.impl.store.access.heap.HeapController.insert(HeapController.java:575)
      at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChangerImpl.java:457)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1011)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:487)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:384)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1235)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1652)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java:1307)
      at org.apache.derby.impl.drda.DRDAStatement.execute(DRDAStatement.java:672)
      at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(DRDAConnThread.java:4197)
      at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java:4001)
      at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:991)
      at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:278)

      -------------------- END REPLICATION ERROR MESSAGE ---------------------

      Slave derby.log:
      -------------------------------------------------------------------------------------------
      2008-06-10 14:05:56.408 GMT Thread[DRDAConnThread_3,5,main] (DATABASE = /export/home/tmp/os136789/testingInMyDerbySandbox/12/db_slave/wombat), (DRDAID =

      {2}

      ), Replication slave mode started successfully for database '/export/home/tmp/os136789/testingInMyDerbySandbox/12/db_slave/wombat'. Connection refused because the database is in replication slave mode.
      Replication slave role was stopped for database '/export/home/tmp/os136789/testingInMyDerbySandbox/12/db_slave/wombat'.

      ------------ BEGIN SHUTDOWN ERROR STACK -------------

      ERROR XSLA7: Cannot redo operation null in the log.
      at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:296)
      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:427)
      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:427)
      at org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java:780)
      at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java:196)
      at org.apache.derby.impl.db.SlaveDatabase.bootBasicDatabase(SlaveDatabase.java:424)
      at org.apache.derby.impl.db.SlaveDatabase.access$000(SlaveDatabase.java:70)
      at org.apache.derby.impl.db.SlaveDatabase$SlaveDatabaseBootThread.run(SlaveDatabase.java:311)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: ERROR 08006: Database '

      {0}' shutdown.
      at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:276)
      at org.apache.derby.impl.store.raw.log.LogToFile.stopReplicationSlaveRole(LogToFile.java:5142)
      at org.apache.derby.impl.store.replication.slave.SlaveController.stopSlave(SlaveController.java:266)
      at org.apache.derby.impl.store.replication.slave.SlaveController.access$500(SlaveController.java:64)
      at org.apache.derby.impl.store.replication.slave.SlaveController$SlaveLogReceiverThread.run(SlaveController.java:531)
      ============= begin nested exception, level (1) ===========
      ERROR 08006: Database '{0}

      ' shutdown.
      at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:276)
      at org.apache.derby.impl.store.raw.log.LogToFile.stopReplicationSlaveRole(LogToFile.java:5142)
      at org.apache.derby.impl.store.replication.slave.SlaveController.stopSlave(SlaveController.java:266)
      at org.apache.derby.impl.store.replication.slave.SlaveController.access$500(SlaveController.java:64)
      at org.apache.derby.impl.store.replication.slave.SlaveController$SlaveLogReceiverThread.run(SlaveController.java:531)
      ============= end nested exception, level (1) ===========

      ------------ END SHUTDOWN ERROR STACK -------------

      1. derby-3719-1.diff
        0.7 kB
        Dag H. Wanvik
      2. traceLogShipping.stat
        0.4 kB
        Dag H. Wanvik
      3. traceLogShipping.diff
        8 kB
        Dag H. Wanvik
      4. 12.tar.gz
        646 kB
        Ole Solberg

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Dag H. Wanvik
              Reporter:
              Ole Solberg
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development