Derby
  1. Derby
  2. DERBY-3896

Assert failure in LogicalUndoOperation.doMe() when starting slave with uncommitted transactions on the master

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 10.4.1.3, 10.5.1.1
    • Fix Version/s: None
    • Component/s: Replication
    • Environment:
    • Urgency:
      Normal

      Description

      I created and froze the master database like this:

      /tmp/master % java -jar /code/derby/trunk1/jars/sane/derbyrun.jar ij
      ij version 10.5
      ij> connect 'jdbc:derby:db;create=true';
      ij> autocommit off;
      ij> create table t1(x int);
      0 rows inserted/updated/deleted
      ij> insert into t1 values 1,2,3,4;
      4 rows inserted/updated/deleted
      ij> connect 'jdbc:derby:db';
      ij(CONNECTION1)> call syscs_util.syscs_freeze_database();
      0 rows inserted/updated/deleted
      ij(CONNECTION1)>

      Then in another terminal window I copied the database with "cp -rp" and booted the copy as a slave:

      /tmp/slave % java -jar /code/derby/trunk1/jars/sane/derbyrun.jar ij
      ij version 10.5
      ij> connect 'jdbc:derby:db;startSlave=true';
      org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED
      at org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:98)
      at org.apache.derby.impl.store.raw.data.LogicalUndoOperation.doMe(LogicalUndoOperation.java:174)
      at org.apache.derby.impl.store.raw.log.FileLogger.logAndUndo(FileLogger.java:533)
      at org.apache.derby.impl.store.raw.xact.Xact.logAndUndo(Xact.java:374)
      at org.apache.derby.impl.store.raw.log.FileLogger.undo(FileLogger.java:1015)
      at org.apache.derby.impl.store.raw.xact.Xact.abort(Xact.java:949)
      at org.apache.derby.impl.store.raw.xact.XactFactory.rollbackAllTransactions(XactFactory.java:529)
      at org.apache.derby.impl.store.raw.log.LogToFile.recover(LogToFile.java:1213)
      at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java:334)
      at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:2019)
      at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
      at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:573)
      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:2019)
      at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
      at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:573)
      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.services.monitor.BaseMonitor.boot(BaseMonitor.java:2019)
      at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:291)
      at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1856)
      at org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(BaseMonitor.java:1722)
      at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(BaseMonitor.java:1602)
      at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:1021)
      at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Monitor.java:550)
      at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2572)
      at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:365)
      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:238)
      at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
      at java.sql.DriverManager.getConnection(DriverManager.java:582)
      at java.sql.DriverManager.getConnection(DriverManager.java:154)
      at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:1243)
      at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:1093)
      at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:921)
      at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:328)
      at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:248)
      at org.apache.derby.impl.tools.ij.Main.go(Main.java:215)
      at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:181)
      at org.apache.derby.impl.tools.ij.Main.main(Main.java:73)
      at org.apache.derby.tools.ij.main(ij.java:59)
      at org.apache.derby.iapi.tools.run.main(run.java:53)

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              Knut Anders Hatlen
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:

                Development