Failing node 24 on macos
@metcoder95
Can it be that your last PR regarding http2 broke on macos and node24?
Hard to say, seems related with set-cookies but possible some connect timeout; have we tried to isolate it?
The thing is, that before it was only node20. but now node 24 ci times out, meaning it does not close properly.
Seems related to
test at test/http2.js:567:1
✖ Dispatcher#Connect (393.716833ms)
Error [ERR_HTTP2_STREAM_ERROR]: Stream closed with error code NGHTTP2_INTERNAL_ERROR
at ClientHttp2Stream._destroy (node:internal/http2/core:2472:13)
at _destroy (node:internal/streams/destroy:122:10)
at ClientHttp2Stream.destroy (node:internal/streams/destroy:84:5)
at Writable.destroy (node:internal/streams/writable:1122:11)
at Http2Stream.onStreamClose (node:internal/http2/core:597:12) {
code: 'ERR_HTTP2_STREAM_ERROR'
}
test at test/http2.js:1:1
✖ test/http2.js (30002.941292ms)
Probably a http2.js not closing a server or so, so the test hangs.
I'll be trying to debug it but so far seems like a side effect coming from another source; cannot reproduce it in local with v24 and v22 and it seems like a re-run fix it.
Let's keep the issue open until sorting it out
Yes, it is very hard to reproduce. I am investigating core and looking for some kind of potential race condition. No luck till now.
Do you have a mac?
Sometimes you can reproduce such a bug by calling the script in bash script over and over. Maybe even setting the performance to low, maybe radically run prime95, hahaha.
Also another thing: github runners labeled with macos-latest are using arm64 or whatever the m1/2/3/4 chips are. Github runners with macos-13 label are using intel cpus. But I guess we dont compile nodejs for amd64.
Well, idk...
Yeah, I've a Mac, I've been trying to do it for a while but if it happens until the 1000th time, it might be an inconsistency on the OS then; I will still keep an eye on it and see if I can find a way to reproduce it consistently.
But I guess we dont compile nodejs for amd64.
Do you mean in the CI or Node binaries itself?
i mean compiling node 20 for macos on intel.
Anyhow:
I merged #4561, so now we can a little bit better investigate
Try to run test/http2-dispatcher.js with bun with bun test ./test/http2-dispatcher.js
I think this is the same issue we have on mac.
I already created #4564, to pass the bun issue.
So basically goAway is already setting the socket to null, so close can not process it properly.
But I lack knowledge regarding http2, so it feels like looking for the needle in the haystack.
I assume that if we get the problem solved for bun, we will also solve it for macos.
Let me take a look at it, thanks for that, it will definitely make things easier!
@metcoder95
Sry, i was inprecise in my words. One of the issues in bun is solved with not setting socket to null in goaway but there is still an issue in bun.