Details
-
Bug
-
Resolution: Done
-
Major - P3
-
1.2-beta1
-
None
-
None
Description
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.
Attachments
Issue Links
- 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
-