You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We used node 12.4 for so long because of #33875, Now we upgraded to 14.12 and after two days, this exception has happened more than 4 times and caused so many problems, for example all pending DB updates gone. I wonder why an error in one of the http2 streams should kill the whole process and can't even be catched in uncaughtException.
@jasnell Anyway as it seems there is no interest in resolving this issue, I just want to know if it's ok to replace this assertion with a normal if check in the source code so node continues to work?
I've actually been investigating this one and I think I'm close to a fix on it.
@jasnell As that was April not sure if you're still working on this. If not, would you mind sharing your conclusions/analysis and/or your half-finished fix attempt, so others could try to progress this if you no longer have the time? Many thanks 🙂
Activity
jasnell commentedon Apr 30, 2020
I've actually been investigating this one and I think I'm close to a fix on it.
rahbari commentedon Oct 5, 2020
I got this in node 14.12, Centos 7
rahbari commentedon Oct 6, 2020
We used node 12.4 for so long because of #33875, Now we upgraded to 14.12 and after two days, this exception has happened more than 4 times and caused so many problems, for example all pending DB updates gone. I wonder why an error in one of the http2 streams should kill the whole process and can't even be catched in uncaughtException.
@jasnell Anyway as it seems there is no interest in resolving this issue, I just want to know if it's ok to replace this assertion with a normal if check in the source code so node continues to work?
SimonWoolf commentedon Oct 28, 2020
@jasnell As that was April not sure if you're still working on this. If not, would you mind sharing your conclusions/analysis and/or your half-finished fix attempt, so others could try to progress this if you no longer have the time? Many thanks 🙂
davedoesdev commentedon Nov 15, 2020
Seeing this too but only on Node 12:
davedoesdev commentedon Nov 21, 2020
Fix and test here: https://github.com/nodejs/node/compare/v12.19.1...davedoesdev:issue-33156-http2-close-while-writing?expand=1
I can't seem to PR against 12.19.1
It's fixed on Node 15 due to
91ca221?branch=91ca22106c8d20dd4b09741c59c2f24f3a287277&diff=unified#diff-33f026e43570112875cf4c8eab6743496f3aa014329611128e348ec23d6f771cR84
(However, making that change doesn't make Node 12 pass, doesn't seem quite to follow the same path/timings)
davedoesdev commentedon Nov 21, 2020
Wouldn't harm to make the equivalent fix on Node 15 and then backport. There might be a case where it triggers but I couldn't get a test that did so.
davedoesdev commentedon Dec 1, 2020
@Trott Thanks for merging the fix to master. Do I need to do anything to get the fix to Node 12 merged?
https://github.com/nodejs/node/compare/v12.19.1...davedoesdev:issue-33156-http2-close-while-writing?expand=1
Trott commentedon Dec 1, 2020
Unfortunately, 83166fb doesn't currently cherry-pick cleanly over to the v12.x-staging branch. Unless something else lands first to make it cherry-pick cleanly there, it will need a backport PR. If you don't mind doing the work to put that together, the instructions are at https://github.com/nodejs/node/blob/1ed72f67f5ea82b36b8589e447619e98c004fa12/doc/guides/backporting-to-release-lines.md.
davedoesdev commentedon Dec 1, 2020
Thanks, I'll look at doing it soon.
http2: check write not scheduled in scope destructor
http2: check write not scheduled in scope destructor
http2: check write not scheduled in scope destructor
http2: check write not scheduled in scope destructor
http2: check write not scheduled in scope destructor