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 86c0d69
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
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 86c0d69

Please sign in to comment.