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)

Reply via email to