hanmz commented on code in PR #21203:
URL: https://github.com/apache/pulsar/pull/21203#discussion_r1336601450


##########
pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractReplicator.java:
##########
@@ -116,6 +118,13 @@ public String getRemoteCluster() {
     // This method needs to be synchronized with disconnects else if there is 
a disconnect followed by startProducer
     // the end result can be disconnect.
     public synchronized void startProducer() {
+        // This method comes from some actives call and may be call again 
after disconnect
+        // so here we will first mark isClosed is false
+        isClosed = false;

Review Comment:
   > Once the stat is set to `closed`, it can no longer be recovered to 
`no-closed`. If the replicator needs to keep working, it shouldn't be set to 
`closed`, right?
   
   Normally this is the case. But here, we can call the method `startProducer` 
again after call the method `disconnect`.
   In fact, this class can be closed and opened again.
   
   Essentially, what we want to do here is to allow the retry thread 
(`checkTopicActiveAndRetryStartProducer`) to end normally when the replicator 
is closed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to