[
https://issues.apache.org/jira/browse/OOZIE-1714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Kanter updated OOZIE-1714:
---------------------------------
Attachment: OOZIE-1714.patch
No new tests, but besides testing the upgrade as I mentioned in the
description, I also tried submitting some new jobs and querying Oozie to make
sure everything still works normally.
> Update Derby driver version to latest
> -------------------------------------
>
> Key: OOZIE-1714
> URL: https://issues.apache.org/jira/browse/OOZIE-1714
> Project: Oozie
> Issue Type: Bug
> Affects Versions: trunk
> Reporter: Robert Kanter
> Assignee: Robert Kanter
> Priority: Critical
> Attachments: OOZIE-1714.patch
>
>
> 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:
> {noformat}
> 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
> {noformat}
> 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.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)