Commit 351bef6
committed
fix(runtime): keep error reporting alive on a terminating isolate
Building an error report runs JS (ToDetailString), which materializes an
armed termination interrupt; the next V8 call then answers Nothing, and
two ToChecked() sites in the formatter turned that into an unconditional
CHECK abort - reachable whenever worker.terminate() lands while a
genuine error is being reported. Both read through FromMaybe now, like
the rest of the file.
A spec pins the whole terminate-during-entry window: a worker whose
.mjs entry parks forever in top-level await is terminated mid-pump,
three times over, asserting no onerror fires on the dying worker and
that a fresh worker still round-trips - termination ends the pump
promptly and never masquerades as a timeout or an entry rejection.1 parent e11c9c3 commit 351bef6
3 files changed
Lines changed: 67 additions & 2 deletions
File tree
- test-app
- app/src/main/assets/app/tests
- runtime/src/main/cpp
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
Lines changed: 52 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
93 | 145 | | |
94 | 146 | | |
95 | 147 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1049 | 1049 | | |
1050 | 1050 | | |
1051 | 1051 | | |
1052 | | - | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
1053 | 1056 | | |
1054 | 1057 | | |
1055 | 1058 | | |
| |||
1135 | 1138 | | |
1136 | 1139 | | |
1137 | 1140 | | |
1138 | | - | |
| 1141 | + | |
1139 | 1142 | | |
1140 | 1143 | | |
1141 | 1144 | | |
| |||
0 commit comments