[infinispan-issues] [JBoss JIRA] (ISPN-3795) QueryInterceptor incorrectly relies on the return value of a RemoveCommand

Gustavo Fernandes (JIRA) issues at jboss.org
Fri May 12 10:53:00 EDT 2017


    [ https://issues.jboss.org/browse/ISPN-3795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13405764#comment-13405764 ] 

Gustavo Fernandes commented on ISPN-3795:
-----------------------------------------

Sent a PR for the specific case of the Remove and Replace command, where the value needed is available in the command itself, so it's trivial to detect if the command is conditional and avoid looking at the return value, and look in the command instead. 

The trouble with the context lookup is that if the command originates in a non-owner, there will not be any entry in the context. As [~pruivo] was saying, even if the entry is fetched remotely, it may change between the time it is fetched and the time the primary owner executes the command.



> QueryInterceptor incorrectly relies on the return value of a RemoveCommand
> --------------------------------------------------------------------------
>
>                 Key: ISPN-3795
>                 URL: https://issues.jboss.org/browse/ISPN-3795
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Embedded Querying
>    Affects Versions: 6.0.0.Final
>            Reporter: Dan Berindei
>            Assignee: Gustavo Fernandes
>
> QueryInterceptor uses the return value from RemoveCommand/ReplaceCommand to remove the value from the index.
> But both RemoveCommand and ReplaceCommand have a variant with an expected value parameter, and this variant return a boolean value instead of the removed/replaced value. In that case, the previous value won't be removed from the index.
> QueryInterceptor should probably use the previous value from the context entries to update the index instead.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the infinispan-issues mailing list