Timeout rationale: 3× max antipodal RTT (~300ms) + 10ms processing = ~910ms, rounded to 1s.
Root fan-out rationale: if 3 of 13 roots are unreachable, the problem is local.
State.Save() was using RLock but mutating s.snapshot.LastUpdated,
which is a write operation. This created a data race since other
goroutines could also hold a read lock and observe a partially
written timestamp. Changed to full Lock to ensure exclusive access
during the mutation.
@@ -156,8 +156,8 @@ func (s *State) Load() error {
// Save writes the current state to disk atomically.
func(s*State)Save()error{
s.mu.RLock()
defers.mu.RUnlock()
s.mu.Lock()
defers.mu.Unlock()
s.snapshot.LastUpdated=time.Now().UTC()
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.