Release Notes - C Driver - Version 1.7.0 - HTML format

Bug

  • [CDRIVER-1458] - Test failure in mongoc_socket check_closed
  • [CDRIVER-1929] - mongoc_uri_parse_database() may overlap with URI host component
  • [CDRIVER-1981] - Threads are not closed correctly on windows
  • [CDRIVER-1987] - mongoc_uri_unescape() silently fails on invalid percent-encoding
  • [CDRIVER-1992] - Intermittent "TLS handshake failed" error in test_ismaster_ssl on Windows
  • [CDRIVER-2002] - Given mongoc_gridfs_file_readv() returning -1 (failure), mongoc_gridfs_file_error() doesn't indicate error condition
  • [CDRIVER-2005] - release-compile task on Evergreen Windows variants builds debug version of driver
  • [CDRIVER-2006] - mongoc_gridfs_find_one_with_opts(): the error parameter is not initialized on failure
  • [CDRIVER-2010] - ISO8601 test fails with GCC 7
  • [CDRIVER-2011] - libbson fuzztest failure
  • [CDRIVER-2028] - mongoc_gridfs_file_get_upload_date() returns arbitrary values on 32-bit system
  • [CDRIVER-2034] - test_create_index_fail error on zSeries Ubuntu without OpenSSL
  • [CDRIVER-2035] - bson_api.3 and bson_index.3 man pages include all other pages
  • [CDRIVER-2036] - extjson parsing bug in 1.6.0
  • [CDRIVER-2046] - Invalid read in libbson-release
  • [CDRIVER-2054] - Windows static build is broken in 1.5.0
  • [CDRIVER-2073] - assert in test_hint_no_warmup_pooled
  • [CDRIVER-2079] - Link error due to undefined reference to `assert'
  • [CDRIVER-2090] - Don't call getpid if we plan to overwrite result with taskid during ObjectId generation
  • [CDRIVER-2093] - mongoc_cursor_is_alive and mongoc_cursor_more incorrect querying an empty collection
  • [CDRIVER-2098] - mongoc_collection_aggregate fails against secondaries
  • [CDRIVER-2101] - Build failure against LibreSSL OpenSSL
  • [CDRIVER-2104] - Patch build failures: "llvm-cov not found"
  • [CDRIVER-2115] - Rare mock server test failures on 32-bit
  • [CDRIVER-2122] - Issues in documentation for read concern option "level"
  • [CDRIVER-2127] - libbson FTBFS on mips/mipsel: undefined reference to `__sync_add_and_fetch_8'
  • [CDRIVER-2132] - CMake unnecessarily requires C++ compiler
  • [CDRIVER-2133] - Coverity analysis defect 100116: Out-of-bounds access
  • [CDRIVER-2134] - Coverity analysis defect 49582: Operands don't affect result
  • [CDRIVER-2135] - Coverity analysis defect 76459: Resource leak
  • [CDRIVER-2136] - Coverity analysis defect 72309: Resource leak
  • [CDRIVER-2138] - Libbson bson-decimal.c should not include stdint.h directly
  • [CDRIVER-2139] - Please add generated files to .gitignore
  • [CDRIVER-2142] - No URI error specified if authSource is not "$external" for GSSAPI and X509
  • [CDRIVER-2146] - ".. warning:" sections not rendered in docs
  • [CDRIVER-2147] - Token replacement issue in download link
  • [CDRIVER-2153] - mongoc_client_pool_t cannot connect to MongoDB Atlas
  • [CDRIVER-2154] - SNI not provided when allow_invalid_hostname is set
  • [CDRIVER-2155] - Bug in unreleased code: Client pool cannot connect with IPv6 address like "[::1]"
  • [CDRIVER-2157] - Linking to libmongoc with MinGW-64 fails to find crypt32.lib
  • [CDRIVER-2158] - Preserve case in Unix domain socket paths
  • [CDRIVER-2166] - Improve autotools/pkg-config detection
  • [CDRIVER-2168] - Escape JSON strings for regex, symbol, and DBPointer types
  • [CDRIVER-2171] - make uninstall leaves cmake & static symlink files behind
  • [CDRIVER-2172] - Call "ping" on a socket that has been idle for socketCheckIntervalMS
  • [CDRIVER-2174] - _mongoc_cluster_check_interval() should invalidate nodes after detecting a closed socket
  • [CDRIVER-2175] - libbson cmake: pthreads not correctly compiled in
  • [CDRIVER-2177] - Coverity analysis defect 101516: Resource leak
  • [CDRIVER-2178] - Coverity analysis defect 72298: Time of check time of use
  • [CDRIVER-2179] - Coverity analysis defect 100079: Redundant test
  • [CDRIVER-2190] - Username and password must be URI-escaped
  • [CDRIVER-2202] - OP_COMPRESSED fails on Big Endian
  • [CDRIVER-2203] - libbson-1.7.0-rc0 break NEWS encoding
  • [CDRIVER-2223] - JSON reader cannot parse integers for legacy $date syntax
  • [CDRIVER-2225] - BSON corpus Decimal128 parse error tests are not properly executed

Epic

  • [CDRIVER-784] - Bring mongoc_uri_t up to spec.
  • [CDRIVER-797] - Stop depending on Cyrus for GSSAPI / Kerberos support on Mac and Windows.
  • [CDRIVER-1497] - libbson: Document all exported symbols
  • [CDRIVER-1947] - Improve libbson compatibility with the BSON Corpus tests
  • [CDRIVER-2074] - Convenient usage as a static library
  • [CDRIVER-2116] - Add support for OP_COMPRESSED

New Feature

  • [CDRIVER-670] - Check links in docs
  • [CDRIVER-1110] - Add mongoc_cursor_get_error_document ()
  • [CDRIVER-1388] - Warn on unsupported URI options
  • [CDRIVER-1404] - Use S_ISDIR() instead of & S_IFDIR
  • [CDRIVER-1472] - NaN handling difference between C and C++ driver
  • [CDRIVER-1509] - Add OpenSSL 1.1 build into evergreen
  • [CDRIVER-1542] - Add BSON_ITER_HOLDS_NUMBER() & BSON_ITER_HOLDS_INT()
  • [CDRIVER-1879] - libbson truncates code_with_scope with embedded nulls in javascript
  • [CDRIVER-1889] - Implement BSON Corpus tests runner
  • [CDRIVER-1949] - Implement Connection URI Spec tests
  • [CDRIVER-1990] - Travis integration
  • [CDRIVER-2004] - Add SSL Configuration options to the URI / Enable X.509 auth through URI
  • [CDRIVER-2018] - Introduce bulk write options to disable BSON validation
  • [CDRIVER-2037] - Distribute pkg-config files for dynamic and static linking
  • [CDRIVER-2055] - Compile libbson examples on windows
  • [CDRIVER-2062] - Compile and test Windows Native SSL & SASL under mingw
  • [CDRIVER-2064] - Add bson_iter_init_from_data function
  • [CDRIVER-2067] - Server selection is not random on Windows
  • [CDRIVER-2069] - Document how to produce release binaries for libbson & mongoc
  • [CDRIVER-2083] - Distribute CMake config packages for statically linking to libbson and libmongoc
  • [CDRIVER-2084] - Create setter for authMechanism URI option
  • [CDRIVER-2108] - Add Support for reading OP_COMPRESSED
  • [CDRIVER-2109] - Add support for writing OP_COMPRESSED
  • [CDRIVER-2110] - Add support for compiling against snappy
  • [CDRIVER-2117] - Support `compressors` URI option
  • [CDRIVER-2137] - Add support for zlib OP_COMPRESSED
  • [CDRIVER-2143] - Add iter_as_double function
  • [CDRIVER-2170] - Add support for RFC 2744 GSS-API
  • [CDRIVER-2206] - Expose is_default() in public API for read and write concerns
  • [CDRIVER-2208] - Introduce new API for Extended JSON spec 2.0 output

Task

  • [CDRIVER-589] - Driver should sanity check the size of the request document and fail fast
  • [CDRIVER-792] - Investigate replacing cyrus-sasl with libkrb5/heimdal for GSSAPI
  • [CDRIVER-857] - C - Test the support of MONGODB-X509 authentication mechanism
  • [CDRIVER-1498] - Document bson_array_as_json
  • [CDRIVER-1499] - Document bson_ascii_strtoll
  • [CDRIVER-1500] - Document bson_copy_to_excluding_noinit
  • [CDRIVER-1920] - Document how connection pooling works for C driver
  • [CDRIVER-1938] - bson_as_json converts int64 to scientific notation
  • [CDRIVER-1980] - Incorrect lifecycle documentation needs review
  • [CDRIVER-2019] - Missing delimiting slash between hosts and options should fail
  • [CDRIVER-2020] - Escaped null bytes in URI (%00) should be allowed
  • [CDRIVER-2021] - UTF-8 Hostnames in connection URI should be allowed
  • [CDRIVER-2022] - Missing support for fsync in connection uri
  • [CDRIVER-2023] - Unescaped percent sign in connection uri should fail
  • [CDRIVER-2024] - Escaped username maybe not properly parsed
  • [CDRIVER-2025] - Repeated options should issue a warning
  • [CDRIVER-2029] - 3 colons should fail URI parsing
  • [CDRIVER-2030] - Deprecated options should be ignored if replacement exists
  • [CDRIVER-2031] - Multiple unescaped @ should fail uri parsing
  • [CDRIVER-2032] - Unix Domain Sockets must be escaped in URI
  • [CDRIVER-2058] - heartbeatFrequencyMS is not validated as being less than minHeartbeatFrequencyMS
  • [CDRIVER-2065] - Document that bson_init_static structures must not be copied
  • [CDRIVER-2082] - Create examples for sample shell commands
  • [CDRIVER-2088] - Can't build libbson on tvOS / watchOS
  • [CDRIVER-2106] - Refactor code to not assume OP_REPLY is the only reply opcode
  • [CDRIVER-2114] - Add evergreen Matrix for inflight 3.6 implementations
  • [CDRIVER-2120] - Add MONGOC_TEST_COMPRESSORS to test suite
  • [CDRIVER-2169] - Return value for bson_decimal128_from_string is undocumented
  • [CDRIVER-2239] - Rename bson_as_[canonical|relaxed]_json() to bson_as_[canonical|relaxed]_extended_json()

Improvement

  • [CDRIVER-782] - Allow more detailed error reporting for failed URI parsing
  • [CDRIVER-963] - Document object-destruction order
  • [CDRIVER-1058] - Install CMake 'config' style files for find_package
  • [CDRIVER-1138] - Test with undefined behavior sanitizer
  • [CDRIVER-1386] - Create bson_ascii_str[n]casecmp()
  • [CDRIVER-1478] - Implement Connection String Spec Tests
  • [CDRIVER-1531] - Document libbson helper macros at the same page as the underlying function
  • [CDRIVER-1543] - Note mongoc_client_command's unused params
  • [CDRIVER-1549] - Connection string documentation incomplete
  • [CDRIVER-1559] - syscall deprecated in macOS
  • [CDRIVER-1883] - libbson should ensure regex options are sorted
  • [CDRIVER-1917] - Document use of server_id in mongoc_cursor_new_from_command_reply
  • [CDRIVER-1966] - Extended JSON date expects milliseconds wrapped in $numberLong
  • [CDRIVER-1967] - Extended JSON int64 expects wrapping in $numberLong
  • [CDRIVER-1978] - NaN and Infinity differently JSON-encoded depending on platform
  • [CDRIVER-1993] - cmake doesn't check libbson minimum version
  • [CDRIVER-2016] - Report offending field name in BSON validation errors
  • [CDRIVER-2026] - mongoc_gridfs_find_one_with_opts() is not internally optimized for fetching one result
  • [CDRIVER-2038] - Document all supported connection URI options
  • [CDRIVER-2039] - Document readPreferenceTags
  • [CDRIVER-2043] - Raise BSON_MAX_RECURSION from 100 to 200
  • [CDRIVER-2044] - Max URI set to only 64 chars
  • [CDRIVER-2049] - Do not shutdown() sockets created by other processes
  • [CDRIVER-2052] - Correct connectTImeoutMS
  • [CDRIVER-2061] - Compiler warning for openssl 1.1.0
  • [CDRIVER-2075] - Retry ismaster calls once
  • [CDRIVER-2076] - Test building from tarballs with MSVC
  • [CDRIVER-2077] - Undeprecate bson_as_json
  • [CDRIVER-2087] - size_t redeclaration in VS2013
  • [CDRIVER-2091] - Compiler warnings in clang on OS X
  • [CDRIVER-2095] - Document what false means as return value
  • [CDRIVER-2124] - Environment flag to skip mockserver tests
  • [CDRIVER-2126] - DatetimePositive, DatetimeNegative, DatetimeEpoch not implemented
  • [CDRIVER-2128] - Support revised Extended JSON spec
  • [CDRIVER-2130] - Any "ssl" config option in URI should turn on SSL/TLS
  • [CDRIVER-2140] - Add support for zlibCompressionLevel
  • [CDRIVER-2148] - Combine bson_uint32_to_string.rst with performance.rst
  • [CDRIVER-2150] - Cache SCRAM-SHA-1 ClientKey
  • [CDRIVER-2156] - Generate correctly-formatted mock server code
  • [CDRIVER-2161] - Sphinx 1.6 compatibility
  • [CDRIVER-2162] - Automate Atlas connectivity tests
  • [CDRIVER-2163] - Update "Supported Platforms" in docs
  • [CDRIVER-2165] - Compile with Windows SSPI support by default
  • [CDRIVER-2173] - _mongoc_buffer_try_append_from_stream() never sets bson_error_t output var
  • [CDRIVER-2186] - More Connection String Spec updates
  • [CDRIVER-2187] - Key file path, key file password, and certificate authority file path must be escaped in MongoDB URI
  • [CDRIVER-2195] - Clarify write concern usage documentation for mongoc_database_create_collection
  • [CDRIVER-2204] - Rename --enable-snappy and --enable-zlib to --with-snappy and --with-zlib
  • [CDRIVER-2211] - cmake requires shared and static versions of libbson

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.