just my 2c, I didn't really investigated this issue in more detail...
according to the javadoc of FileChannel.tryLock() the
OverlappingFileLockException is thrown if the JVM already holds a lock on the
channel.
in contrast, the current check in the repository startup method primarily
focuses on the situation where *two* JVMs start a repository on the same home
directory.
I'd say the OverlappingFileLockException is thrown because two repository
instances are startup within the *same* JVM using the same repository home
directory.
I suggest we add a catch clause, which also covers OverlappingFileLockException
in addition to IOException.
regards
marcel
Stefan Guggisberg wrote:
btw, afaik OverlappingFileLockException is only thrown on linux,
FileChannel#getLock on windows e.g. returns null in the same situation.
you might want to test on a different platform to further isolate the
issue.
you could also place a breakpoint at the top of the
RepositoryImpl#acquireRepositoryLock
method, step through the code, verify the contents of your fs etc.