-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Open
Labels
http2Issues or PRs related to the http2 subsystem.Issues or PRs related to the http2 subsystem.
Description
- Version: 14.11.0
- Platform:
Linux solus 5.6.19-158.current #1 SMP PREEMPT Sun Jul 26 14:17:01 UTC 2020 x86_64 GNU/Linux
- Subsystem: http2
What steps will reproduce the bug?
const http = require('http2');
const server = http.createServer((request, response) => {
response.write('a');
setTimeout(() => {
// Does the same as response.end()
response.destroy();
}, 100);
});
// HTTP/2
server.listen(() => {
const session = http.connect(`http://localhost:${server.address().port}`);
const stream = session.request();
stream.resume();
stream.end();
stream.once('aborted', () => {
console.log('stream aborted');
});
stream.once('end', () => {
console.log('stream end');
session.close();
server.close();
});
stream.once('error', () => {
console.log('stream error');
});
});
// HTTP/1.1:
// server.listen(() => {
// const request = http.get(`http://localhost:${server.address().port}`, response => {
// console.log('got response');
// response.resume();
// response.once('aborted', () => {
// console.log('aborted');
// server.close();
// });
// response.once('end', () => {
// console.log('response end');
// });
// response.once('close', () => {
// console.log('response close');
// });
// });
// });
Note: it works as expected when the method is e.g. POST and stream.end()
is not called.
How often does it reproduce? Is there a required condition?
Always.
What is the expected behavior?
aborted
or an error
event.
What do you see instead?
end
event is emitted.
Metadata
Metadata
Assignees
Labels
http2Issues or PRs related to the http2 subsystem.Issues or PRs related to the http2 subsystem.