Commit 47b3c9e
Fix inverted async initial-connect retry docs
Commit 994554e rewrote the initial_connect_retry=async docs to claim
that transport, auth, upgrade and capability failures are all retried
indefinitely and never surfaced. That over-generalized the transport
retry-forever rule (Invariant B) onto endpoint-policy failures and
inverted a deliberately engineered, test-proven contract.
endpointPolicyFailureIsTerminal() returns ORPHAN || !hasEverConnected,
so on a foreground sender's initial connect an auth, upgrade or
durable-ack capability rejection is terminal: connectLoop latches it
via recordFatal and dispatches it to the async SenderErrorHandler (a
close() rethrow in ASYNC, a throw from build() in SYNC/OFF). Only
transport failures, and endpoint-policy failures once the wire has
been up at least once, retry forever. InitialConnectAsyncTest proves
both halves: testAsyncAuthFailureSurfacesTerminal the terminal path,
testAsyncNoServerRetriesForeverNoTerminal the transport path.
The wrong wording risked an operator not wiring an error_handler and
then silently buffering into store-and-forward on an auth
misconfiguration. Restore the carve-out in all four docstrings the
commit inverted: the Sender.InitialConnectMode.ASYNC javadoc, the
CursorWebSocketSendLoop class-doc and attemptInitialConnect() javadoc,
the QwpWebSocketSender ASYNC-case comment, and the
InitialConnectAsyncTest class javadoc. Documentation only; no runtime
behavior changes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent c1587c9 commit 47b3c9e
4 files changed
Lines changed: 35 additions & 20 deletions
File tree
- core/src
- main/java/io/questdb/client
- cutlass/qwp/client
- sf/cursor
- test/java/io/questdb/client/test/cutlass/qwp/client
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
795 | 795 | | |
796 | 796 | | |
797 | 797 | | |
798 | | - | |
799 | | - | |
800 | | - | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
801 | 808 | | |
802 | 809 | | |
803 | 810 | | |
| |||
Lines changed: 6 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3398 | 3398 | | |
3399 | 3399 | | |
3400 | 3400 | | |
3401 | | - | |
3402 | | - | |
3403 | | - | |
3404 | | - | |
| 3401 | + | |
| 3402 | + | |
| 3403 | + | |
| 3404 | + | |
| 3405 | + | |
| 3406 | + | |
3405 | 3407 | | |
3406 | 3408 | | |
3407 | 3409 | | |
| |||
Lines changed: 12 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
76 | 78 | | |
77 | 79 | | |
78 | 80 | | |
| |||
1505 | 1507 | | |
1506 | 1508 | | |
1507 | 1509 | | |
1508 | | - | |
1509 | | - | |
1510 | | - | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
1511 | 1515 | | |
1512 | 1516 | | |
1513 | 1517 | | |
| |||
Lines changed: 7 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
57 | 59 | | |
58 | 60 | | |
59 | 61 | | |
| |||
0 commit comments