Hi all i met a strange question .
Mongodb version 4.0.12 community
An replset with node A(primary node),B(sec node),C(sec node) i want to copy node B to new machine and then remove it .
My detail operation is login the pri and set the node B priority is 0 and hidden is true then reconfig it . i see it work and node B transfer to hidden node , next login the node B and exec db.fsyncLock() , it also work , next i scp node B dir to new machine then start it success and add it in the replset .
so as for now in the replset i have 4 nodes , ABCD ,but in the pri i exec rs.status() i see node B lastHeartbeatRecv still was t1(the time i add node C in the replset), and it won’t changed . but lastHeartbeat is still change to the last.
And if i exec rs.status() in the node B i just can see node A and node C i know it cause of node B was locked and can not update config , but in the result the node A and node C lastHeartbeat and lastHeartbeatRecv still was t1.
I exec the db.setLogLevel(2,“replication.heartbeats”); in the pri node and i can see in the mongod.log the node B heartbeat request to node A .
So why lastHeartbeatRecv is not updated in the node A and node C and node D ?