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

Ivan Zhakov updated SVN-2265:
-----------------------------
    Description: 
http://svn.haxx.se/dev/archive-2005-04/0355.shtml

The FSFS implementation uses an exclusive write lock to serialize the final 
phase of a commit (and in 1.2 to serialize manipulate file locks). This is 
implemented by apr_lock_file, which on POSIX platforms means using fcntl to 
acquire an exclsuive lock on a file. The problem is that such locks are 
per-process, not per thread or file descriptor. This means that two threads in 
the same process can have the write lock at the same time. This means that 
using FSFS on the same repository in multiple threads can lead to lost commits.

The proposed solution (se thread above) can't be implemented in 1.1.x or  
earlier, since it requires a new API. Putting in 1.2.0 since we must at least  
introduce that new API before releasing 1.2.0.

Note that Windows is not affected by this problem.

Original issue reported by *lundblad*

  was:
{noformat:nopanel=true}
http://svn.haxx.se/dev/archive-2005-04/0355.shtml

The FSFS implementation uses an exclusive write lock to serialize the final 
phase of a commit (and in 1.2 to serialize manipulate file locks). This is 
implemented by apr_lock_file, which on POSIX platforms means using fcntl to 
acquire an exclsuive lock on a file. The problem is that such locks are per-
process, not per thread or file descriptor. This means that two threads in the 
same process can have the write lock at the same time. This means that using 
FSFS on the same repository in multiple threads can lead to lost commits.

The proposed solution (se thread above) can't be implemented in 1.1.x or 
earlier, since it requires a new API. Putting in 1.2.0 since we must at least 
introduce that new API before releasing 1.2.0.

Note that Windows is not affected by this problem.
{noformat}


Original issue reported by *lundblad*


> FSFS race on POSIX platforms
> ----------------------------
>
>                 Key: SVN-2265
>                 URL: https://issues.apache.org/jira/browse/SVN-2265
>             Project: Subversion
>          Issue Type: Bug
>          Components: libsvn_fs_fs
>    Affects Versions: all
>            Reporter: Subversion Importer
>            Assignee: Greg Hudson
>            Priority: Trivial
>             Fix For: nonblocking
>
>
> http://svn.haxx.se/dev/archive-2005-04/0355.shtml
> The FSFS implementation uses an exclusive write lock to serialize the final 
> phase of a commit (and in 1.2 to serialize manipulate file locks). This is 
> implemented by apr_lock_file, which on POSIX platforms means using fcntl to 
> acquire an exclsuive lock on a file. The problem is that such locks are 
> per-process, not per thread or file descriptor. This means that two threads 
> in the same process can have the write lock at the same time. This means that 
> using FSFS on the same repository in multiple threads can lead to lost 
> commits.
> The proposed solution (se thread above) can't be implemented in 1.1.x or  
> earlier, since it requires a new API. Putting in 1.2.0 since we must at least 
>  introduce that new API before releasing 1.2.0.
> Note that Windows is not affected by this problem.
> Original issue reported by *lundblad*



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to