[CDRIVER-4192] Drivers should retry operations if connection handshake fails Created: 19/Oct/21  Updated: 28/Oct/23  Resolved: 11/Nov/22

Status: Closed
Project: C Driver
Component/s: None
Affects Version/s: None
Fix Version/s: 1.24.0

Type: Bug Priority: Major - P3
Reporter: PM Bot Assignee: Ezra Chung
Resolution: Fixed Votes: 0
Labels: size-small
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by PHPLIB-1042 Drivers should retry operations if co... Blocked
Issue split
split from DRIVERS-746 Drivers should retry operations if co... Implementing
Related
related to CDRIVER-4532 Add retry behavior for handshake fail... Backlog
related to CDRIVER-4517 Improve test coverage for retryable h... Closed
Quarter: FY23Q3
Upstream Changes Summary:

DRIVERS-746:


 Description   

This ticket was split from DRIVERS-746, please see that ticket for a detailed description.



 Comments   
Comment by Githook User [ 11/Nov/22 ]

Author:

{'name': 'Ezra Chung', 'email': '88335979+eramongodb@users.noreply.github.com', 'username': 'eramongodb'}

Message: CDRIVER-4192 Support retryable handshake network errors (#1141)

  • Move legacy retryable reads test files into legacy subdirectory
  • Move legacy retryable writes test files into legacy subdirectory
  • Sync unified retryable reads test files with 08230607
  • Sync unified retryable writes test files with 08230607
  • Sync unified transactions test files with 08230607
  • Bump default task timeout from 40 minutes to to 1 hour
  • Address TSAN warnings in test_add_and_scan_failure
  • Address -Wunused-const-variable for gHexCharPairs
  • Improve error message when expected OP_MSG request is not received
  • Improve assertion message for monotonic clock time comparison
  • Address null pointer warnings by scan-build
  • CDRIVER-4517 Sync unified retryable writes tests files with b9cdbbbe
  • CDRIVER-4517 Sync unified retryable reads tests files with b9cdbbbe
  • Declare _mongoc_cluster_stream_for_server as static
  • Refactor _mongoc_bson_init_with_transient_txn_error -> _mongoc_add_transient_txn_error
  • Separate aggregates with writes from mongoc_cluster_stream_for_reads
  • Add _mongoc_error_is_auth
  • Declare _mongoc_write_error_append_retryable_label in mongoc-error-private.h
  • Remove always-true handshake_complete parameter from _handle_network_error
  • Assert preconditions for mongoc_cluster_stream_for_server
  • Permit empty arguments field for operation_list_collections
  • Retry when encountering a network error establishing an initial connection to a server
  • Update tests to account for retryable handshake network failures
  • Add unified test runner support for listDatabaseNames
Comment by Kaitlin Mahar [ 15/Sep/22 ]

FYI, the new tests pass in Swift so I think that libmongoc already does the right thing here.

Generated at Wed Feb 07 21:20:13 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.