You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Robert Burrell Donkin (JIRA)" <se...@james.apache.org> on 2007/10/26 23:31:50 UTC

[jira] Closed: (JAMES-802) [torque] Mailbox Currency

     [ https://issues.apache.org/jira/browse/JAMES-802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Burrell Donkin closed JAMES-802.
---------------------------------------

    Resolution: Fixed

Applied something along these lines

> [torque] Mailbox Currency
> -------------------------
>
>                 Key: JAMES-802
>                 URL: https://issues.apache.org/jira/browse/JAMES-802
>             Project: James
>          Issue Type: Bug
>          Components: IMAPServer
>         Environment: torque -> derby
>            Reporter: Robert Burrell Donkin
>            Assignee: Robert Burrell Donkin
>         Attachments: torque-locking.patch
>
>
> Whilst running fetchmail->SIEVE->IMAP concurrently with an IMAP client, the following exception  frequently occurred:
> org.apache.torque.TorqueException: java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock
> My diagnosis is that the torque mailbox cannot read and write concurrently. I've been running for a few weeks with concurrent utils read-write locking code in the mailbox and this exception has not again occurred. I will attach the patch I'm running on my local JAMES fork. I think the time is right to consider adding read-write locking on trunk.
> Disadvantages (of introducing read-write locking):
>  * Using a programmatic read-write lock will reduce throughput in a multi-user environment. The granularity is necessarily course. 
>  * May introduce subtle programmatic deadlock or thread-starvation conditions. This may be difficult to diagnose.
>  * There is no proof that it effects other databases

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org