Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-5390

NPE in BasicDatabase.stop in replication slave mode (dd.clearSequenceCaches)

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 10.8.2.2, 10.9.1.0
    • Fix Version/s: 10.8.2.2, 10.9.1.0
    • Component/s: None
    • Labels:
      None

      Description

      To reproduce, set up a replication pair and then stop the master (I used "stopMaster=true").
      From derby.log on the slave:

      Replication slave role was stopped for database 'replicDB'.
      java.lang.NullPointerException
      at org.apache.derby.impl.db.BasicDatabase.stop(Unknown Source)
      at org.apache.derby.impl.db.SlaveDatabase.stop(SlaveDatabase.java:167)
      at org.apache.derby.impl.services.monitor.TopService.stop(TopService.java:443)
      at org.apache.derby.impl.services.monitor.TopService.shutdown(TopService.java:394)
      at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(BaseMonitor.java:229)
      at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(DatabaseContextImpl.java:77)
      at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(ContextManager.java:343)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(TransactionResourceImpl.java:437)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:339)
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2290)
      at org.apache.derby.impl.jdbc.EmbedConnection.internalStopReplicationSlave(EmbedConnection.java:1034)
      at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:353)
      at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:73)
      at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(EmbedConnection40.java:51)
      at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:70)
      at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:248)
      at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:144)
      at org.apache.derby.impl.db.SlaveDatabase.handleShutdown(SlaveDatabase.java:428)
      at org.apache.derby.impl.db.SlaveDatabase.access$200(SlaveDatabase.java:72)
      at org.apache.derby.impl.db.SlaveDatabase$SlaveDatabaseBootThread.run(SlaveDatabase.java:328)
      at java.lang.Thread.run(Thread.java:722)

      The reason is that there is no data dictionary available when the database is in replication slave mode.
      Note that the exception is caught and simply printed to derby.log.

        Issue Links

          Activity

          Hide
          kristwaa Kristian Waagan added a comment -

          The fix here is simple: check if the data dictionary is available.
          I'm wonder why Throwable is caught though - why not catch only StandardException?

          Show
          kristwaa Kristian Waagan added a comment - The fix here is simple: check if the data dictionary is available. I'm wonder why Throwable is caught though - why not catch only StandardException?
          Hide
          kristwaa Kristian Waagan added a comment -

          Attaching patch 1a, which adds a check for null and catches only StandardException instead of Throwable.

          Show
          kristwaa Kristian Waagan added a comment - Attaching patch 1a, which adds a check for null and catches only StandardException instead of Throwable.
          Hide
          kristwaa Kristian Waagan added a comment -

          Committed patch 1a to trunk with revision 1164358, and backported it to 10.8 with revision 1164359.

          Closing issue.

          Show
          kristwaa Kristian Waagan added a comment - Committed patch 1a to trunk with revision 1164358, and backported it to 10.8 with revision 1164359. Closing issue.

            People

            • Assignee:
              kristwaa Kristian Waagan
              Reporter:
              kristwaa Kristian Waagan
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development