[ 
https://issues.apache.org/jira/browse/SOLR-13352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16807027#comment-16807027
 ] 

Hoss Man commented on SOLR-13352:
---------------------------------

Thanks shalin,

I think that comment was more confusing then helpful considering the ambiguity 
of which of the two nested try blocks it was refering to.

In generally, a Lock should *NEVER* be acquired _inside_ the try/finally where 
the lock is released (that's pretty fundamental to the design of the Lock API) 
and now that we only catch InterruptedException in the outer try/catch, there 
shouldn't be much risk of confusion in the future of people thinking that maybe 
the lock call should be moved inside the inner try.

> possible deadlock/threadleak from OverseerTriggerThread/AutoScalingWatcher 
> during close()
> -----------------------------------------------------------------------------------------
>
>                 Key: SOLR-13352
>                 URL: https://issues.apache.org/jira/browse/SOLR-13352
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Hoss Man
>            Assignee: Hoss Man
>            Priority: Major
>         Attachments: SOLR-13352.patch, 
> sarowe_Lucene-Solr-tests-master_20462.log.txt
>
>
> A recent jenkins failure in TestSimTriggerIntegration lead me to what appears 
> to be a "lock leak" situation in OverseerTriggerThread in how the 
> "updateLock" object is dealt with in the event that the OverseerTriggerThread 
> is closed.
> It's possible that this only affects tests using the SimCloudManager when 
> calling "simRestartOverseer" -- but 
> I _believe_ this can lead also lead to an actual deadlock / threadleak 
> situation in a thread running AutoScalingWatcher (that hold a refrefrences to 
> OverseerTriggerThread and every object reachable from it) when the 
> OverseerTriggerThread is closed as part of a real Solr shutdown ... which i 
> think would cause the JVM to stall untill externally killed.
> ----
> If my analysis of the test failure (to follow in comment) is correct, then 
> even even if this bug isn't likely to affect real world solr instances (and 
> only surfaces because of how OverseerTriggerThread is used in 
> SimCloudManager) the fix to OverseerTriggerThread is a trivial change to 
> follow locking best practices (patch to follow)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to