mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-09 20:27:58 -05:00
staterecovery: fix ratelimit bug (#965)
* staterecovery: tmp disable test * staterecovery: fix request rate limiter * staterecovery: fix spotless
This commit is contained in:
@@ -64,10 +64,6 @@ class StaticVertxHttpRequestRateLimiter(
|
||||
}
|
||||
|
||||
private fun fireRequest(requestAndFutureResponse: RequestAndFutureResponse) {
|
||||
synchronized(this) {
|
||||
lastRequestFiredTime = monotonicClock.markNow()
|
||||
}
|
||||
|
||||
requestSender.makeRequest(requestAndFutureResponse.request)
|
||||
.handle { response, error ->
|
||||
if (error != null) {
|
||||
@@ -76,6 +72,8 @@ class StaticVertxHttpRequestRateLimiter(
|
||||
requestAndFutureResponse.future.complete(response)
|
||||
}
|
||||
}
|
||||
|
||||
lastRequestFiredTime = monotonicClock.markNow()
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
@@ -97,9 +95,8 @@ class StaticVertxHttpRequestRateLimiter(
|
||||
rateLimitBackoffDelay - lastRequestFiredTime.elapsedNow(),
|
||||
requestLogFormatter.toLogString(request)
|
||||
)
|
||||
synchronized(this) {
|
||||
requestQueue.add(req)
|
||||
}
|
||||
|
||||
requestQueue.add(req)
|
||||
}
|
||||
|
||||
return req.future
|
||||
|
||||
@@ -57,15 +57,10 @@ class VertxHttpRequestRateLimiterAndRetryTest {
|
||||
assertThat(baseReqSender.requestsTimesDiffs.size).isGreaterThanOrEqualTo(10)
|
||||
|
||||
// lenient assertion to avoid flakiness in the tests due to clock drift/precision
|
||||
val lenientRateLimitBackoffDelay = rateLimitBackoffDelay - 1.milliseconds
|
||||
baseReqSender.requestsTimesDiffs
|
||||
.drop(1)
|
||||
.forEachIndexed { index, delay ->
|
||||
assertThat(delay)
|
||||
.isGreaterThanOrEqualTo(lenientRateLimitBackoffDelay)
|
||||
.withFailMessage {
|
||||
"request $index time=$delay must be greater than rateLimitBackoffDelay=$rateLimitBackoffDelay"
|
||||
}
|
||||
.forEach { delay ->
|
||||
assertThat(delay).isGreaterThanOrEqualTo(rateLimitBackoffDelay)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user