Commit 99e2ecd
Prove sender-pool unwind in build-failure test
testQueryPoolBuildFailureUnwindsSenderPool previously asserted only that
build() threw when the query pool could not connect. That cannot catch
the bug it targets: if build() threw and also leaked the already-built
sender pool's connected senders, the test still passed.
TestWebSocketServer now tracks connections from the server's view. It
increments a live counter when a handshake completes and decrements it
when that connection's read thread exits (the client closed its socket),
and keeps a monotonic handshake counter. The read loop runs inside a
try/finally so the decrement fires on every exit path.
The test now proves the unwind two ways: the server saw two ingest
handshakes (the senders connected, so the next check is not vacuous),
and the live connection count returns to zero after the failed build
(the unwind closed every sender). The live count is polled because the
server observes the client-side close asynchronously.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 4d75c79 commit 99e2ecd
2 files changed
Lines changed: 83 additions & 27 deletions
File tree
- core/src/test/java/io/questdb/client/test
- cutlass/qwp/websocket
Lines changed: 26 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| |||
274 | 275 | | |
275 | 276 | | |
276 | 277 | | |
277 | | - | |
278 | | - | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
279 | 282 | | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
280 | 293 | | |
281 | 294 | | |
282 | 295 | | |
| |||
396 | 409 | | |
397 | 410 | | |
398 | 411 | | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
399 | 423 | | |
Lines changed: 57 additions & 25 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
| |||
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
60 | 66 | | |
61 | 67 | | |
62 | 68 | | |
63 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
64 | 74 | | |
65 | 75 | | |
66 | 76 | | |
| |||
164 | 174 | | |
165 | 175 | | |
166 | 176 | | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
167 | 193 | | |
168 | 194 | | |
169 | 195 | | |
| |||
536 | 562 | | |
537 | 563 | | |
538 | 564 | | |
| 565 | + | |
| 566 | + | |
539 | 567 | | |
540 | | - | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | | - | |
545 | | - | |
546 | | - | |
547 | | - | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
553 | | - | |
554 | | - | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
555 | 571 | | |
556 | 572 | | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | | - | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
563 | 597 | | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
| 598 | + | |
| 599 | + | |
568 | 600 | | |
569 | 601 | | |
570 | 602 | | |
| |||
0 commit comments