| 67 | // |
| 68 | |
| 69 | static TDuration FixTimeoutForSanitizer(const TDuration timeout) { |
| 70 | ui64 multiplier = 1; |
| 71 | if (NSan::ASanIsOn()) { |
| 72 | // https://github.com/google/sanitizers/wiki/AddressSanitizer |
| 73 | multiplier = 4; |
| 74 | } else if (NSan::MSanIsOn()) { |
| 75 | // via https://github.com/google/sanitizers/wiki/MemorySanitizer |
| 76 | multiplier = 3; |
| 77 | } else if (NSan::TSanIsOn()) { |
| 78 | // via https://clang.llvm.org/docs/ThreadSanitizer.html |
| 79 | multiplier = 15; |
| 80 | } |
| 81 | |
| 82 | return TDuration::FromValue(timeout.GetValue() * multiplier); |
| 83 | } |
| 84 | |
| 85 | TDuration THttp2Options::ConnectTimeout = FixTimeoutForSanitizer(TDuration::MilliSeconds(1000)); |
| 86 | TDuration THttp2Options::InputDeadline = TDuration::Max(); |