Alex Parvulescu resolved OAK-4824.
    Resolution: Fixed
      Assignee: Alex Parvulescu

fixed with http://svn.apache.org/viewvc?rev=1761534&view=rev

> Deadlock in TarWriter
> ---------------------
>                 Key: OAK-4824
>                 URL: https://issues.apache.org/jira/browse/OAK-4824
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Alex Parvulescu
>            Priority: Critical
>              Labels: deadlock, resilience, threading
>             Fix For: Segment Tar 0.0.14
> There is the potential for a deadlock between concurrent calls to 
> {{TarWriter#createNextGeneration()}} and {{TarWriter#flush()}}: both methods 
> try to acquire a lock on this and another lock on {{TarWriter.file}} but in 
> different order. I observed the deadlock when running 
> {{CompactionAndCleanupIT.randomAccessFileConcurrentReadAndLength()}}.
> This is a regression introduced with OAK-4746: the method 
> {{TarWriter.createNextGeneration()}} seems over eagerly synchronized. I would 
> argue that we could drop synchronization for that method entirely as the part 
> after the call to {{close()}} will in any case only ever be executed once by 
> a single thread. All other threads will fail with an 
> {{IllegalStateException}}).
> [~alexparvulescu], WDYT?

This message was sent by Atlassian JIRA

Reply via email to