Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[udig-devel] [jira] Created: (UDIG-658) Deadlock during committing changes in shapefile data store

Deadlock during committing changes in shapefile data store
----------------------------------------------------------

         Key: UDIG-658
         URL: http://jira.codehaus.org/browse/UDIG-658
     Project: uDIG
        Type: Bug

  Components: shapefile  
    Versions:  UDIG 1.1.M2, UDIG 1.2, UDIG 1.1.1, UDIG 1.1, UDIG 1.0.6    
    Reporter: Vitali Diatchkov
 Assigned to: Jody Garnett 
    Priority: Blocker
     Fix For:  UDIG 1.1.M2, UDIG 1.2, UDIG 1.1.1, UDIG 1.1, UDIG 1.0.6
 Attachments: commit_locking.gif

As I remember I described this problem earlier, but can't fins that old issue, so open the new one.

The screenshot is in attachment.

The problem: during committing of changes to shapefile the deadlock happens because of rendering and committing threads. 
Ont the screenshot  one of possible scenarios is drawn

1 - committing thread calls TransactionStateDiff.commit()
  between 1 and 2 at least one of rendering threads locks shapefile data store for reading
2 - rendering threads are locked because of TransactionStateDiff.diff()  is synchronized with TransactionStateDiff.commit().
3 - committing thread tryes to lock shapefile data store for writing but it was locked already for reading -> committing thread waits infinite time.
4 rendering threads are locked because of TransactionStateDiff.diff() method  is synchronized with TransactionStateDiff.commit().

The deadlock is got.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



Back to the top