[
https://issues.apache.org/jira/browse/DERBY-5351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen resolved DERBY-5351.
---------------------------------------
Resolution: Duplicate
This is most likely the same bug as DERBY-4275. A fix was checked in on trunk
(and backported to the 10.8 branch), but it turned out the problem is still
there, although it doesn't happen as frequently as before. I'm currently
looking into what's missing.
> SYSCS_UTIL.SYSCS_COMPRESS_TABLE causes concurrent transactions to fail
> ----------------------------------------------------------------------
>
> Key: DERBY-5351
> URL: https://issues.apache.org/jira/browse/DERBY-5351
> Project: Derby
> Issue Type: Bug
> Affects Versions: 10.6.2.1, 10.8.1.2
> Environment: >sysinfo
> ------------------ Java Information ------------------
> Java Version: 1.6.0_26
> Java Vendor: Sun Microsystems Inc.
> Java home: C:\Program Files (x86)\Java\jre6
> Java classpath: .;C:\Program Files
> (x86)\Java\jre6\lib\ext\QTJava.zip;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\bin\../lib/derby.jar;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\bin\../lib/derbynet.jar;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\bin\../lib/derbyclient.jar;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\bin\../lib/derbytools.jar
> OS name: Windows 7
> OS architecture: x86
> OS version: 6.1
> Java user name: bmason
> Java user home: C:\Users\BMASON
> Java user dir: C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\bin
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> java.runtime.version: 1.6.0_26-b03
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\lib\derby.jar] 10.8.1.2 -
> (1095077)
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\lib\derbytools.jar]
> 10.8.1.2 - (1095077)
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\lib\derbynet.jar]
> 10.8.1.2 - (1095077)
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.1.2-bin\lib\derbyclient.jar]
> 10.8.1.2 - (1095077)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> Current Locale : [English/New Zealand [en_NZ]]
> Found support for locale: [cs]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [de_DE]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [es]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [fr]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [hu]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [it]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [ja_JP]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [ko_KR]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [pl]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [pt_BR]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [ru]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [zh_CN]
> version: 10.8.1.2 - (1095077)
> Found support for locale: [zh_TW]
> version: 10.8.1.2 - (1095077)
> ------------------------------------------------------
> Reporter: Brett Mason
> Attachments: CompressTableTestCase.java
>
>
> Our application is set to run a set of nightly maintenance tasks which
> include SYSCS_UTIL.SYSCS_COMPRESS_TABLE. From our logs it appears that
> occasionally selects will fail while the database is being compressed with
> the following error: "ERROR XSCH1: Container 1,408 not found." A full stack
> trace is included below.
> Attached is a standalone test case which will reproduce the problem within a
> couple of seconds. It will create two threads, one which will repeatedly
> compress TABLE1 while the second thread tries to read from the table. The
> documentation states that SYSCS_COMPRESS_TABLE will acquire an exclusive lock
> on the table which suggests it any simultaneous requests should block until
> the compress has completed.
> A workaround is to switch to SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE which
> does not seem to have the problem.
> Sample output from test case
> ---------------------------------------
> Thread-3: Selecting...
> Thread-2: Compressing...
> Thread-3: Selecting...
> Thread-3: Selecting...
> Thread-2: Compressing...
> Thread-3: Selecting...
> Thread-3: Selecting...
> Thread-3: Selecting...
> Thread-2: Compressing...
> Thread-3: Selecting...
> Thread-2: Compressing...
> java.sql.SQLException: Container 2,480 not found.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.Util.generateCsSQLException(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
> BashOnCompressTables$SelectRunnable.select(BashOnCompressTables.java:67)
> at BashOnCompressTables$SelectRunnable.run(BashOnCompressTables.java:48)
> at java.lang.Thread.run(Unknown Source)
> Caused by: java.sql.SQLException: Container 2,480 not found.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
> Source)
> ... 12 more
> Caused by: ERROR XSCH1: Container 2,480 not found.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> at org.apache.derby.impl.store.access.heap.Heap.openScan(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openScan(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.RAMTransaction.openCompiledScan(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.BulkTableScanResultSet.openScanController(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.TableScanResultSet.openCore(Unknown Source)
> at
> org.apache.derby.impl.sql.execute.BulkTableScanResultSet.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)
> ... 6 more
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira