db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard G. Hash" <Richard.H...@openspirit.com>
Subject Question about how Derby uses it's "tmp/" sub-directory - and what to do when it goes missing!
Date Fri, 03 Sep 2010 22:15:45 GMT
This is occurring for us using Derby 10.6.1.0 in embedded mode, however it's embedded in daemon
process which has a CORBA interface into it, so there can be multiple processes with multiple
threads hitting it, which complicates things a bit.  It seems like we might have a threading
issue, but we are having trouble tracking it down. We actually never saw the problem until
some time after we moved our compiler version from jdk-1.5 to jdk-1.6 (1.6.0_20) however our
runtime has been 1.6.0_14-b08 for a long time. Not sure if that is related however...

I hoping someone can better explain how derby uses the "tmp/" subdirectory and could provide
some ideas on what might be going on.  I haven't been able to find anything in Jira that looks
related.

What we see are spurious errors of the form:
   Caused by: java.io.FileNotFoundException: /build/v3_3_0_97/config/data/tmp/T1283512174014.tmp
(No such file or directory)
on SELECT or DELETE statements. The DELETEs are always cascade deletes where the children
tables have CLOB columns, and the SELECTs always contain ORDER BY clauses - that seems to
be the common denominator.   Just from browsing the stack traces it looks like Derby uses
the "tmp/" sub-directory to hold pending results and it's somehow disappearing before it should.
 It is not reliably repeatable, even though it's happening a couple times a week in our test
suite, but that is 28,000+ tests across a bunch of processes - so it's not something I have
been able to replicate in a usefully small test case.

I basically don't have a good understanding of what the "tmp/" directory is used for, or when
it's created or goes away.  When the error occurs (middle of night), the next morning I typically
don't see a "tmp/" directory at all, so not only are the "tmp/Tnnnnnnnnn.tmp" files missing,
the whole "tmp/" directory is missing.

Stack trace looks like:

[WARN ] 2010-09-03 07:16:59,428 data.jdbc.JdbcQueryResultExecutor (JdbcQueryResultExecutor.java:114):
Cannot execute query: 'SELECT o.COORD_OP_CODE, p.PARAMETER_NAME, p.PARAMETER_CODE, o.PARAMETER_VALUE,
o.PARAM_VALUE_FILE_REF, o.UOM_CODE FROM EPSG_COORDOPERATIONPARAMVALUE o INNER JOIN EPSG_COORDOPERATIONPARAM
p ON (o.PARAMETER_CODE = p.PARAMETER_CODE) WHERE o.COORD_OP_METHOD_CODE = 9807 ORDER BY o.COORD_OP_CODE
ASC'. Reason: An unexpected exception was thrown
java.sql.SQLException: An unexpected exception was thrown
                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.EmbedStatement.executeStatement(Unknown Source)
                at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown
Source)
                at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(Unknown
Source)
                at com.openspirit.plugin.data.jdbc.JdbcQueryResultExecutor.executeQuery(JdbcQueryResultExecutor.java:104)
                [...snip...]
Caused by: java.sql.SQLException: An unexpected exception was thrown
                at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
Source)
                at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
                ... 21 more
Caused by: java.sql.SQLException: Java exception: '/build/v3_3_0_97/config/data/tmp/T1283512174014.tmp
(No such file or directory): java.io.FileNotFoundException'.
                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)
                ... 18 more
Caused by: java.io.FileNotFoundException: /build/v3_3_0_97/config/data/tmp/T1283512174014.tmp
(No such file or directory)
                at java.io.FileOutputStream.open(Native Method)
                at java.io.FileOutputStream.<init>(Unknown Source)
                at java.io.FileOutputStream.<init>(Unknown Source)
                at org.apache.derby.impl.io.DirFile.getOutputStream(Unknown Source)
                at org.apache.derby.impl.store.raw.data.StreamFileContainer.run(Unknown Source)
                at java.security.AccessController.doPrivileged(Native Method)
                at org.apache.derby.impl.store.raw.data.StreamFileContainer.privGetOutputStream(Unknown
Source)
                at org.apache.derby.impl.store.raw.data.StreamFileContainer.load(Unknown Source)
                at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.addAndLoadStreamContainer(Unknown
Source)
                at org.apache.derby.impl.store.raw.xact.Xact.addAndLoadStreamContainer(Unknown
Source)
                at org.apache.derby.impl.store.access.sort.MergeSort.createMergeRun(Unknown
Source)
                at org.apache.derby.impl.store.access.sort.MergeInserter.insert(Unknown Source)
                at org.apache.derby.impl.sql.execute.SortResultSet.loadSorter(Unknown Source)
                at org.apache.derby.impl.sql.execute.SortResultSet.openCore(Unknown Source)
                at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown
Source)
                at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown
Source)
                at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
                ... 14 more


------------------ Java Information ------------------
Java Version:    1.6.0_14
Java Vendor:     Sun Microsystems Inc.
Java home:       /build/v3_3_0_97/jre/Linux_i386_32
Java classpath:
/build/v3_3_0_97/lib/3rdparty/derby.jar:/build/v3_3_0_97/classes:/build/v3_3_0_97/lib/OpenSpirit.jar:/build/v3_3_0_97/lib/OpenSpiritImpl-3.jar:/build/v3_3_0_97/plugins/corba/OspCorba-1.jar:/build/v3_3_0_97/plugins/corba/RemoteDataProvider-2.jar:/build/v3_3_0_97/plugins/corba/RemoteEvent-1.jar:/build/v3_3_0_97/classes/osporg.jar:/build/v3_3_0_97/classes/ospcom.jar:/build/v3_3_0_97/lib/3rdparty/orb.jar:/build/v3_3_0_97/lib/3rdparty/ojdbc14.jar:
OS name:         Linux
OS architecture: i386
OS version:      2.6.18-8.el5
Java user name:  rgh
Java user home:  /users/rgh
Java user dir:   /build/v3_3_0_97
java.specification.name: Java Platform API Specification
java.specification.version: 1.6
java.runtime.version: 1.6.0_14-b08
--------- Derby Information --------
JRE - JDBC: Java SE 6 - JDBC 4.0
[/build/v3_3_0_97/lib/3rdparty/derby.jar] 10.6.1.0 - (938214)

Thanks for any help,

Richard Hash
OpenSpirit Corporation


Mime
View raw message