[
https://issues.apache.org/jira/browse/DERBY-3362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12564430#action_12564430
]
James Alan Shepherd commented on DERBY-3362:
--------------------------------------------
lib-debug appears to be a sane build, which as I mentioned above has problems
before we even get to this one.
I rolled my own 10.3.2.1 with:
debug=true
optimize=false
sane=false
everything else as in BUILDING.txt
this gets me the line numbers in the log below.
With these settings it seems that I always get the NPE if I create the db in
one tran, then import in another.
Restarting the JVM and skipping the create db, importing into the (now) exising
db, always seems to succeed.
The only other difference is that I'm running with a bit more XXMaxPermSpace.
2008-01-31 15:37:59.134 GMT Thread[Main,5,main] (XID = 1967), (SESSIONID = 2),
(DATABASE = directory:myDB), (DRDAID = null), Committing
2008-01-31 15:37:59.172 GMT Thread[Main,5,main] (XID = 1967), (SESSIONID = 2),
(DATABASE = directory:myDB), (DRDAID = null), Cleanup action starting
2008-01-31 15:37:59.172 GMT Thread[Main,5,main] (XID = 1967), (SESSIONID = 2),
(DATABASE = directory:myDB), (DRDAID = null), Failed Statement is: null
java.lang.NullPointerException
at
org.apache.derby.impl.store.access.btree.ControlRow.getControlRowForPage(ControlRow.java:878)
at
org.apache.derby.impl.store.access.btree.ControlRow.get(ControlRow.java:844)
at
org.apache.derby.impl.store.access.btree.ControlRow.get(ControlRow.java:820)
at
org.apache.derby.impl.store.access.btree.BTreePostCommit.purgeRowLevelCommittedDeletes(BTreePostCommit.java:462)
at
org.apache.derby.impl.store.access.btree.BTreePostCommit.performWork(BTreePostCommit.java:278)
at
org.apache.derby.impl.store.raw.xact.Xact.postTermination(Xact.java:2059)
at
org.apache.derby.impl.store.raw.xact.Xact.completeCommit(Xact.java:832)
at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:868)
at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:663)
at
org.apache.derby.impl.store.access.RAMTransaction.commit(RAMTransaction.java:1980)
at
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCommit(GenericLanguageConnectionContext.java:1161)
at
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.userCommit(GenericLanguageConnectionContext.java:981)
at
org.apache.derby.impl.jdbc.TransactionResourceImpl.commit(TransactionResourceImpl.java:237)
at
org.apache.derby.impl.jdbc.EmbedConnection.commit(EmbedConnection.java:1109)
at
org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:238)
at
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:199)
at
org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit(DataSourceTransactionManager.java:245)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
at
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:146)
> ControlRow NPE
> --------------
>
> Key: DERBY-3362
> URL: https://issues.apache.org/jira/browse/DERBY-3362
> Project: Derby
> Issue Type: Bug
> Affects Versions: 10.3.2.1
> Reporter: James Alan Shepherd
>
> I have a NPE in Derby 10.3.2.1 (10.3.1.4 does not show this behaviour) that
> is probably the same one discussed in DERBY-3216
> FATAL 38406 [Main] (Start.java:153) - Start FAILED
> org.springframework.transaction.TransactionSystemException: Could not commit
> JDBC transaction; nested exception is java.sql.SQLException: Java exception:
> ': java.lang.NullPointerException'.
> Caused by:
> java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
> 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)
> 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.EmbedConnection.commit(Unknown Source)
> at
> org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:238)
> at
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:199)
> at
> org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit(DataSourceTransactionManager.java:245)
> at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
> at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
> at
> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:146)
> at com.aaa.bbb.cccFactory$ddd.add(cccFactory.java:324)
> at com.aaa.eee.fff.ggg.reload(ggg.java:44)
> at com.aaa.eee.fff.ggg.startup(ggg.java:57)
> at com.aaa.eee.fff.Start.startupEee(Start.java:170)
> at com.aaa.eee.fff.Start.startup(Start.java:146)
> at com.aaa.start.Starter.startup(Starter.java:264)
> at com.aaa.start.Main.startup(Main.java:270)
> at com.aaa.start.Main.main(Main.java:199)
> Caused by: java.sql.SQLException: Java exception: ':
> java.lang.NullPointerException'.
> 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.lang.NullPointerException
> at
> org.apache.derby.impl.store.access.btree.ControlRow.getControlRowForPage(Unknown
> Source)
> at org.apache.derby.impl.store.access.btree.ControlRow.get(Unknown
> Source)
> at org.apache.derby.impl.store.access.btree.ControlRow.get(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.btree.BTreePostCommit.purgeRowLevelCommittedDeletes(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.btree.BTreePostCommit.performWork(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.postTermination(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.completeCommit(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.commit(Unknown
> Source)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCommit(Unknown
> Source)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.userCommit(Unknown
> Source)
> at org.apache.derby.impl.jdbc.TransactionResourceImpl.commit(Unknown
> Source)
> ... 15 more
> and derby.log:
> 2008-01-28 08:26:36.148 GMT Thread[Main,5,main] (XID = 1888), (SESSIONID =
> 2), (DATABASE = directory:myDB), (DRDAID = null), Executing prepared
> statement: SELECT COUNT(*) FROM ZZZ WHERE nID IS NULL :End prepared statement
> 2008-01-28 08:26:36.150 GMT Thread[Main,5,main] (XID = 1888), (SESSIONID =
> 2), (DATABASE = directory:myDB), (DRDAID = null), Committing
> 2008-01-28 08:26:36.188 GMT Thread[Main,5,main] (XID = 1888), (SESSIONID =
> 2), (DATABASE = directory:myDB), (DRDAID = null), Cleanup action starting
> 2008-01-28 08:26:36.188 GMT Thread[Main,5,main] (XID = 1888), (SESSIONID =
> 2), (DATABASE = directory:myDB), (DRDAID = null), Failed Statement is: null
> with 2 parameters begin parameter #1: 1 :end parameter begin parameter #2: 1
> :end param
> eter
> java.lang.NullPointerException
> at
> org.apache.derby.impl.store.access.btree.ControlRow.getControlRowForPage(Unknown
> Source)
> at org.apache.derby.impl.store.access.btree.ControlRow.get(Unknown
> Source)
> at org.apache.derby.impl.store.access.btree.ControlRow.get(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.btree.BTreePostCommit.purgeRowLevelCommittedDeletes(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.btree.BTreePostCommit.performWork(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.postTermination(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.completeCommit(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.commit(Unknown
> Source)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCommit(Unknown
> Source)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.userCommit(Unknown
> Source)
> at org.apache.derby.impl.jdbc.TransactionResourceImpl.commit(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.commit(Unknown Source)
> at
> org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:238)
> at
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:199)
> at
> org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit(DataSourceTransactionManager.java:245)
> at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
> at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
> at
> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:146)
> at com.aaa.bbb.cccFactory$ddd.add(cccFactory.java:324)
> at com.aaa.eee.fff.ggg.reload(ggg.java:44)
> at com.aaa.eee.fff.ggg.startup(ggg.java:57)
> at com.aaa.eee.fff.Start.startupEee(Start.java:170)
> at com.aaa.eee.fff.Start.startup(Start.java:146)
> at com.aaa.start.Starter.startup(Starter.java:264)
> at com.aaa.start.Main.startup(Main.java:270)
> at com.aaa.start.Main.main(Main.java:199)
> Cleanup action completed
> This is a long transaction that has suddenly started throwing a NPE.
> Nothing strange happens during the transaction, but on closing I get
> the NPE.
> If I reorder some of the statements in the transaction (keeping
> functional equivalence) the NPE is sometimes not thrown.
> I have already moved any table/index create statements to a different
> (previously committed) transaction. (I have had a few NPE before and locking
> issues that led me to this practice).
> For a while I thought that shutting down derby after creating tables solved
> the problem, but this has been proven false.
> I have tried to run with a sane version, but then I am blocked by too many
> DERBY-3360.
> Also:
> On occasion the transaction DOES commit. Or seems to, but then Derby becomes
> unresponsive, the db files do not grow, but CPU rises and new connections can
> connect but get no response to commands. I don't know if this is really
> connected or not, but I thought I would mention it, as this unresponsive
> problem is what I am supposed to be diagnosing. When I say seems to commit, I
> mean that sometimes commit returns, sometimes it doesn't. Not very helpful, I
> know.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.