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