You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksandr Polovtsev (Jira)" <ji...@apache.org> on 2024/10/24 12:43:00 UTC
[jira] [Updated] (IGNITE-23536) PartitionScanPublisher can reorder requests
[ https://issues.apache.org/jira/browse/IGNITE-23536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksandr Polovtsev updated IGNITE-23536:
-----------------------------------------
Description:
{{PartitionScanPublisher}} has several problems:
# Since every {{Subscription#request}} and {{Subscription#cancel}} requests are remote requests, there's no guarantee that the order of execution on the remote node will be the same. This can lead to peculiar situations like a Cursor being cancelled before it is registered (if "cancel" arrives faster than "request"), or a Cursor being closed while still being iterated (if "cancel" and "request" are executed simultaneously).
# It is expected that all {{Subscriber}} callbacks are going to be strictly ordered. This is not true, because multiple {{request}} calls can get executed on different threads without HB relation.
# Some minute Flow contract details are not obeyed: {{onComplete}} and {{onError}} can be called even if the subscription was cancelled. {{onComplete}} can also be called after {{onError}}.
> PartitionScanPublisher can reorder requests
> -------------------------------------------
>
> Key: IGNITE-23536
> URL: https://issues.apache.org/jira/browse/IGNITE-23536
> Project: Ignite
> Issue Type: Bug
> Reporter: Aleksandr Polovtsev
> Assignee: Aleksandr Polovtsev
> Priority: Major
> Labels: ignite-3
>
> {{PartitionScanPublisher}} has several problems:
> # Since every {{Subscription#request}} and {{Subscription#cancel}} requests are remote requests, there's no guarantee that the order of execution on the remote node will be the same. This can lead to peculiar situations like a Cursor being cancelled before it is registered (if "cancel" arrives faster than "request"), or a Cursor being closed while still being iterated (if "cancel" and "request" are executed simultaneously).
> # It is expected that all {{Subscriber}} callbacks are going to be strictly ordered. This is not true, because multiple {{request}} calls can get executed on different threads without HB relation.
> # Some minute Flow contract details are not obeyed: {{onComplete}} and {{onError}} can be called even if the subscription was cancelled. {{onComplete}} can also be called after {{onError}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)