diff options
author | Matt Mastracci <matthew@mastracci.com> | 2023-11-23 09:39:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-23 16:39:17 +0000 |
commit | 68a0877f8dc4a821b3688105b24953ddfaa9e189 (patch) | |
tree | faffc99c4a1fbd986ef4c85a46fe8e4767da07c8 /cli/tests/node_compat/test/parallel/test-event-emitter-errors.js | |
parent | eda3850f84f24b71e02512c1ba2d6bf2e3daa2fd (diff) |
fix(ext/http): avoid lockup in graceful shutdown (#21253)
Follow-up to #20822. cc @lrowe
The `httpServerExplicitResourceManagement` tests were randomly failing
on CI because of a race.
The `drain` waker was missing wakeup events if the listeners shut down
after the last HTTP response finished. If we lost the race (rare), the
server Rc would be dropped and we wouldn't poll it again.
This replaces the drain waker system with a signalling Rc that always
resolves when the refcount is about to become 1.
Fix verified by running serve tests in a loop:
```
for i in {0..100}; do cargo run --features=__http_tracing -- test
-A --unstable '/Users/matt/Documents/github/deno/deno/cli/tests/unit/ser
ve_test.ts' --filter httpServerExplicitResourceManagement; done;
```
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-event-emitter-errors.js')
0 files changed, 0 insertions, 0 deletions