[ http://issues.apache.org/jira/browse/HADOOP-139?page=all ]

Igor Bolotin updated HADOOP-139:
--------------------------------

    Attachment: deadlock.patch

Attached is proposed patch. I removed entire lock/release method 
synchronization and replaced it with critical section synchronization for sets 
accesses - leaving channel lock/release calls outside of synchronized 
statement. 

> Deadlock in LocalFileSystem lock/release
> ----------------------------------------
>
>          Key: HADOOP-139
>          URL: http://issues.apache.org/jira/browse/HADOOP-139
>      Project: Hadoop
>         Type: Bug

>   Components: fs
>     Reporter: Igor Bolotin
>  Attachments: deadlock.patch
>
> LocalFileSystem lock/release methods marked synchronized and inside they lock 
> file channel - this produces deadlock situation. Let's see how it happens: 
> 1. First thread locks the file and starts some long-running process.
> 2. Second thread tries to lock the file and it blocks inside channel lock 
> method. It  keeps LocalFileSystem instance "locked" as well. 
> 3. First thread finished it's processing and tries to release lock - it 
> blocks because LocalFileSystem instance is "locked" by second thread - both 
> threads are waiting to each other. 

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

Reply via email to