Description
When bootstrapping of the socket is non responsive, the Helo operation will block on its Task, because the CancellationToken never times out. When this happens, the logs will show something similar to this:
2022-05-05T16:43:00.6144119-07:00 [DBG] Waiting for 00:00:02.5000000 before polling. (c8639b24)
|
2022-05-05T16:43:00.6861536-07:00 [DBG] Bootstrapping with node "localhost" (98ca0e33)
|
2022-05-05T16:43:01.0812242-07:00 [DBG] Setting TCP Keep-Alives using SocketOptions - enable keep-alives True, time 00:01:00, interval 00:00:01. (d66a37aa)
|
2022-05-05T16:43:01.0813600-07:00 [DBG] Setting TCP Keep-Alives using SocketOptions - enable keep-alives True, time 00:01:00, interval 00:00:01. (d66a37aa)
|
2022-05-05T16:43:01.2175591-07:00 [DBG] Starting connection initialization on server "localhost:9092". (5c5836f0)
|
2022-05-05T16:43:01.2180465-07:00 [DBG] Starting connection initialization on server "localhost:9092". (5c5836f0)
|
2022-05-05T16:43:01.3015577-07:00 [DBG] Executing op Helo on "localhost:9092" with key "{\"i\":\"3e8200a0bd193356/d7746e00de5fe50f\",\"a\":\"couchbase-net-sdk/3.2.6.0 (clr/.NET 5.0.10) (os/Microsoft Windows 10.0.19044)\"}" and opaque 3. (ebdc59ba)
|
2022-05-05T16:43:01.3015576-07:00 [DBG] Executing op Helo on "localhost:9092" with key "{\"i\":\"3e8200a0bd193356/9d38243f68303e20\",\"a\":\"couchbase-net-sdk/3.2.6.0 (clr/.NET 5.0.10) (os/Microsoft Windows 10.0.19044)\"}" and opaque 4. (ebdc59ba)
|
2022-05-05T16:43:03.1581536-07:00 [DBG] Done waiting, polling... (93018145)
|
2022-05-05T16:43:03.1622600-07:00 [DBG] Waiting for 00:00:02.5000000 before polling. (c8639b24)
|
2022-05-05T16:43:05.6908513-07:00 [DBG] Done waiting, polling... (93018145)
|
2022-05-05T16:43:05.6912647-07:00 [DBG] Waiting for 00:00:02.5000000 before polling. (c8639b24)
|
2022-05-05T16:43:08.1941663-07:00 [DBG] Done waiting, polling... (93018145)
|
2022-05-05T16:43:08.1942757-07:00 [DBG] Waiting for 00:00:02.5000000 before polling. (c8639b24)
|
2022-05-05T16:43:10.7218891-07:00 [DBG] Done waiting, polling... (93018145)
|
2022-05-05T16:43:10.7219778-07:00 [DBG] Waiting for 00:00:02.5000000 before polling. (c8639b24)
|
2022-05-05T16:43:13.2393129-07:00 [DBG] Done waiting, polling... (93018145)
|
2022-05-05T16:43:13.2397362-07:00 [DBG] Waiting for 00:00:02.5000000 before polling. (c8639b24)
|
2022-05-05T16:43:15.7611142-07:00 [DBG] Done waiting, polling... (93018145)
|
2022-05-05T16:43:15.7612824-07:00 [DBG] Waiting for 00:00:02.5000000 before polling. (c8639b24)
|
The background polling is done on another long running task/thread and continues, however, the SDK is effectively blocked waiting for the Helo Task to run to completion, which will never happen because the socket never returns a response.
Attachments
For Gerrit Dashboard: NCBC-3198 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
174554,9 | NCBC-3198: Blocked Task when Helo is called on a nonresponsive socket | master | couchbase-net-client | Status: MERGED | +2 | +1 |
174809,1 | (WIP) NCBC-3198: Fix regression from previous fix. | master | couchbase-net-client | Status: ABANDONED | -1 | +1 |
174811,2 | NCBC-3198: Fix regression from previous NCBC-3198 implementation | master | couchbase-net-client | Status: MERGED | +2 | +1 |
175959,2 | NCBC-3232: Ensure collections are enabled for all connections | master | couchbase-net-client | Status: MERGED | +2 | +1 |