async_hooks: prevent async storage methods leaking to outer context#31950
async_hooks: prevent async storage methods leaking to outer context#31950Qard wants to merge 2 commits intonodejs:masterfrom
Conversation
|
Also, with the addition of the |
vdeturckheim
left a comment
There was a problem hiding this comment.
Couple comments, also, I am afraid this comes with a perf cost in the *SyncAndReturn(...) methods
|
Yes, there would be some perf cost to the |
Because of |
|
This PR was aimed to fix nested Yet, I don't see any tests that verify the fix. |
|
No it wasn't, I made this as an improvement not as a fix. I can rework it to verify that it fixes that too though, if you want, as it probably does. |
|
Added a test to verify it fixes that issue. |
|
I restored the Also, what do you all think about just making the |
I like the idea of keeping only a single pair of methods. But I'd rather rename |
|
@Qard I don't really understand the benchmarks, did you delete one message? Also, if I understand well, we still introduce a perf impact on the sync path that grows with the number of concurent instances. I'd like to avoid this case. |
|
Yes, I deleted a comment awhile ago as I ran the benchmark wrong. The correct benchmark is the one in the thread near the top of the PR. It shows that the performance difference is basically non-existent. |
5e07676 to
2b6a63c
Compare
|
Rebased as #31930 has landed now. |
2b6a63c to
23a0772
Compare
|
Probably worth waiting for #31998 to land first |
417ff73 to
2db2994
Compare
|
Marked this one with |
PR-URL: nodejs#31950 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
|
Sounds fine to me. 👍 |
`runSyncAndReturn` was removed from Node.js in nodejs/node#31950
PR-URL: nodejs#31950 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
PR-URL: nodejs#31950 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
PR-URL: #31950 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
PR-URL: #31950 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Notable Changes:
* async_hooks**:
* Merge `run` and `exit` methods (Andrey Pechkurov)
#31950
* Prevent sync methods of async storage exiting outer context
(Stephen Belanger)
#31950
* vm:
* Add `importModuleDynamically` option to compileFunction (Gus
Caplan)
#32985
New core collaborators:
With this release, we welcome two new Node.js core collaborators:
* Juan José Arboleda @juanarbol
#32906
* Andrey Pechkurov @puzpuzpuz
#32817
PR-URL: #33122
PR-URL: #31950 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
PR-URL: #31950 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Notable Changes:
* async_hooks**:
* Merge `run` and `exit` methods (Andrey Pechkurov)
#31950
* Prevent sync methods of async storage exiting outer context
(Stephen Belanger)
#31950
* vm:
* Add `importModuleDynamically` option to compileFunction (Gus
Caplan)
#32985
New core collaborators:
With this release, we welcome two new Node.js core collaborators:
* Juan José Arboleda @juanarbol
#32906
* Andrey Pechkurov @puzpuzpuz
#32817
PR-URL: #33122
Notable Changes:
* async_hooks**:
* Merge `run` and `exit` methods (Andrey Pechkurov)
#31950
* Prevent sync methods of async storage exiting outer context
(Stephen Belanger)
#31950
* vm:
* Add `importModuleDynamically` option to compileFunction (Gus
Caplan)
#32985
New core collaborators:
With this release, we welcome two new Node.js core collaborators:
* Juan José Arboleda @juanarbol
#32906
* Andrey Pechkurov @puzpuzpuz
#32817
PR-URL: #33122
|
@Qard Sorry if I misunderstand something, but was this merged only to 12.x but not to 14.x? |
|
@kibertoad a683e87 is the commit that landed on 14.x branch and is released with v14.0.0. |
The
_exitlogic is not actually necessary as explained here. This eliminates it and gives sync context runs a properAsyncResource.cc @vdeturckheim @puzpuzpuz @Flarna
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes