[
https://issues.apache.org/jira/browse/DERBY-6398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13815540#comment-13815540
]
Marty Backe commented on DERBY-6398:
------------------------------------
Here is the last thread dump before the FREEZE command was called (with
subsequent deadlock):
at java.lang.Thread.dumpStack(Thread.java:1249)
at org.apache.derby.impl.store.raw.xact.Xact.commitNoSync(Xact.java:701)
at
org.apache.derby.impl.store.raw.data.ReclaimSpaceHelper.reclaimSpace(ReclaimSpaceHelper.java:427)
at
org.apache.derby.impl.store.raw.data.BaseDataFileFactory.reclaimSpace(BaseDataFileFactory.java:1295)
at
org.apache.derby.impl.store.raw.data.ReclaimSpace.performWork(ReclaimSpace.java:148)
at
org.apache.derby.impl.store.raw.xact.Xact.postTermination(Xact.java:2094)
at
org.apache.derby.impl.store.raw.xact.Xact.completeCommit(Xact.java:863)
at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:899)
at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:693)
at
org.apache.derby.impl.store.access.RAMTransaction.commit(RAMTransaction.java:1942)
at
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCommit(GenericLanguageConnectionContext.java:1540)
at
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.userCommit(GenericLanguageConnectionContext.java:1377)
at
org.apache.derby.impl.jdbc.TransactionResourceImpl.commit(TransactionResourceImpl.java:238)
at
org.apache.derby.impl.jdbc.EmbedConnection.commitIfNeeded(EmbedConnection.java:2524)
at
org.apache.derby.impl.jdbc.ConnectionChild.commitIfNeeded(ConnectionChild.java:104)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1415)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1724)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java:1379)
at
jet.data.database.OtherUtilities.updatePrimeSC(OtherUtilities.java:747)
at
jet.data.database.DatabaseManager.updatePrimeSC(DatabaseManager.java:3259)
at
jet.planner.SM_ProcessImportPrimeEphemeris.updateEphemeris(SM_ProcessImportPrimeEphemeris.java:144)
at
jet.planner.SM_ProcessImportPrimeEphemeris.processEvent(SM_ProcessImportPrimeEphemeris.java:129)
at jet.planner.Planner$7$4.run(Planner.java:529)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1044)
at java.awt.Dialog$3.run(Dialog.java:1096)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1094)
at java.awt.Component.show(Component.java:1584)
at java.awt.Component.setVisible(Component.java:1536)
at java.awt.Window.setVisible(Window.java:841)
at java.awt.Dialog.setVisible(Dialog.java:984)
at jet.ApplicationBusyDialog.setVisible(ApplicationBusyDialog.java:171)
at jet.planner.Planner.setApplicationBusy(Planner.java:2577)
at jet.planner.Planner.setApplicationBusy(Planner.java:2558)
at
jet.planner.SM_ProcessImportPrimeEphemeris$1.run(SM_ProcessImportPrimeEphemeris.java:73)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
> SYSCS_FREEZE_DATABASE locks-up if there are large records that haven't been
> flushed to the disk
> -----------------------------------------------------------------------------------------------
>
> Key: DERBY-6398
> URL: https://issues.apache.org/jira/browse/DERBY-6398
> Project: Derby
> Issue Type: Bug
> Components: Miscellaneous
> Affects Versions: 10.10.1.1
> Environment: Reliably demonstrated on Windows 7 with JDK 1.6.0_31
> Reporter: Marty Backe
> Fix For: 10.10.1.1
>
> Attachments: report.txt
>
>
> If after writing a record that contains a large data column (>100KB), the
> FREEZE command is issued, the command never returns (Derby appears to be
> dead-locked).
> E.g. sqlStatement.executeUpdate("CALL SYSCS_UTIL.SYSCS_FREEZE_DATABASE()");
> If the CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE() command is first used
> before calling FREEZE, it does not lock-up.
> It's my opinion that calling FREEZE should never result in a dead-locked
> Derby instance.
--
This message was sent by Atlassian JIRA
(v6.1#6144)