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

Avishai Ish-Shalom commented on SOLR-6252:
------------------------------------------

The new code is still vulnerable to deadlock: if a call gets to the 2nd 
synchronized block and blocks on {{cache.wait()}} then it will never be 
released since {{cache.notifyAll()}} is also inside a synchronized block of the 
same monitor object. 

> A couple of small improvements to UnInvertedField class.
> --------------------------------------------------------
>
>                 Key: SOLR-6252
>                 URL: https://issues.apache.org/jira/browse/SOLR-6252
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>    Affects Versions: Trunk
>            Reporter: Vamsee Yarlagadda
>            Assignee: Mark Miller
>            Priority: Minor
>             Fix For: 4.10, Trunk
>
>         Attachments: SOLR-6252-v3.patch, SOLR-6252.patch, SOLR-6252v2.patch
>
>
> Looks like UnInvertedField#getUnInvertedField has implemented a bit 
> additional synchronization module rather than what is required, and thereby 
> increasing the complexity.
> https://github.com/apache/lucene-solr/blob/trunk/solr/core/src/java/org/apache/solr/request/UnInvertedField.java#L667
> As pointed out in the above link, as the synchronization is performed on the 
> cache variable(which itself will protect the threads from obtaining access to 
> the cache), we can safely remove all the placeholder flags. As long as 
> cache.get() is in synchronized block, we can simply populate the cache with 
> new entries and other threads will be able to see the changes.
> This change has been introduced in 
> https://issues.apache.org/jira/browse/SOLR-2548 (Multithreaded faceting)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to