|
This seems extremely minor, but I believe the checkForInterruptFail fail point (introduced in SERVER-11695) can incorrectly fail when chance is set to 0 and the random number also happens to be 0:
https://github.com/mongodb/mongo/blob/419be507ff3ccafd1a5dcda9a40144ed6fb4901e/src/mongo/db/kill_current_op.cpp#L155-L161
double next = static_cast<double>(std::abs(checkForInterruptPRNG.nextInt64()));
|
double upperBound =
|
std::numeric_limits<int64_t>::max() * failPointInfo["chance"].numberDouble();
|
if (next > upperBound) {
|
return false;
|
}
|
return true;
|
I would expect chance: 0 to never reach the return true statement.
Version:
419be507ff3ccafd1a5dcda9a40144ed6fb4901e
|