Uh oh!
There was an error while loading. Please reload this page.
http2: use session not socket timeout, tests - #15188
Conversation
apapirovski
commented
Sep 5, 2017
Also something I just noticed, this earlier PR should probably be revisited in light of this #15106 — I'm not sure if all of it is relevant anymore? |
fec3fdd to
d669eebCompareapapirovski
commented
Sep 5, 2017
mcollina
commented
Sep 6, 2017
mcollina
left a comment
There was a problem hiding this comment.
Can you please check if this affect performance anyhow?
Assuming it does not cause a regression.. LGTM
apapirovski
commented
Sep 6, 2017
Will test later today but I would be surprised if it doesn't affect performance at least a little bit. For one, |
mcollina
commented
Sep 6, 2017
I think the failures on Mac OS X are unrelated. Let us know about the performance impact. @jasnell what do you think? |
apapirovski
commented
Sep 6, 2017
Will need to figure out how to get h2load built on a Mac so this might take me a little while. Will update when I make it work. |
@mcollina It's not too bad after all. Not too surprising that there's a tiny bit of a hit since before this PR the timeouts were completely bugged and weren't doing anything (basically no-op). Same benchmark with Edit: This is after 40 runs on each node version btw. |
There was a problem hiding this comment.
should be faster to use the kState references here instead of the getters
There was a problem hiding this comment.
Posting an updated version shortly. Thanks for the review!
d669eeb to
5b74d59Comparejasnell
commented
Sep 7, 2017
There was too much red in the last CI run, trying again: https://ci.nodejs.org/job/node-test-commit/12214/ |
jasnell
commented
Sep 7, 2017
CI is definitely not green on this one: https://ci.nodejs.org/job/node-test-commit-linuxone/8427/nodes=rhel72-s390x/console @apapirovski ... can you take a look? btw, I really appreciate that you've jumped in on these. PR's from new contributors make me super happy :-) |
apapirovski
commented
Sep 7, 2017
I think the test might be flaky because of the low timeout. Will look into it. |
@jasnell can we run the CI again? I adjusted the timing to be less strict to match some of the other timeout tests. At 20ms the margin for error was too small. |
991825b to
16027d2Comparemcollina
commented
Sep 7, 2017
apapirovski
commented
Sep 7, 2017
mcollina
commented
Sep 7, 2017
This does not land cleanly on master, can you please rebase and squash? |
Change default timeout to be tracked on the session instead of the socket, as nghttp2 manages the socket and we would need to maintain two sets of timeouts for similar purpose. Also fixes session setTimeout to work as it wasn't getting _unrefActive correctly (was called on the handle). Fixes: nodejs#15158
16027d2 to
e06e885Compareapapirovski
commented
Sep 7, 2017
All done. |
mcollina
commented
Sep 7, 2017
Landed as 46133b5 |
Change default timeout to be tracked on the session instead of the socket, as nghttp2 manages the socket and we would need to maintain two sets of timeouts for similar purpose. Also fixes session setTimeout to work as it wasn't getting _unrefActive correctly (was called on the handle). Fixes: #15158 PR-URL: #15188 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Change default timeout to be tracked on the session instead of the socket, as nghttp2 manages the socket and we would need to maintain two sets of timeouts for similar purpose. Also fixes session setTimeout to work as it wasn't getting _unrefActive correctly (was called on the handle). Fixes: #15158 PR-URL: #15188 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Change default timeout to be tracked on the session instead of the socket, as nghttp2 manages the socket and we would need to maintain two sets of timeouts for similar purpose. Also fixes session setTimeout to work as it wasn't getting _unrefActive correctly (was called on the handle). Fixes: #15158 PR-URL: #15188 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Change default timeout to be tracked on the session instead of the socket, as nghttp2 manages the socket and we would need to maintain two sets of timeouts for similar purpose. Also fixes session setTimeout to work as it wasn't getting _unrefActive correctly (was called on the handle). Fixes: #15158 PR-URL: #15188 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Change default timeout to be tracked on the session instead of the socket, as nghttp2 manages the socket and we would need to maintain two sets of timeouts for similar purpose. Also fixes session setTimeout to work as it wasn't getting _unrefActive correctly (was called on the handle). Fixes: nodejs#15158 PR-URL: nodejs#15188 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
This fixes#15158. Two changes included:
_unrefActivewas being called on the handler rather than the actual sessionMarked as WIP as I think we need to investigate whether socket timeout is necessary anywhere and also because this needs a lot more tests, ideally.
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passesAffected core subsystem(s)
http2, test