db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marty Backe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-6398) SYSCS_FREEZE_DATABASE locks-up if there are large records that haven't been flushed to the disk
Date Thu, 07 Nov 2013 01:45:17 GMT

    [ 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)

Mime
View raw message