Skip to content

Commit a784f90

Browse files
committed
Cap nAttempts penalty at 8 and switch to pow instead of a division loop.
On hosts that had spent some time with a failed internet connection their nAttempts penalty was going through the roof (e.g. thousands for all peers) and as a result the connect search was pegging the CPU and failing to get more than a 4 connections after days of running (because it was taking so long per try).
1 parent 8f955b9 commit a784f90

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/addrman.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,8 @@ double CAddrInfo::GetChance(int64_t nNow) const
6767
if (nSinceLastTry < 60 * 10)
6868
fChance *= 0.01;
6969

70-
// deprioritize 50% after each failed attempt
71-
for (int n = 0; n < nAttempts; n++)
72-
fChance /= 1.5;
70+
// deprioritize 66% after each failed attempt, but at most 1/28th to avoid the search taking forever or overly penalizing outages.
71+
fChance *= pow(0.66, min(nAttempts, 8));
7372

7473
return fChance;
7574
}

0 commit comments

Comments
 (0)