Version
v17.3.0
Platform
Linux pop-os 5.15.5-76051505-generic #202111250933~1638201579~21.04~09f1aa7-Ubuntu SMP Tue Nov 30 02: x86_64 x86_64 x86_64 GNU/Linux
Subsystem
http2
What steps will reproduce the bug?
consthttp2=require('http2');constserver=http2.createServer((request,response)=>{response.writeContinue();response.end();// Make it end('') and it emits `response` instead});server.listen(()=>{const{ port }=server.address();constsession=http2.connect(`http://localhost:${port}`);constrequest=session.request({':path': '/',':method': 'GET',});request.on('response',(headers)=>{console.log('got response',headers);});request.on('headers',()=>{console.log('got headers');});request.on('trailers',(trailers)=>{console.log('got trailers',trailers);});request.end();request.resume();request.on('end',()=>{session.close();server.close();});});How often does it reproduce? Is there a required condition?
Always.
What is the expected behavior?
got headers
got response [Object: null prototype] {
':status': 200,
date: 'Mon, 20 Dec 2021 08:27:48 GMT',
[Symbol(nodejs.http2.sensitiveHeaders)]: []
}What do you see instead?
got headers
+got trailers [Object: null prototype] {
':status': 200,
date: 'Mon, 20 Dec 2021 08:27:48 GMT',
[Symbol(nodejs.http2.sensitiveHeaders)]: []
}Additional information
I'm not sure if this is the expected behavior. HTTP/1 for comparison (trailers are empty):
consthttp=require('http');constserver=http.createServer((request,response)=>{response.writeContinue();response.end();});server.listen(()=>{const{ port }=server.address();constrequest=http.get(`http://localhost:${port}`,response=>{response.resume();response.on('end',()=>{console.log(response.trailers,response.rawTrailers);server.close();});});request.on('information',()=>{console.log('information');});});
Version
v17.3.0
Platform
Linux pop-os 5.15.5-76051505-generic #202111250933~1638201579~21.04~09f1aa7-Ubuntu SMP Tue Nov 30 02: x86_64 x86_64 x86_64 GNU/LinuxSubsystem
http2
What steps will reproduce the bug?
How often does it reproduce? Is there a required condition?
Always.
What is the expected behavior?
got headers got response [Object: null prototype] { ':status': 200, date: 'Mon, 20 Dec 2021 08:27:48 GMT', [Symbol(nodejs.http2.sensitiveHeaders)]: [] }What do you see instead?
got headers +got trailers [Object: null prototype] { ':status': 200, date: 'Mon, 20 Dec 2021 08:27:48 GMT', [Symbol(nodejs.http2.sensitiveHeaders)]: [] }Additional information
I'm not sure if this is the expected behavior. HTTP/1 for comparison (trailers are empty):