From 3c6650a7834ac7f2a37085097e552ec9007a40ce Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 30 Jan 2024 13:34:02 -0800 Subject: [PATCH 1/9] Topology description --- .../mongoc-server-description-private.h | 4 +++ .../src/mongoc/mongoc-server-description.c | 12 ++++++++ .../mongoc-topology-description-private.h | 6 ++++ .../src/mongoc/mongoc-topology-description.c | 29 +++++++++++++++++++ src/libmongoc/src/mongoc/mongoc-topology.c | 23 ++++++++------- 5 files changed, 64 insertions(+), 10 deletions(-) diff --git a/src/libmongoc/src/mongoc/mongoc-server-description-private.h b/src/libmongoc/src/mongoc/mongoc-server-description-private.h index 58cfbb65704..444990844ca 100644 --- a/src/libmongoc/src/mongoc/mongoc-server-description-private.h +++ b/src/libmongoc/src/mongoc/mongoc-server-description-private.h @@ -241,4 +241,8 @@ bool mongoc_server_description_has_service_id ( const mongoc_server_description_t *description); +/* Generate human-readable description of the server */ +bson_string_t * +mongoc_server_description_info (const mongoc_server_description_t *sd); + #endif diff --git a/src/libmongoc/src/mongoc/mongoc-server-description.c b/src/libmongoc/src/mongoc/mongoc-server-description.c index b1de91f9e97..d850a8ad657 100644 --- a/src/libmongoc/src/mongoc/mongoc-server-description.c +++ b/src/libmongoc/src/mongoc/mongoc-server-description.c @@ -1281,3 +1281,15 @@ mongoc_server_description_has_service_id ( } return true; } + +bson_string_t * +mongoc_server_description_info (const mongoc_server_description_t *sd) +{ + bson_string_t *info = bson_string_new (NULL); + bson_string_append_printf (info, + "%s server_type: %s, rtt: %ld", + sd->host.host_and_port, + mongoc_server_description_type (sd), + sd->round_trip_time_msec); + return info; +} diff --git a/src/libmongoc/src/mongoc/mongoc-topology-description-private.h b/src/libmongoc/src/mongoc/mongoc-topology-description-private.h index 4e8f49ad169..14631e58f63 100644 --- a/src/libmongoc/src/mongoc/mongoc-topology-description-private.h +++ b/src/libmongoc/src/mongoc/mongoc-topology-description-private.h @@ -55,6 +55,7 @@ struct _mongoc_topology_description_t { * see Driver Sessions Spec. */ bson_t cluster_time; + /* smallest seen logicalSessionTimeoutMinutes, or -1 if any server has no * logicalSessionTimeoutMinutes. see Server Discovery and Monitoring Spec */ int64_t session_timeout_minutes; @@ -194,4 +195,9 @@ _mongoc_topology_description_clear_connection_pool ( uint32_t server_id, const bson_oid_t *service_id); + +/* Generate human-readable description of the topology */ +bson_string_t * +_mongoc_topology_description_info (const mongoc_topology_description_t *td); + #endif /* MONGOC_TOPOLOGY_DESCRIPTION_PRIVATE_H */ diff --git a/src/libmongoc/src/mongoc/mongoc-topology-description.c b/src/libmongoc/src/mongoc/mongoc-topology-description.c index b7b35a12c00..16406d0ef0f 100644 --- a/src/libmongoc/src/mongoc/mongoc-topology-description.c +++ b/src/libmongoc/src/mongoc/mongoc-topology-description.c @@ -2602,3 +2602,32 @@ _mongoc_topology_description_clear_connection_pool ( mc_tpl_sd_increment_generation (sd, service_id); } + +bool +_append_server_info (void *sd, void *info) +{ + bson_string_t *server_info = + mongoc_server_description_info ((mongoc_server_description_t *) sd); + bson_string_append_printf ( + (bson_string_t *) info, "<%s>, ", server_info->str); + bson_string_free (server_info, true); + return true; +} + +bson_string_t * +_mongoc_topology_description_info (const mongoc_topology_description_t *td) +{ + bson_string_t *info = bson_string_new (NULL); + if (!td->_servers_ || td->_servers_->items_len == 0) { + bson_string_append (info, "No available servers."); + return info; + } + + bson_string_append_printf (info, + "Topology type: %s, servers: [", + mongoc_topology_description_type (td)); + mongoc_set_for_each (td->_servers_, _append_server_info, (void *) info); + bson_string_append_c (info, ']'); + + return info; +} diff --git a/src/libmongoc/src/mongoc/mongoc-topology.c b/src/libmongoc/src/mongoc/mongoc-topology.c index 8763b7ce632..a419582bf67 100644 --- a/src/libmongoc/src/mongoc/mongoc-topology.c +++ b/src/libmongoc/src/mongoc/mongoc-topology.c @@ -1168,9 +1168,6 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, bool *must_use_primary, bson_error_t *error) { - static const char *timeout_msg = - "No suitable servers found: `serverSelectionTimeoutMS` expired"; - mongoc_topology_scanner_t *ts; int r; int64_t local_threshold_ms; @@ -1182,6 +1179,8 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, int64_t heartbeat_msec; uint32_t server_id; mc_shared_tpld td = mc_tpld_take_ref (topology); + const char *timeout_msg = + "No suitable servers found: `serverSelectionTimeoutMS` expired."; /* These names come from the Server Selection Spec pseudocode */ int64_t loop_start; /* when we entered this function */ @@ -1242,13 +1241,15 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, if (scan_ready > expire_at && !try_once) { /* selection timeout will expire before min heartbeat passes */ - _mongoc_server_selection_error ( - "No suitable servers found: " - "`serverselectiontimeoutms` timed out", - &scanner_error, - error); + bson_string_t *topology_info = + _mongoc_topology_description_info (td.ptr); + bson_string_t *msg = bson_string_new_printf ( + "%s %s", timeout_msg, topology_info->str); + _mongoc_server_selection_error (msg->str, &scanner_error, error); server_id = 0; + bson_string_free (topology_info, true); + bson_string_free (msg, true); goto done; } @@ -1976,6 +1977,7 @@ static void _topology_collect_errors (const mongoc_topology_description_t *td, bson_error_t *error_out) { + // zz const mongoc_server_description_t *server_description; bson_string_t *error_message; @@ -1991,8 +1993,9 @@ _topology_collect_errors (const mongoc_topology_description_t *td, if (error_message->len > 0) { bson_string_append_c (error_message, ' '); } - bson_string_append_printf ( - error_message, "[%s]", server_description->error.message); + bson_string_append_printf (error_message, + "[%s (SERVER TYPE)]", + server_description->error.message); /* The last error's code and domain wins. */ error_out->code = error->code; error_out->domain = error->domain; From 68a4b108c0b39e9113726cd9c40b6adace9fec5a Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 30 Jan 2024 13:34:30 -0800 Subject: [PATCH 2/9] bson_new_printf --- src/libbson/src/bson/bson-string.c | 17 +++++++++++++++++ src/libbson/src/bson/bson-string.h | 2 ++ src/libbson/tests/test-bcon-basic.c | 2 +- src/libbson/tests/test-string.c | 9 +++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/libbson/src/bson/bson-string.c b/src/libbson/src/bson/bson-string.c index 36c4c5ab498..bd3073b8285 100644 --- a/src/libbson/src/bson/bson-string.c +++ b/src/libbson/src/bson/bson-string.c @@ -253,6 +253,23 @@ bson_string_append_printf (bson_string_t *string, const char *format, ...) bson_free (ret); } +bson_string_t * +bson_string_new_printf (const char *format, ...) +{ + va_list args; + char *s; + + BSON_ASSERT (format); + + va_start (args, format); + s = bson_strdupv_printf (format, args); + va_end (args); + + bson_string_t *ret = bson_string_new (s); + bson_free (s); + return ret; +} + /* *-------------------------------------------------------------------------- diff --git a/src/libbson/src/bson/bson-string.h b/src/libbson/src/bson/bson-string.h index 467a4567cf6..b0ae463dafe 100644 --- a/src/libbson/src/bson/bson-string.h +++ b/src/libbson/src/bson/bson-string.h @@ -50,6 +50,8 @@ bson_string_append_unichar (bson_string_t *string, bson_unichar_t unichar); BSON_EXPORT (void) bson_string_append_printf (bson_string_t *string, const char *format, ...) BSON_GNUC_PRINTF (2, 3); +BSON_EXPORT (bson_string_t *) +bson_string_new_printf (const char *format, ...) BSON_GNUC_PRINTF (1, 2); BSON_EXPORT (void) bson_string_truncate (bson_string_t *string, uint32_t len); BSON_EXPORT (char *) diff --git a/src/libbson/tests/test-bcon-basic.c b/src/libbson/tests/test-bcon-basic.c index 7e9f3d135a6..a65869b43dc 100644 --- a/src/libbson/tests/test-bcon-basic.c +++ b/src/libbson/tests/test-bcon-basic.c @@ -293,7 +293,7 @@ test_int32 (void) bson_init (&bcon); bson_init (&expected); - bson_append_int32 (&expected, "foo", -1, 100); + bson_append_int32 (&expected, "foobar", 3, 100); BCON_APPEND (&bcon, "foo", BCON_INT32 (100)); diff --git a/src/libbson/tests/test-string.c b/src/libbson/tests/test-string.c index 8efd004b352..d9b6b5c965b 100644 --- a/src/libbson/tests/test-string.c +++ b/src/libbson/tests/test-string.c @@ -107,6 +107,15 @@ test_bson_string_append_printf (void) bson_string_free (str, true); } +static void +test_bson_string_new_printf (void) +{ + bson_string_t *str = + bson_string_new_printf ("%s %d %d %d", "testing", 1, 2, 3); + BSON_ASSERT (!strcmp (str->str, "testing 1 2 3")); + bson_string_free (str, true); +} + static void test_bson_string_append_unichar (void) From 6a757daad2229513ddceea607c7fa505347f5a48 Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Wed, 31 Jan 2024 14:44:55 -0800 Subject: [PATCH 3/9] Append topology type to error --- src/libbson/tests/test-bcon-basic.c | 2 +- .../src/mongoc/mongoc-error-private.h | 4 +++ src/libmongoc/src/mongoc/mongoc-error.c | 9 ++++++ .../mongoc-server-description-private.h | 4 --- .../src/mongoc/mongoc-server-description.c | 12 -------- .../mongoc-topology-description-private.h | 6 ---- .../src/mongoc/mongoc-topology-description.c | 29 ------------------- src/libmongoc/src/mongoc/mongoc-topology.c | 28 +++++++++--------- .../test-mongoc-server-selection-errors.c | 12 +++++--- 9 files changed, 37 insertions(+), 69 deletions(-) diff --git a/src/libbson/tests/test-bcon-basic.c b/src/libbson/tests/test-bcon-basic.c index a65869b43dc..7e9f3d135a6 100644 --- a/src/libbson/tests/test-bcon-basic.c +++ b/src/libbson/tests/test-bcon-basic.c @@ -293,7 +293,7 @@ test_int32 (void) bson_init (&bcon); bson_init (&expected); - bson_append_int32 (&expected, "foobar", 3, 100); + bson_append_int32 (&expected, "foo", -1, 100); BCON_APPEND (&bcon, "foo", BCON_INT32 (100)); diff --git a/src/libmongoc/src/mongoc/mongoc-error-private.h b/src/libmongoc/src/mongoc/mongoc-error-private.h index 073c76d84cf..29c9d55a7cb 100644 --- a/src/libmongoc/src/mongoc/mongoc-error-private.h +++ b/src/libmongoc/src/mongoc/mongoc-error-private.h @@ -97,4 +97,8 @@ _mongoc_error_is_server (const bson_error_t *error); bool _mongoc_error_is_auth (const bson_error_t *error); +/* Try to append `s` to `error`. Truncates `s` if `error` is out of space. */ +void +_mongoc_error_append (bson_error_t *error, const char *s); + BSON_END_DECLS diff --git a/src/libmongoc/src/mongoc/mongoc-error.c b/src/libmongoc/src/mongoc/mongoc-error.c index b25d910ac32..bcb9ace6deb 100644 --- a/src/libmongoc/src/mongoc/mongoc-error.c +++ b/src/libmongoc/src/mongoc/mongoc-error.c @@ -327,3 +327,12 @@ _mongoc_error_is_auth (const bson_error_t *error) return error->domain == MONGOC_ERROR_CLIENT && error->code == MONGOC_ERROR_CLIENT_AUTHENTICATE; } + +void +_mongoc_error_append (bson_error_t *error, const char *s) +{ + BSON_ASSERT (error); + const size_t error_len = strlen (error->message); + const size_t remaining = sizeof (error->message) - error_len; + bson_strncpy (error->message + error_len, s, remaining); +} \ No newline at end of file diff --git a/src/libmongoc/src/mongoc/mongoc-server-description-private.h b/src/libmongoc/src/mongoc/mongoc-server-description-private.h index 444990844ca..58cfbb65704 100644 --- a/src/libmongoc/src/mongoc/mongoc-server-description-private.h +++ b/src/libmongoc/src/mongoc/mongoc-server-description-private.h @@ -241,8 +241,4 @@ bool mongoc_server_description_has_service_id ( const mongoc_server_description_t *description); -/* Generate human-readable description of the server */ -bson_string_t * -mongoc_server_description_info (const mongoc_server_description_t *sd); - #endif diff --git a/src/libmongoc/src/mongoc/mongoc-server-description.c b/src/libmongoc/src/mongoc/mongoc-server-description.c index d850a8ad657..b1de91f9e97 100644 --- a/src/libmongoc/src/mongoc/mongoc-server-description.c +++ b/src/libmongoc/src/mongoc/mongoc-server-description.c @@ -1281,15 +1281,3 @@ mongoc_server_description_has_service_id ( } return true; } - -bson_string_t * -mongoc_server_description_info (const mongoc_server_description_t *sd) -{ - bson_string_t *info = bson_string_new (NULL); - bson_string_append_printf (info, - "%s server_type: %s, rtt: %ld", - sd->host.host_and_port, - mongoc_server_description_type (sd), - sd->round_trip_time_msec); - return info; -} diff --git a/src/libmongoc/src/mongoc/mongoc-topology-description-private.h b/src/libmongoc/src/mongoc/mongoc-topology-description-private.h index 14631e58f63..4e8f49ad169 100644 --- a/src/libmongoc/src/mongoc/mongoc-topology-description-private.h +++ b/src/libmongoc/src/mongoc/mongoc-topology-description-private.h @@ -55,7 +55,6 @@ struct _mongoc_topology_description_t { * see Driver Sessions Spec. */ bson_t cluster_time; - /* smallest seen logicalSessionTimeoutMinutes, or -1 if any server has no * logicalSessionTimeoutMinutes. see Server Discovery and Monitoring Spec */ int64_t session_timeout_minutes; @@ -195,9 +194,4 @@ _mongoc_topology_description_clear_connection_pool ( uint32_t server_id, const bson_oid_t *service_id); - -/* Generate human-readable description of the topology */ -bson_string_t * -_mongoc_topology_description_info (const mongoc_topology_description_t *td); - #endif /* MONGOC_TOPOLOGY_DESCRIPTION_PRIVATE_H */ diff --git a/src/libmongoc/src/mongoc/mongoc-topology-description.c b/src/libmongoc/src/mongoc/mongoc-topology-description.c index 16406d0ef0f..b7b35a12c00 100644 --- a/src/libmongoc/src/mongoc/mongoc-topology-description.c +++ b/src/libmongoc/src/mongoc/mongoc-topology-description.c @@ -2602,32 +2602,3 @@ _mongoc_topology_description_clear_connection_pool ( mc_tpl_sd_increment_generation (sd, service_id); } - -bool -_append_server_info (void *sd, void *info) -{ - bson_string_t *server_info = - mongoc_server_description_info ((mongoc_server_description_t *) sd); - bson_string_append_printf ( - (bson_string_t *) info, "<%s>, ", server_info->str); - bson_string_free (server_info, true); - return true; -} - -bson_string_t * -_mongoc_topology_description_info (const mongoc_topology_description_t *td) -{ - bson_string_t *info = bson_string_new (NULL); - if (!td->_servers_ || td->_servers_->items_len == 0) { - bson_string_append (info, "No available servers."); - return info; - } - - bson_string_append_printf (info, - "Topology type: %s, servers: [", - mongoc_topology_description_type (td)); - mongoc_set_for_each (td->_servers_, _append_server_info, (void *) info); - bson_string_append_c (info, ']'); - - return info; -} diff --git a/src/libmongoc/src/mongoc/mongoc-topology.c b/src/libmongoc/src/mongoc/mongoc-topology.c index a419582bf67..8330c69978b 100644 --- a/src/libmongoc/src/mongoc/mongoc-topology.c +++ b/src/libmongoc/src/mongoc/mongoc-topology.c @@ -1168,6 +1168,9 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, bool *must_use_primary, bson_error_t *error) { + static const char *timeout_msg = + "No suitable servers found: `serverSelectionTimeoutMS` expired"; + mongoc_topology_scanner_t *ts; int r; int64_t local_threshold_ms; @@ -1179,8 +1182,10 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, int64_t heartbeat_msec; uint32_t server_id; mc_shared_tpld td = mc_tpld_take_ref (topology); - const char *timeout_msg = - "No suitable servers found: `serverSelectionTimeoutMS` expired."; + + bson_string_t *topology_type = bson_string_new (". Topology type: "); + bson_string_append (topology_type, + mongoc_topology_description_type (td.ptr)); /* These names come from the Server Selection Spec pseudocode */ int64_t loop_start; /* when we entered this function */ @@ -1241,15 +1246,10 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, if (scan_ready > expire_at && !try_once) { /* selection timeout will expire before min heartbeat passes */ - bson_string_t *topology_info = - _mongoc_topology_description_info (td.ptr); - bson_string_t *msg = bson_string_new_printf ( - "%s %s", timeout_msg, topology_info->str); - _mongoc_server_selection_error (msg->str, &scanner_error, error); + _mongoc_server_selection_error ( + timeout_msg, &scanner_error, error); server_id = 0; - bson_string_free (topology_info, true); - bson_string_free (msg, true); goto done; } @@ -1402,6 +1402,10 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, } done: + if (error) { + _mongoc_error_append (error, topology_type->str); + } + bson_string_free (topology_type, true); mc_tpld_drop_ref (&td); return server_id; } @@ -1977,7 +1981,6 @@ static void _topology_collect_errors (const mongoc_topology_description_t *td, bson_error_t *error_out) { - // zz const mongoc_server_description_t *server_description; bson_string_t *error_message; @@ -1993,9 +1996,8 @@ _topology_collect_errors (const mongoc_topology_description_t *td, if (error_message->len > 0) { bson_string_append_c (error_message, ' '); } - bson_string_append_printf (error_message, - "[%s (SERVER TYPE)]", - server_description->error.message); + bson_string_append_printf ( + error_message, "[%s]", server_description->error.message); /* The last error's code and domain wins. */ error_out->code = error->code; error_out->domain = error->domain; diff --git a/src/libmongoc/tests/test-mongoc-server-selection-errors.c b/src/libmongoc/tests/test-mongoc-server-selection-errors.c index e0de9960f2a..57f92e25b0d 100644 --- a/src/libmongoc/tests/test-mongoc-server-selection-errors.c +++ b/src/libmongoc/tests/test-mongoc-server-selection-errors.c @@ -93,7 +93,8 @@ test_server_selection_error_dns_direct_single (void) server_selection_error_dns ( "mongodb://example-localhost.invalid:27017/", "No suitable servers found (`serverSelectionTryOnce` set): " - "[Fake error for 'example-localhost.invalid']", + "[Fake error for 'example-localhost.invalid']" + ". Topology type: Single", false, false); } @@ -106,7 +107,8 @@ test_server_selection_error_dns_direct_pooled (void *ctx) server_selection_error_dns ( "mongodb://example-localhost.invalid:27017/", "No suitable servers found: `serverSelectionTimeoutMS` expired: " - "[Fake error for 'example-localhost.invalid']", + "[Fake error for 'example-localhost.invalid']" + ". Topology type: Single", false, true); } @@ -119,7 +121,8 @@ test_server_selection_error_dns_multi_fail_single (void) "example-localhost.invalid:27017,other-example-localhost.invalid:27017/", "No suitable servers found (`serverSelectionTryOnce` set):" " [Fake error for 'example-localhost.invalid']" - " [Fake error for 'other-example-localhost.invalid']", + " [Fake error for 'other-example-localhost.invalid']" + ". Topology type: Unknown", false, false); } @@ -134,7 +137,8 @@ test_server_selection_error_dns_multi_fail_pooled (void *ctx) "example-localhost.invalid:27017,other-example-localhost.invalid:27017/", "No suitable servers found: `serverSelectionTimeoutMS` expired:" " [Fake error for 'example-localhost.invalid']" - " [Fake error for 'other-example-localhost.invalid']", + " [Fake error for 'other-example-localhost.invalid']" + ". Topology type: Unknown", false, true); } From 83937a5671a08ae01f1274b041bb9cde214ce0bb Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 6 Feb 2024 14:15:59 -0800 Subject: [PATCH 4/9] Hook in tests --- src/libbson/tests/test-string.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libbson/tests/test-string.c b/src/libbson/tests/test-string.c index d9b6b5c965b..05a676e481f 100644 --- a/src/libbson/tests/test-string.c +++ b/src/libbson/tests/test-string.c @@ -107,6 +107,7 @@ test_bson_string_append_printf (void) bson_string_free (str, true); } + static void test_bson_string_new_printf (void) { @@ -322,6 +323,8 @@ test_string_install (TestSuite *suite) TestSuite_Add (suite, "/bson/string/append_c", test_bson_string_append_c); TestSuite_Add ( suite, "/bson/string/append_printf", test_bson_string_append_printf); + TestSuite_Add ( + suite, "/bson/string/new_printf", test_bson_string_new_printf); TestSuite_Add ( suite, "/bson/string/append_unichar", test_bson_string_append_unichar); TestSuite_Add (suite, "/bson/string/strdup", test_bson_strdup); From 0d96f98d768a86a90771f199b44471cefd139298 Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 23 Apr 2024 11:54:10 -0700 Subject: [PATCH 5/9] revert bson_string_new_printf --- src/libbson/src/bson/bson-string.c | 17 ----------------- src/libbson/src/bson/bson-string.h | 2 -- 2 files changed, 19 deletions(-) diff --git a/src/libbson/src/bson/bson-string.c b/src/libbson/src/bson/bson-string.c index bd3073b8285..36c4c5ab498 100644 --- a/src/libbson/src/bson/bson-string.c +++ b/src/libbson/src/bson/bson-string.c @@ -253,23 +253,6 @@ bson_string_append_printf (bson_string_t *string, const char *format, ...) bson_free (ret); } -bson_string_t * -bson_string_new_printf (const char *format, ...) -{ - va_list args; - char *s; - - BSON_ASSERT (format); - - va_start (args, format); - s = bson_strdupv_printf (format, args); - va_end (args); - - bson_string_t *ret = bson_string_new (s); - bson_free (s); - return ret; -} - /* *-------------------------------------------------------------------------- diff --git a/src/libbson/src/bson/bson-string.h b/src/libbson/src/bson/bson-string.h index b0ae463dafe..467a4567cf6 100644 --- a/src/libbson/src/bson/bson-string.h +++ b/src/libbson/src/bson/bson-string.h @@ -50,8 +50,6 @@ bson_string_append_unichar (bson_string_t *string, bson_unichar_t unichar); BSON_EXPORT (void) bson_string_append_printf (bson_string_t *string, const char *format, ...) BSON_GNUC_PRINTF (2, 3); -BSON_EXPORT (bson_string_t *) -bson_string_new_printf (const char *format, ...) BSON_GNUC_PRINTF (1, 2); BSON_EXPORT (void) bson_string_truncate (bson_string_t *string, uint32_t len); BSON_EXPORT (char *) From a39b9edfe0555f55b7e039fa003221403425963a Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 23 Apr 2024 11:54:10 -0700 Subject: [PATCH 6/9] revert bson_string_new_printf --- src/libbson/tests/test-string.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/libbson/tests/test-string.c b/src/libbson/tests/test-string.c index 05a676e481f..8efd004b352 100644 --- a/src/libbson/tests/test-string.c +++ b/src/libbson/tests/test-string.c @@ -108,16 +108,6 @@ test_bson_string_append_printf (void) } -static void -test_bson_string_new_printf (void) -{ - bson_string_t *str = - bson_string_new_printf ("%s %d %d %d", "testing", 1, 2, 3); - BSON_ASSERT (!strcmp (str->str, "testing 1 2 3")); - bson_string_free (str, true); -} - - static void test_bson_string_append_unichar (void) { @@ -323,8 +313,6 @@ test_string_install (TestSuite *suite) TestSuite_Add (suite, "/bson/string/append_c", test_bson_string_append_c); TestSuite_Add ( suite, "/bson/string/append_printf", test_bson_string_append_printf); - TestSuite_Add ( - suite, "/bson/string/new_printf", test_bson_string_new_printf); TestSuite_Add ( suite, "/bson/string/append_unichar", test_bson_string_append_unichar); TestSuite_Add (suite, "/bson/string/strdup", test_bson_strdup); From 5824d6f570c6c6040d5c678b8fb8870e2b912a6e Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 23 Apr 2024 12:21:05 -0700 Subject: [PATCH 7/9] Format --- .../test-mongoc-server-selection-errors.c | 60 +++++++++---------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/src/libmongoc/tests/test-mongoc-server-selection-errors.c b/src/libmongoc/tests/test-mongoc-server-selection-errors.c index 9e4217ad3ce..f7793fe90f5 100644 --- a/src/libmongoc/tests/test-mongoc-server-selection-errors.c +++ b/src/libmongoc/tests/test-mongoc-server-selection-errors.c @@ -79,13 +79,12 @@ server_selection_error_dns (const char *uri_str, const char *errmsg, bool expect static void test_server_selection_error_dns_direct_single (void) { - server_selection_error_dns ( - "mongodb://example-localhost.invalid:27017/", - "No suitable servers found (`serverSelectionTryOnce` set): " - "[Fake error for 'example-localhost.invalid']" - ". Topology type: Single", - false, - false); + server_selection_error_dns ("mongodb://example-localhost.invalid:27017/", + "No suitable servers found (`serverSelectionTryOnce` set): " + "[Fake error for 'example-localhost.invalid']" + ". Topology type: Single", + false, + false); } static void @@ -93,27 +92,25 @@ test_server_selection_error_dns_direct_pooled (void *ctx) { BSON_UNUSED (ctx); - server_selection_error_dns ( - "mongodb://example-localhost.invalid:27017/", - "No suitable servers found: `serverSelectionTimeoutMS` expired: " - "[Fake error for 'example-localhost.invalid']" - ". Topology type: Single", - false, - true); + server_selection_error_dns ("mongodb://example-localhost.invalid:27017/", + "No suitable servers found: `serverSelectionTimeoutMS` expired: " + "[Fake error for 'example-localhost.invalid']" + ". Topology type: Single", + false, + true); } static void test_server_selection_error_dns_multi_fail_single (void) { - server_selection_error_dns ( - "mongodb://" - "example-localhost.invalid:27017,other-example-localhost.invalid:27017/", - "No suitable servers found (`serverSelectionTryOnce` set):" - " [Fake error for 'example-localhost.invalid']" - " [Fake error for 'other-example-localhost.invalid']" - ". Topology type: Unknown", - false, - false); + server_selection_error_dns ("mongodb://" + "example-localhost.invalid:27017,other-example-localhost.invalid:27017/", + "No suitable servers found (`serverSelectionTryOnce` set):" + " [Fake error for 'example-localhost.invalid']" + " [Fake error for 'other-example-localhost.invalid']" + ". Topology type: Unknown", + false, + false); } static void @@ -121,15 +118,14 @@ test_server_selection_error_dns_multi_fail_pooled (void *ctx) { BSON_UNUSED (ctx); - server_selection_error_dns ( - "mongodb://" - "example-localhost.invalid:27017,other-example-localhost.invalid:27017/", - "No suitable servers found: `serverSelectionTimeoutMS` expired:" - " [Fake error for 'example-localhost.invalid']" - " [Fake error for 'other-example-localhost.invalid']" - ". Topology type: Unknown", - false, - true); + server_selection_error_dns ("mongodb://" + "example-localhost.invalid:27017,other-example-localhost.invalid:27017/", + "No suitable servers found: `serverSelectionTimeoutMS` expired:" + " [Fake error for 'example-localhost.invalid']" + " [Fake error for 'other-example-localhost.invalid']" + ". Topology type: Unknown", + false, + true); } static void From 514be657b9264f6f291cade3a353e12279397a7f Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 23 Apr 2024 12:26:45 -0700 Subject: [PATCH 8/9] Format --- src/libmongoc/src/mongoc/mongoc-topology.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libmongoc/src/mongoc/mongoc-topology.c b/src/libmongoc/src/mongoc/mongoc-topology.c index cde244fbc1f..61b23bd3fd2 100644 --- a/src/libmongoc/src/mongoc/mongoc-topology.c +++ b/src/libmongoc/src/mongoc/mongoc-topology.c @@ -1099,8 +1099,7 @@ mongoc_topology_select_server_id (mongoc_topology_t *topology, mc_shared_tpld td = mc_tpld_take_ref (topology); bson_string_t *topology_type = bson_string_new (". Topology type: "); - bson_string_append (topology_type, - mongoc_topology_description_type (td.ptr)); + bson_string_append (topology_type, mongoc_topology_description_type (td.ptr)); /* These names come from the Server Selection Spec pseudocode */ int64_t loop_start; /* when we entered this function */ From bf474d9323bd4a0da353b10a3df0e7b61cfe6288 Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Wed, 24 Apr 2024 10:05:16 -0700 Subject: [PATCH 9/9] Whitespace --- src/libmongoc/src/mongoc/mongoc-error.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libmongoc/src/mongoc/mongoc-error.c b/src/libmongoc/src/mongoc/mongoc-error.c index b919c9a150b..00338718861 100644 --- a/src/libmongoc/src/mongoc/mongoc-error.c +++ b/src/libmongoc/src/mongoc/mongoc-error.c @@ -319,4 +319,4 @@ _mongoc_error_append (bson_error_t *error, const char *s) const size_t error_len = strlen (error->message); const size_t remaining = sizeof (error->message) - error_len; bson_strncpy (error->message + error_len, s, remaining); -} \ No newline at end of file +}