[
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)