Commit 0e4af84
src: convert context_frame field in AsyncWrap to internal field
Using an internal field instead of a `v8::Global<>` removes
an unnecessary memory leak footgun.
This includes a test that demonstrates the issue, albeit
using internal APIs.
It's worth noting that if this PR is not accepted, we'd still
be missing memory tracking for the `context_frame_` field,
and we'd need to add it through our memory tracking API.
PR-URL: #62103
Backport-PR-URL: #62357
Reviewed-By: Anna Henningsen <anna@addaleax.net>1 parent f1b2861 commit 0e4af84Copy full SHA for 0e4af84
5 files changed
+80-19Lines changed: 80 additions & 19 deletions
File tree
Expand file treeCollapse file tree
Open diff view settings
Filter options
- src
- test/parallel
Expand file treeCollapse file tree
Open diff view settings
Collapse file
+19-1Lines changed: 19 additions & 1 deletion
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
50 | 50 | |
51 | 51 | |
52 | 52 | |
53 | | - |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | + |
54 | 72 | |
55 | 73 | |
56 | 74 | |
|
Collapse file
+8-15Lines changed: 8 additions & 15 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
348 | 348 | |
349 | 349 | |
350 | 350 | |
351 | | - |
| 351 | + |
352 | 352 | |
353 | 353 | |
354 | 354 | |
| ||
530 | 530 | |
531 | 531 | |
532 | 532 | |
533 | | - |
534 | | - |
535 | | - |
| 533 | + |
| 534 | + |
| 535 | + |
536 | 536 | |
537 | 537 | |
538 | 538 | |
| ||
635 | 635 | |
636 | 636 | |
637 | 637 | |
638 | | - |
| 638 | + |
639 | 639 | |
640 | 640 | |
641 | 641 | |
| ||
678 | 678 | |
679 | 679 | |
680 | 680 | |
681 | | - |
| 681 | + |
682 | 682 | |
683 | 683 | |
684 | 684 | |
| ||
687 | 687 | |
688 | 688 | |
689 | 689 | |
690 | | - |
691 | | - |
692 | | - |
693 | | - |
694 | | - |
695 | | - |
696 | | - |
697 | | - |
698 | | - |
| 690 | + |
| 691 | + |
699 | 692 | |
700 | 693 | |
701 | 694 | |
|
Collapse file
+3-3Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
119 | 119 | |
120 | 120 | |
121 | 121 | |
122 | | - |
| 122 | + |
| 123 | + |
123 | 124 | |
124 | 125 | |
125 | 126 | |
| ||
201 | 202 | |
202 | 203 | |
203 | 204 | |
| 205 | + |
204 | 206 | |
205 | 207 | |
206 | 208 | |
| ||
244 | 246 | |
245 | 247 | |
246 | 248 | |
247 | | - |
248 | | - |
249 | 249 | |
250 | 250 | |
251 | 251 | |
|
Collapse file
+1Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
21 | 21 | |
22 | 22 | |
23 | 23 | |
| 24 | + |
24 | 25 | |
25 | 26 | |
26 | 27 | |
|
Collapse file
test/parallel/test-async-local-storage-weak-asyncwrap-leak.js
Copy file name to clipboard+49Lines changed: 49 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | + |
0 commit comments