Description
The pooled version of the test for CDRIVER-1139 can fail at the end of these lines:
/* insert a 'fake' server description and ensure that it is invalidated by
|
* driver */
|
host_list_init (&fake_host_list, AF_INET, "fakeaddress", 27033);
|
mongoc_server_description_init (
|
fake_sd, fake_host_list.host_and_port, fake_id);
|
|
|
fake_sd->type = MONGOC_SERVER_STANDALONE;
|
mongoc_set_add (td->servers, fake_id, fake_sd);
|
mongoc_topology_scanner_add (
|
client->topology->scanner, &fake_host_list, fake_id);
|
BSON_ASSERT (!mongoc_cluster_stream_for_server (
|
&client->cluster, fake_id, true, &error));
|
sd = (mongoc_server_description_t *) mongoc_set_get (td->servers, fake_id);
|
BSON_ASSERT (sd);
|
There's a race between the test and the background scanner. If the scanner is triggered between mongoc_cluster_stream_for_server and mongoc_set_get, the server description is removed and mongoc_set_get returns NULL. If the description is destroyed then I suppose there could be a crash, but I've only observed the NULL return:
Attachments
Issue Links
- is related to
-
CDRIVER-1139 Network err must invalidate server description
-
- Closed
-
- related to
-
CDRIVER-2394 /Topology/invalidate_server/ tests are slow with SSL
-
- Closed
-