Commit e2ac6d9
committed
fix: key boundary-report dedup on the stage, and make the key total
The fingerprint was wrong on three counts and unsafe on a fourth.
It never saw the original error, so the commonest layout crash of all was
reported twice: when a layout is what threw, it is both the error that
produced the 500 and the thing re-run around every boundary it wraps. The
set is seeded with it now.
Keying on the whole stack cannot work, and neither can keying on the first
frame alone. The frames below the construction site record how the throw was
reached, so the same layout re-rendered around a different boundary never
matches itself; the construction site alone, meanwhile, is shared by two
genuinely different failures that go through one helper. Those two shapes are
indistinguishable by stack, so the key carries the STAGE instead. One layout
failing repeatedly inside the walk collapses to one report, while a shared
helper failing in both the walk and global-error reports twice.
The key could also throw. String(Object.create(null)) throws, and this runs
inside the catch that keeps the response alive, ahead of the guarded sinks,
so a null-prototype throw escaped ssrPage and took the 500 page with it. It
is total now and returns null when no safe key exists, which means report
rather than risk dropping. That also covers a non-Error throw, which used to
collapse every plain object to one key and silently drop the second.1 parent f72c16d commit e2ac6d9
3 files changed
Lines changed: 123 additions & 15 deletions
File tree
- .agents/skills/webjs/references
- packages/server/src/ssr
- test/ssr
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
217 | 217 | | |
218 | 218 | | |
219 | 219 | | |
220 | | - | |
| 220 | + | |
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
416 | 416 | | |
417 | 417 | | |
418 | 418 | | |
419 | | - | |
| 419 | + | |
420 | 420 | | |
421 | 421 | | |
422 | | - | |
423 | | - | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
424 | 444 | | |
425 | 445 | | |
426 | | - | |
| 446 | + | |
427 | 447 | | |
428 | | - | |
429 | | - | |
430 | | - | |
431 | | - | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
432 | 456 | | |
433 | 457 | | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
434 | 462 | | |
435 | 463 | | |
436 | 464 | | |
| |||
484 | 512 | | |
485 | 513 | | |
486 | 514 | | |
487 | | - | |
488 | | - | |
489 | | - | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
490 | 522 | | |
491 | 523 | | |
492 | 524 | | |
| |||
1099 | 1131 | | |
1100 | 1132 | | |
1101 | 1133 | | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
1102 | 1140 | | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
1103 | 1145 | | |
1104 | 1146 | | |
1105 | 1147 | | |
| |||
1151 | 1193 | | |
1152 | 1194 | | |
1153 | 1195 | | |
1154 | | - | |
| 1196 | + | |
1155 | 1197 | | |
1156 | 1198 | | |
1157 | 1199 | | |
| |||
1182 | 1224 | | |
1183 | 1225 | | |
1184 | 1226 | | |
1185 | | - | |
| 1227 | + | |
1186 | 1228 | | |
1187 | 1229 | | |
1188 | 1230 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2186 | 2186 | | |
2187 | 2187 | | |
2188 | 2188 | | |
2189 | | - | |
| 2189 | + | |
2190 | 2190 | | |
2191 | 2191 | | |
2192 | 2192 | | |
| |||
2291 | 2291 | | |
2292 | 2292 | | |
2293 | 2293 | | |
| 2294 | + | |
| 2295 | + | |
| 2296 | + | |
| 2297 | + | |
| 2298 | + | |
| 2299 | + | |
| 2300 | + | |
| 2301 | + | |
| 2302 | + | |
| 2303 | + | |
| 2304 | + | |
| 2305 | + | |
| 2306 | + | |
| 2307 | + | |
| 2308 | + | |
| 2309 | + | |
| 2310 | + | |
| 2311 | + | |
| 2312 | + | |
| 2313 | + | |
| 2314 | + | |
| 2315 | + | |
| 2316 | + | |
| 2317 | + | |
| 2318 | + | |
| 2319 | + | |
| 2320 | + | |
| 2321 | + | |
| 2322 | + | |
| 2323 | + | |
| 2324 | + | |
| 2325 | + | |
| 2326 | + | |
| 2327 | + | |
| 2328 | + | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
| 2332 | + | |
| 2333 | + | |
| 2334 | + | |
| 2335 | + | |
| 2336 | + | |
| 2337 | + | |
| 2338 | + | |
| 2339 | + | |
| 2340 | + | |
| 2341 | + | |
| 2342 | + | |
| 2343 | + | |
| 2344 | + | |
| 2345 | + | |
| 2346 | + | |
| 2347 | + | |
| 2348 | + | |
| 2349 | + | |
| 2350 | + | |
| 2351 | + | |
| 2352 | + | |
| 2353 | + | |
| 2354 | + | |
| 2355 | + | |
| 2356 | + | |
| 2357 | + | |
| 2358 | + | |
| 2359 | + | |
2294 | 2360 | | |
2295 | 2361 | | |
2296 | 2362 | | |
| |||
0 commit comments