I tested using regtest for cases where the peer status was not updated.
Test method:
I used bitcoin-22.0rc3-win64.zip and bitcoin-22.0rc3-x86_64-linux-gnu.tar.gz.
(However, this problem is similar with bitcoin v0.20.0.)
PC-A (windows) has a blockchain up to height 3600.
PC-B (linux) boots from height 0. Both set -debug=net.
I set addnode=192.168.11.13(IP address of PC-B) in bitcoin.conf of PC-A.
On PC-A, I ran a python program that generates blocks every 10 seconds for 90 minutes.
Test results:
The "Synced Headers" and "Synced Blocks" for peer 0 (192.168.11.13) remained "Unknown" until the end, as shown in the following figure.

On the other hand, as shown in the following figure, the inbound peer 1 was updated once every two minutes on average.

As shown in the attachment, PC-B runs "Send Messages: sending header" on peer 1 once every two minutes on average, but never on peer 0. SendMessages_sending_header.txt
Measures: If PC-B receives a cmpctblock from peer 0 ("received: cmpctblock (261 bytes) peer = 0"), shouldn't it run a "sending header" on peer 0 after successfully adding a new block? Alternatively, peer 0 should not be excluded when executing "Send Messages: sending header" on a regular basis.
Question: Which constant determines the execution interval of "Send Messages: sending header" which is 2 minutes on average? Is it "PING_INTERVAL = 2 * 60"? Please tell me the provisional countermeasures. I want to try it.
