Open frankjkelly opened 6 days ago
cc: @rdhabalia This isn't as critical for me as the potential NonDurable subscription issue (which I am trying to get my arms around to help with reproduction). Anyway I just wanted to make sure this was captured. If the fix is straightforward (see my question above) I'd be happy to submit it.
Search before asking
Read release policy
Version
Latest on master i.e.4.1.0
Minimal reproduce step
1) Create two local pulsar clusters (for me it was in Minikube) with the same clustername (different services) 2) Confirm healthcheck is passing e.g.
3) Enable Cluster Migration from one cluster to the other e.g.
4) Monitor healthcheck on the original cluster
What did you expect to see?
The original "blue" cluster should appear to be healthy after cluster migration.
What did you see instead?
"Blue" cluster reports as not healthy. The impact in my system is that we have microservices which have readiness and liveness checks which depend on the Pulsar broker health check (based on admin client / API) and since that fails, the microservices then start to fail when the blue cluster is technically still operational.
Anything else?
I'm not sure it even makes sense logically to migrate the healthcheck. Looking here it is surprising that the healthcheck topic does not register as an Internal topic
https://github.com/apache/pulsar/blob/c266db236df5f57bf59df1b25a23521419b2ad02/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java#L2923-L2926
https://github.com/apache/pulsar/blob/c266db236df5f57bf59df1b25a23521419b2ad02/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/ExtensibleLoadManagerImpl.java#L822-L827
The healthcheck (heartbeat) topic name is defined here https://github.com/apache/pulsar/blob/c266db236df5f57bf59df1b25a23521419b2ad02/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/BrokersBase.java#L422-L427
I might be interested in submitting a PR but would need some clarity on whether to change the logic in PersistentTopic.java e.g.
or if it makes more sense that
ExtensibleLoadManagerImpl.isInternalTopic
returns true for the healthcheck topic also.Are you willing to submit a PR?