Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unlock stream (cms-externals versionj) #6

Merged
1 commit merged into from
Jul 7, 2015

Commits on Jul 5, 2015

  1. Release Stream lock before invoking callbacks. xrootd#216

    OnReadTimeout will call OnError with the Stream's lock held.
    This causes OnError to invoke the user's callback with the
    Stream lock held, possibly causing a lock ordering issue.
    
    This fixes an observed deadlock within CMSSW over the following
    objects:
    
    Thread 1
        FileStateHandler::VectorRead takes FileStateHandler lock
        Stream::Send tries to take Stream lock
    
    Thread 5
        FileTimer::Run takes FileTimer lock
        FileStateHandler::Tick tries to take FileStateHandler
    
    Thread 6
        Stream::OnReadTimeout takes Stream lock
        DelayedClose::HandleResponseWithHosts  (this is callback code in CMSSW); this deletes a File object, which eventually calls
        FileTimer::UnRegisterFileObject tries to take FileTimer lock
    bbockelm committed Jul 5, 2015
    Configuration menu
    Copy the full SHA
    ddd7a2a View commit details
    Browse the repository at this point in the history