[ 
https://issues.apache.org/jira/browse/SOLR-647?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yonik Seeley updated SOLR-647:
------------------------------

    Attachment: refcount_example.patch

It seems like some simplifications could be made... see attached 
refcount_example.patch.

I think we need to be able to describe in simple terms how the mechanism works:
Cores are created with a reference count of 1 and put in multicore.  As long as 
a core can
be obtained from the map, it will have at least a reference count of 1.  Thus, 
if we increment the core's reference during a time when we know that no other 
core is modifying multicore, we know we have a core that is safe from being 
asynchronously closed.

To destroy a core, simply remove it from the map and call close on it.

There are other issues that are still a bit muddled IMO... like the whole role 
of CoreDescriptor.

> Do SolrCore.close() in a refcounted way
> ---------------------------------------
>
>                 Key: SOLR-647
>                 URL: https://issues.apache.org/jira/browse/SOLR-647
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 1.3
>            Reporter: Noble Paul
>            Assignee: Grant Ingersoll
>             Fix For: 1.3
>
>         Attachments: refcount_example.patch, solr-647.patch, solr-647.patch, 
> solr-647.patch, solr-647.patch, solr-647.patch, SOLR-647.patch, SOLR-647.patch
>
>
> The method _SolrCore.close()_ directly closes the core . It can cause 
> Exceptions for in-flight requests. The _close()_ method should just do a 
> decrement on refcount and the actual close must happen when the last request 
> being processed by that core instance is completed

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to