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.

fixes: nodejs#43465
  • Loading branch information
nicksia-vgw committed Aug 8, 2022
1 parent f136e7e commit c030ded
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 c030ded

Please sign in to comment.