Denis Chudov created IGNITE-23352: ------------------------------------- Summary: 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
*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)