-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 1.2-beta1
-
Component/s: None
-
None
I haven't looked at how this works in 1.1, but in 1.2 when destroying an exhaust cursor code kicks in:
334 void 335 _mongoc_cursor_destroy (mongoc_cursor_t *cursor) 336 { 337 ENTRY; 338 339 bson_return_if_fail(cursor); 340 341 if (cursor->in_exhaust) { 342 cursor->client->in_exhaust = false; 343 if (!cursor->done) { 344 mongoc_cluster_disconnect_node ( 345 &cursor->client->cluster, 346 cursor->hint); 347 } 348 } else if (cursor->rpc.reply.cursor_id) { ....
The only problem is mongoc_cluster_disconnect_node() doesn't disconnect the node in single threaded mode.
The test that is supposed to confirm this behavior (test_exhaust_cursor) also seems to enforce that we don't disconnect the node as it starts failing when the node is actually disconnected.
- is related to
-
CDRIVER-683 Temporary write failure does not disconnect node
- Closed
-
CDRIVER-810 mongoc_cluster_disconnect_node() doesn't disconnect it in single threaded mode
- Closed
-
CDRIVER-894 test_exhaust_cursor fails on new reconnect code
- Closed
-
CDRIVER-890 mongoc_cluster_node_reconnect must always destroy server description?
- Closed