Skip to content

Commit

Permalink
test: update and harden http2-reset-flood
Browse files Browse the repository at this point in the history
* use new maxSessionInvalidFrames to lower the needed frames
* slow down requests to generate less redundant after-session-close
  requests

PR-URL: #30534
Fixes: #30505
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: David Carlier <[email protected]>
Reviewed-By: James M Snell <[email protected]>
  • Loading branch information
lundibundi authored and addaleax committed Nov 30, 2019
1 parent 092a3c2 commit 5ecfd94
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions test/parallel/test-http2-reset-flood.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const { Worker, parentPort } = require('worker_threads');
// the two event loops intermixing, as we are writing in a busy loop here.

if (process.env.HAS_STARTED_WORKER) {
const server = http2.createServer();
const server = http2.createServer({ maxSessionInvalidFrames: 100 });
server.on('stream', (stream) => {
stream.respond({
'content-type': 'text/plain',
Expand Down Expand Up @@ -59,19 +59,22 @@ const worker = new Worker(__filename).on('message', common.mustCall((port) => {
});

let gotError = false;
let streamId = 1;

function writeRequests() {
for (let i = 1; !gotError; i += 2) {
for (let i = 1; i < 10 && !gotError; i++) {
h2header[3] = 1; // HEADERS
h2header[4] = 0x5; // END_HEADERS|END_STREAM
h2header.writeIntBE(1, 0, 3); // Length: 1
h2header.writeIntBE(i, 5, 4); // Stream ID
h2header.writeIntBE(streamId, 5, 4); // Stream ID
streamId += 2;
// 0x88 = :status: 200
if (!conn.write(Buffer.concat([h2header, Buffer.from([0x88])]))) {
process.nextTick(writeRequests);
break;
}
}
if (!gotError)
setImmediate(writeRequests);
}

conn.once('error', common.mustCall(() => {
Expand Down

0 comments on commit 5ecfd94

Please sign in to comment.