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

ASF GitHub Bot commented on GEODE-2768:
---------------------------------------

Github user gesterzhou commented on a diff in the pull request:

    https://github.com/apache/geode/pull/451#discussion_r111261018
  
    --- Diff: 
geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java
 ---
    @@ -132,6 +133,25 @@ private LuceneIndexImpl getLuceneIndex(final Region 
region,
         try {
           index =
               (LuceneIndexImpl) service.getIndex(searchContext.getIndexName(), 
region.getFullPath());
    +      if (index == null && service instanceof LuceneServiceImpl) {
    +        if (((LuceneServiceImpl) 
service).getDefinedIndex(searchContext.getIndexName(),
    +            region.getFullPath()) != null) {
    +          // The node may be in the process of recovering, where we have 
the index defined but yet
    +          // to be recovered
    +          // If we retry fast enough, we could get a stack overflow based 
on the way function
    +          // execution is currently written
    +          // Instead we will add an artificial sleep to slow down the 
retry at this point
    +          // Hopefully in the future, the function execution would retry 
without adding to the stack
    +          // and this can be removed
    +          try {
    --- End diff --
    
    Is sleep 100 ms enough? How about using a 10 seconds timeout, but check if 
it's ready every 100ms?


> Lucene Queries executed before index is fully created should be retried
> -----------------------------------------------------------------------
>
>                 Key: GEODE-2768
>                 URL: https://issues.apache.org/jira/browse/GEODE-2768
>             Project: Geode
>          Issue Type: Bug
>          Components: lucene
>            Reporter: Jason Huynh
>            Assignee: Jason Huynh
>
> With the feature to destroy a Lucene Index, parts of the querying function 
> were changed to handle the event where we execute a query on an index that is 
> no longer present.  However, the scenario where we execute a query on an 
> index that is defined but has not been created can also arise. 
> We want to handle the case where we have defined the index, but have yet to 
> create it due to a brief window in restart.  



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to