db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (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 Tue, 05 Nov 2013 13:59:17 GMT

    [ https://issues.apache.org/jira/browse/DERBY-6398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13813929#comment-13813929
] 

Knut Anders Hatlen commented on DERBY-6398:
-------------------------------------------

Just to make sure that we're on the right track. Marty, is the following true about your application:

- the connection that invoked syscs_freeze_database() had auto-commit enabled?

- the large update that was performed prior to the freeze, was done on the same connection
object as the freeze command?

What is the nature of the large update? Is it an INSERT or an UPDATE? Does it touch a BLOB
or a CLOB?

It might provide some useful data if you could compile derby.jar with the following added
to the commitNoSync(int) method in java/engine/org/apache/derby/impl/store/raw/xact/Xact.java:

    Thread.dumpStack();

It would be interesting to see the stack trace of the last call to commitNoSync() before the
freeze call that hangs.

> 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