Skip to content

Conversation

@addaleax
Copy link
Member

Fixes: #20824
Fixes: #21560


@budarin@DaAitch@ariran5 Are you in a position to try this patch and see whether it fully resolves the issues you were experiencing?

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • commit message follows commit guidelines

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. labels Jun 27, 2018
@addaleaxaddaleax added the http2 Issues or PRs related to the http2 subsystem. label Jun 27, 2018
@addaleax
Copy link
MemberAuthor

@addaleax
Copy link
MemberAuthor

New CI: https://ci.nodejs.org/job/node-test-pull-request/15651/

@ariran5 Can you download the source for v10.5.0, apply https://patch-diff.githubusercontent.com/raw/nodejs/node/pull/21561.diff and build Node.js yourself?

Copy link
Contributor

@apapirovskiapapirovski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code SGTM but I couldn't reproduce on my Mac so I can't confirm the fix.

Copy link
Contributor

@DaAitchDaAitch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@addaleax cool, could not reproduce crashes.

Copy link
Contributor

@ryzokukenryzokuken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@addaleax I'll check if the test I wrote still crashes (highly unlikely), but code-wise LGTM.

@addaleaxaddaleax added the wip Issues and PRs that are still a work in progress. label Jun 29, 2018
@addaleax
Copy link
MemberAuthor

Thanks for the reviews – I’m labelling this as in progress to make sure we don’t land it until somebody has had time to look into why the test is flaky/how to fix it … We probably need to just attach a no-op error handler somewhere, but I couldn’t reproduce the issue on Linux

@jasnell
Copy link
Member

@addaleax I think you're right that a no-op error handler on the client side should help with the flakiness.

@apapirovski
Copy link
Contributor

I can reproduce the failure reliably but don't know how to fix. The test as is doesn't seem to work on MacOS since the destroy causes the error.

@ariran5
Copy link

Yes! Its work for me, fast reload not crush node

@addaleax
Copy link
MemberAuthor

Could somebody from e.g. @nodejs/platform-macos help me figure out the test here? I don’t have easy access to any of the systems on which is is failing…

@addaleax
Copy link
MemberAuthor

Maybe ping @nodejs/http2 ?

I guess alternatively I’ll ask for access to a build machine …

@sebdeckers
Copy link
Contributor

FWIW I tried adding the following handler to the server in the test case. On macOS High Sierra (10.13.6) it fails to emit the error event about half the time, so this test fails the other half of the time. Not sure why.

stream.on('error',common.mustCall((error)=>{constexpected='ECONNRESET'assert.strictEqual(error.errno,expected);assert.strictEqual(error.code,expected);}));

@addaleax
Copy link
MemberAuthor

New CI to see on which hosts exactly it’s failing (?): https://ci.nodejs.org/job/node-test-pull-request/15809/

@apapirovski
Copy link
Contributor

apapirovski commented Jul 15, 2018

The socket destroy is what causes the ECONNRESET. I don't really see a good way to get around it but I'll try to dig in today & tomorrow.

(The test might need to be rewritten to work on macOS from what I can tell.)

@addaleax
Copy link
MemberAuthor

I’ve pushed a change that might help get this back on track, even if it’s just a workaround.

If this is approved & lands with the hack in the test, I’ll open a new issue, since I think this is an API defect in the HTTP/2 API. (@apapirovski I still really appreciate you taking the time to do this – I’d assign that issue to you, if that’s okay, at least as long as I can’t really debug it myself. :/)

CI: https://ci.nodejs.org/job/node-test-pull-request/15888/

@addaleaxaddaleax removed the wip Issues and PRs that are still a work in progress. label Jul 15, 2018
@addaleax
Copy link
MemberAuthor

CI is green. Can somebody take a look at the added changes (only 6a04dbe)? I think it’s okay to do this because it addresses the most important issue, which is that this should not hard-crash the process.

Copy link
Member

@mcollinamcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@addaleax
Copy link
MemberAuthor

Landed in d94950e

@addaleaxaddaleax deleted the http2-stream-pipe branch July 16, 2018 18:27
addaleax added a commit that referenced this pull request Jul 16, 2018
PR-URL: #21561Fixes: #20824Fixes: #21560 Reviewed-By: Anatoli Papirovski <[email protected]> Reviewed-By: Ujjwal Sharma <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
targos pushed a commit that referenced this pull request Jul 16, 2018
PR-URL: #21561Fixes: #20824Fixes: #21560 Reviewed-By: Anatoli Papirovski <[email protected]> Reviewed-By: Ujjwal Sharma <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
@targostargos mentioned this pull request Jul 17, 2018
addaleax added a commit to addaleax/node that referenced this pull request Jul 17, 2018
addaleax added a commit that referenced this pull request Jul 23, 2018
Refs: #21836 Refs: #21561 PR-URL: #21861 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Minwoo Jung <[email protected]>
targos pushed a commit that referenced this pull request Jul 24, 2018
Refs: #21836 Refs: #21561 PR-URL: #21861 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Minwoo Jung <[email protected]>
@kjinkjin mentioned this pull request Sep 19, 2018
4 tasks
@addaleaxaddaleax mentioned this pull request Oct 20, 2018
2 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++Issues and PRs that require attention from people who are familiar with C++.http2Issues or PRs related to the http2 subsystem.lib / srcIssues and PRs related to general changes in the lib or src directory.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

http2 server + fast reload page the Stream is closed if app pushes unused assets

9 participants

@addaleax@nodejs-github-bot@jasnell@apapirovski@ariran5@sebdeckers@mcollina@DaAitch@ryzokuken