Skip to content

Commit

Permalink
test: deflake http-server-request-timeout test
Browse files Browse the repository at this point in the history
parallel/http-server-request-timeouts-mixed test was sometimes failing due to insufficient tolerance between the connection timeout checking interval, and the expected timeout specified in the test. 

The checking interval was 500ms, and the request was checked for timeout exactly 500ms after the request was expected to timeout. This led to a timing condition where the next check would occur slightly after the request was expected to timeout.

This change makes the checking interval more frequent, and decouples the timeout for the check from the checking interval, otherwise the issue would persist.

fixes: #43465
  • Loading branch information
nicksia-vgw committed Aug 8, 2022
1 parent f136e7e commit 723159d
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions test/parallel/test-http-server-request-timeouts-mixed.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const responseOk = 'HTTP/1.1 200 OK\r\n';
const responseTimeout = 'HTTP/1.1 408 Request Timeout\r\n';

const headersTimeout = common.platformTimeout(2000);
const connectionsCheckingInterval = headersTimeout / 4;
const connectionsCheckingInterval = headersTimeout / 8;

const server = createServer({
headersTimeout,
Expand Down Expand Up @@ -76,7 +76,8 @@ server.listen(0, common.mustCall(() => {

// Send the second request, stop in the middle of the headers
request2.client.write(requestBodyPart1);
// Send the second request, stop in the middle of the headers

// Send the third request and stop in the middle of the headers
request3.client.write(requestBodyPart1);
}, headersTimeout * 0.2);

Expand Down Expand Up @@ -111,7 +112,7 @@ server.listen(0, common.mustCall(() => {

assert(request1.response.startsWith(responseOk));
assert(request2.response.startsWith(responseTimeout)); // It is expired due to headersTimeout
}, headersTimeout * 1.2 + connectionsCheckingInterval);
}, headersTimeout * 1.4);

setTimeout(() => {
// Complete the body for the fourth request
Expand Down

0 comments on commit 723159d

Please sign in to comment.