Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
Reviewed
Description
BPOfferService#bpServiceToActive is not volatile, which may cause CommandProcessingThread to get the out-of-date active namenode.
When a failover occurs, the old ANN's CommandProcessingThread may read the outdated BPOfferService#bpServiceToActive and execute the NN's command. At this time, if the new ANN's CommandProcessingThread reads the new value of bpServiceToActive, split brain will occur; otherwise, the new ANN's commands cannot be executed normally, which is also unacceptable.
Attachments
Issue Links
- links to