lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tomás Fernández Löbbe (JIRA) <j...@apache.org>
Subject [jira] [Commented] (SOLR-11739) Solr can accept duplicated async IDs
Date Wed, 20 Dec 2017 18:40:03 GMT

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

Tomás Fernández Löbbe commented on SOLR-11739:
----------------------------------------------

bq.  feel like my suggestion was orthognal to to the concern you suggested in response. 
No, I meant "Solr won't re-execute the same request twice" *even if it receives it twice*.
What I say is that, by Solr rejecting the duplicate async ID it makes the admin request idempotent,
you could do something like:
{code}
while (!success) {
    try {
        performRequest(asyncId=1&cmd=CREATESOMETHING)
        success = true
    } catch (e) {
        //backoff
    }
 }
{code}

If there is some error back from {{performRequest}}, you don’t know if the request was scheduled
or not, but you don’t care if you know Solr won’t re-schedule it, you can just send it
again. Another use case could be workers watching a queue and executing actions, if the queue
delivers a message more than once, you don’t have to worry about sending the command to
Solr multiple times, and can assume a “request already exists” response from Solr to be
a success.

> Solr can accept duplicated async IDs
> ------------------------------------
>
>                 Key: SOLR-11739
>                 URL: https://issues.apache.org/jira/browse/SOLR-11739
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Tomás Fernández Löbbe
>            Assignee: Tomás Fernández Löbbe
>            Priority: Minor
>         Attachments: SOLR-11739.patch, SOLR-11739.patch
>
>
> Solr is supposed to reject duplicated async IDs, however, if the repeated IDs are sent
fast enough, a race condition in Solr will let the repeated IDs through. The duplicated task
is ran and and then silently fails to report as completed because the same async ID is already
in the completed map. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message