Vyacheslav Koptilin created IGNITE-24673:
--------------------------------------------
Summary: ReplicaImpl does not remove placement driver listeners on
shutdown
Key: IGNITE-24673
URL: https://issues.apache.org/jira/browse/IGNITE-24673
Project: Ignite
Issue Type: Bug
Reporter: Vyacheslav Koptilin
Assignee: Vyacheslav Koptilin
The implementation of `ReplicaImpl` uses method references to add/remove
placement driver listeners:
{noformat}
public ReplicaImpl(...) {
...
placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED,
this::registerFailoverCallback);
placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED,
this::unregisterFailoverCallback);
}
public CompletableFuture<Void> shutdown() {
placementDriver.removeListener(PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED,
this::registerFailoverCallback);
placementDriver.removeListener(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED,
this::unregisterFailoverCallback);
...
}{noformat}
Using method references here lead to the fact that these event listeners are
not removed.
Need to introduce internal variable to hold a method reference that represents
listener.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)