[
https://issues.apache.org/jira/browse/IGNITE-23352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denis Chudov resolved IGNITE-23352.
-----------------------------------
Resolution: Duplicate
> Eliminate races with storage cursors while handling replica messages
> --------------------------------------------------------------------
>
> Key: IGNITE-23352
> URL: https://issues.apache.org/jira/browse/IGNITE-23352
> Project: Ignite
> Issue Type: Bug
> Reporter: Denis Chudov
> Priority: Major
> Labels: ignite-3
>
> *Motivation*
> Storage cursors are not thread safe by design. Meanwhile, some code in
> PartitionReplicaListener is written without awareness of that. For example,
> cursor can be closed by scan close request while it's still in use by another
> thread in a handler of retrieve batch request.
> This can be solved, for example, by wrapping storage cursors with thread-safe
> decorator.
> *Definition of done*
> There are no possible races related to storage cursors in
> PartitionReplicaListener.
> *Implementation notes*
> It would be nice also to improve
> PartitionScanPublisher.PartitionScanSubscription#scanBatch: it should check
> #canceled flag on receiving retrieve batch response. Current implementation
> is correct but no actions are actually needed afte cancellation so they can
> be skipped.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)