Uploaded image for project: 'Oozie'
  1. Oozie
  2. OOZIE-1714

Update Derby driver version to latest

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: trunk
    • Fix Version/s: 4.1.0
    • Component/s: None
    • Labels:
      None

      Description

      Upgrading from Oozie 3 (database version 1) to Oozie 5/trunk (database version 3) with a derby database can fail depending on what's in the database:

      java.sql.SQLException: The data in this BLOB or CLOB is no longer available.  The BLOB/CLOB's transaction may be committed, its connection closed or it has been freed.
      	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
      	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
      	at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
      	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
      	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
      	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
      	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
      	at org.apache.derby.impl.jdbc.EmbedResultSet.getClob(Unknown Source)
      	at org.apache.derby.impl.jdbc.EmbedResultSet.getClob(Unknown Source)
      	at org.apache.oozie.tools.OozieDBCLI.convertClobToBlobinDerby(OozieDBCLI.java:573)
      	at org.apache.oozie.tools.OozieDBCLI.ddlTweaksFor50(OozieDBCLI.java:636)
      	at org.apache.oozie.tools.OozieDBCLI.upgradeDBto50(OozieDBCLI.java:241)
      	at org.apache.oozie.tools.OozieDBCLI.upgradeDB(OozieDBCLI.java:221)
      	at org.apache.oozie.tools.OozieDBCLI.run(OozieDBCLI.java:129)
      	at org.apache.oozie.tools.OozieDBCLI.main(OozieDBCLI.java:77)
      Caused by: java.sql.SQLException: The data in this BLOB or CLOB is no longer available.  The BLOB/CLOB's transaction may be committed, its connection closed or it has been freed.
      	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
      	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
      	... 15 more
      Caused by: java.sql.SQLException: Java exception: 'ERROR 40XD0: Container has been closed.: java.io.IOException'.
      	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
      	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
      	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
      	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
      	at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source)
      	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
      	... 12 more
      Caused by: java.io.IOException: ERROR 40XD0: Container has been closed.
      	at org.apache.derby.impl.store.raw.data.OverflowInputStream.fillByteHolder(Unknown Source)
      	at org.apache.derby.impl.store.raw.data.BufferedByteHolderInputStream.read(Unknown Source)
      	at java.io.DataInputStream.read(DataInputStream.java:100)
      	at org.apache.derby.iapi.types.SQLClob.getStreamWithDescriptor(Unknown Source)
      	at org.apache.derby.impl.jdbc.EmbedClob.<init>(Unknown Source)
      	... 8 more
      Caused by: ERROR 40XD0: Container has been closed.
      	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
      	at org.apache.derby.impl.store.raw.data.BaseContainerHandle.checkOpen(Unknown Source)
      	at org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPage(Unknown Source)
      	... 13 more
      

      I couldn't find too much on the internet about this, but from what I could gather it's a bug with how Derby handles CLOBs and connections or something; though I couldn't find a specific Derby JIRA. In any case, I tried using the latest Derby driver (10.10.1.1) instead of the one we're currently using (10.6.1.0) and the upgrade succeeds.

        Attachments

        1. OOZIE-1714.patch
          0.4 kB
          Robert Kanter

          Activity

            People

            • Assignee:
              rkanter Robert Kanter
              Reporter:
              rkanter Robert Kanter
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: