http2: fix graceful session close
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
tests and/or benchmarks are included -
documentation is changed or added -
commit message follows commit guidelines
This is tied to started with https://github.com/nodejs/node/issues/20630, then https://github.com/nodejs/node/pull/19852 and https://github.com/nodejs/node/pull/20772.
The description is in the commits. This should fix our ECONNRESET during graceful close bugs in http2 tests.
Basically now we use socket.end()
upon graceful close.
Also, I understand that now there is no way to actually destroy
the socket if needed. If the second commit is accepted I planned to 'overload' session.destroy()
to actually destroy the socket if we already initiated graceful close but want to destroy the session without waiting for FIN.
/cc @addaleax @jasnell @apapirovski @nodejs/http2