[CDRIVER-830] Exhaust cursors must destroy the stream if it hasn't finished Created: 04/Sep/15 Updated: 19/Oct/16 Resolved: 30/Sep/15 |
|
| Status: | Closed |
| Project: | C Driver |
| Component/s: | None |
| Affects Version/s: | 1.2-beta1 |
| Fix Version/s: | 1.2-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Hannes Magnusson | Assignee: | A. Jesse Jiryu Davis |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Description |
|
I haven't looked at how this works in 1.1, but in 1.2 when destroying an exhaust cursor code kicks in:
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. |
| Comments |
| Comment by Githook User [ 11/Jan/16 ] | |
|
Author: {u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}Message: | |
| Comment by Githook User [ 26/Oct/15 ] | |
|
Author: {u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}Message: | |
| Comment by Githook User [ 30/Sep/15 ] | |
|
Author: {u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}Message: | |
| Comment by Githook User [ 24/Sep/15 ] | |
|
Author: {u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}Message: The new mongoc_cluster_node_reconnect initiates a non-blocking reconnect cursor error: Failure during socket delivery: Socket not connected (57) With this change, apply connectTimeoutMS to the reconnection in single- | |
| Comment by A. Jesse Jiryu Davis [ 22/Sep/15 ] | |
|
Bug in the new mongoc_cluster_node_reconnect, it initiates a non-blocking reconnect but doesn't wait for connection to complete. If the driver is in single-threaded mode (so the scanner and the application share a connection) and immediately sends a message to that server, connection hasn't completed:
| |
| Comment by Githook User [ 16/Sep/15 ] | |
|
Author: {u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}Message: | |
| Comment by Hannes Magnusson [ 11/Sep/15 ] | |
|
Appears we already forbid exhaust on mongos, and you cannot set a limit and specify exhaust. | |
| Comment by Bernie Hackett [ 04/Sep/15 ] | |
|
Also need to forbid the use of exhaust with mongos. |