Release Notes - C Driver - Version 1.5.0 - HTML format

Bug

  • [CDRIVER-516] - Clear instructions for mongoc_cursor_more
  • [CDRIVER-541] - Timeout used as specified by connectTimeoutMS will actually be less
  • [CDRIVER-598] - Read preference tags are not validated during URI parsing
  • [CDRIVER-608] - Read preference should be validated before server selection
  • [CDRIVER-662] - Inconsistent errs from CRUD functions
  • [CDRIVER-703] - mongoc_collection_get_last_error returns WriteResult
  • [CDRIVER-725] - mongoc_collection_create_index should return index document
  • [CDRIVER-852] - Document that timeout_msec is unused in GridFS read/write
  • [CDRIVER-965] - GridFS implementation must update md5
  • [CDRIVER-983] - Windows testing instructions
  • [CDRIVER-989] - "make install" installs private headers
  • [CDRIVER-1055] - Unit Tests Under -fsanitize=address Timeout
  • [CDRIVER-1075] - Generic command functions shouldn't use client's read and write concern
  • [CDRIVER-1129] - Silent failure parsing hostnames longer than HOST_NAME_MAX
  • [CDRIVER-1205] - mongoc_collection_count_with_opts ignores flags and read_prefs
  • [CDRIVER-1304] - 32-bit overflow in _bson_grow
  • [CDRIVER-1305] - Some tests hang on 32-bit Unix
  • [CDRIVER-1327] - "make html" unnecessarily slow
  • [CDRIVER-1335] - libbson does not properly serialize the Code type to JSON
  • [CDRIVER-1377] - bson_ascii_strtoll() does not detect ERANGE errors
  • [CDRIVER-1405] - Incorrect error message in mongoc_topology_scanner_ismaster_handler()
  • [CDRIVER-1412] - convert json to bson lost integer width
  • [CDRIVER-1424] - "make distcheck" fails: "No rule to make target `doc/html/bson_installing.html'"
  • [CDRIVER-1425] - MongoDB handshake tests produce warnings
  • [CDRIVER-1426] - Race recording error message in mongoc_topology_scanner_finish
  • [CDRIVER-1433] - Executing invalid mongoc_bulk_operation_t does not initialize reply bson_t
  • [CDRIVER-1435] - POWER8 test failures
  • [CDRIVER-1436] - Handshake coredumps on 32bit Solaris
  • [CDRIVER-1439] - Deal with spurious wakeups from pthread_cond_wait
  • [CDRIVER-1441] - Invalid free when unable to connect to multiple mongos'?
  • [CDRIVER-1459] - /TLS/commonName test failure
  • [CDRIVER-1460] - on writeConcernError, parse wc err and return false in commands that write
  • [CDRIVER-1466] - clang exports private symbols
  • [CDRIVER-1470] - Lingering manpages without a home
  • [CDRIVER-1473] - Unreliable "/Topology/connect_timeout/single/try_once_false" test on 32-bit
  • [CDRIVER-1477] - C driver: pthread_create calls, result checking
  • [CDRIVER-1480] - Race in mongoc_log_set_handler
  • [CDRIVER-1486] - The library exports "TRACE" as an un-prefixed global symbol (define)
  • [CDRIVER-1490] - Certificate SAN ipAddress for IPv6 fails
  • [CDRIVER-1495] - Leak in handshake data
  • [CDRIVER-1507] - Secure Channel doesn't compile on VS 2010
  • [CDRIVER-1508] - multiple_selection_errors test failure on zSeries
  • [CDRIVER-1511] - /Client/sends_handshake_single test failure
  • [CDRIVER-1515] - memory leak in bson-streaming-reader.c
  • [CDRIVER-1516] - Uninitialized argument value in mongoc_socket_accept_ex
  • [CDRIVER-1517] - mongoc_server_description_type should accept const mongoc_server_description_t
  • [CDRIVER-1518] - Crash in mongoc_topology_description_invalidate_server
  • [CDRIVER-1520] - make release-archive fails for libbson 1.4.1
  • [CDRIVER-1522] - Add mongoc_collection_find_with_opts
  • [CDRIVER-1523] - Configuring libbson with --enable-extra-align=no when building with mongoc
  • [CDRIVER-1530] - Tailable cursor only works with MONGOC_QUERY_AWAIT_DATA
  • [CDRIVER-1532] - Return false when raising MONGOC_ERROR
  • [CDRIVER-1533] - mongoc_client_get_server_descriptions can return NULLs
  • [CDRIVER-1544] - libbson headers cannot be consumed from C++ due to direct use of _Decimal128
  • [CDRIVER-1548] - mongoc_cursor_t's filter and opts documents aren't freed
  • [CDRIVER-1551] - Collation: Raise error for command helpers, and support aggregate and createindex
  • [CDRIVER-1552] - handshake meta data on s390/rhel 7.2 add extra " in values.
  • [CDRIVER-1554] - Redundant handling of $query in _translate_query_opt()
  • [CDRIVER-1555] - SSL connections can leak sockets
  • [CDRIVER-1556] - driver aborts after "mongoc_stream_writev(): precondition failed: stream"
  • [CDRIVER-1558] - minPoolSize bugs
  • [CDRIVER-1560] - ISO C warnings (GNU extensions)
  • [CDRIVER-1561] - OpenSSL Compiler warning
  • [CDRIVER-1564] - "PossiblePrimary" server is candidate for primary reads
  • [CDRIVER-1567] - "connection timeout" / "connection error" messages swapped
  • [CDRIVER-1571] - Spurious topology-scanner timeouts when using stream initiator
  • [CDRIVER-1574] - Remove --enable-hardening (which is a NOOP)
  • [CDRIVER-1575] - mongoc_database_create_collection() checks wrong option for storageEngine
  • [CDRIVER-1576] - New error code for unrecognized pipeline operator
  • [CDRIVER-1579] - bson_malloc needs same count test as bson_malloc0
  • [CDRIVER-1639] - Rand used to pick Mongo server is not seeded
  • [CDRIVER-1689] - Document mongoc_handshake_data_append in the .h, not public doc
  • [CDRIVER-1691] - /dev/shm/mongoc-${PID} is created in an insecure manner
  • [CDRIVER-1692] - mongoc_collection_find_with_opts() conflict with projection operators
  • [CDRIVER-1695] - libbson's bson-to-json does't allow for round tripping of Javascript type
  • [CDRIVER-1702] - Segfault in test suite
  • [CDRIVER-1703] - Missing files in 1.5.0-rc2 archive
  • [CDRIVER-1704] - Inconsistent application of read/write concern in mongoc_collection_aggregate
  • [CDRIVER-1751] - mongoc_collection_find_with_opts() should return error if collation specified and connection does not support read commands
  • [CDRIVER-1779] - mongoc_collection_find_and_modify_with_opts() should return error if collation specified and connection max wire version < 5
  • [CDRIVER-1853] - _mongoc_write_concern_iter_is_valid fails with write concern "majority"
  • [CDRIVER-1866] - Rename get_hint docs to get_server_id
  • [CDRIVER-1868] - Small typo in mongoc_collection_find example doc
  • [CDRIVER-1869] - mongoc_collection_aggregate sends "batchSize" with MongoDB 2.4
  • [CDRIVER-1871] - Duplicated readConcern and writeConcern in commands when applying defaults
  • [CDRIVER-1872] - mongoc_cursor_set_hint causes secondary reads in sharded cluster
  • [CDRIVER-1873] - mongoc_collection_aggregate() leaks a mongoc_read_concern_t/mongoc_write_concern_t, if read/write concern unspecified by the user
  • [CDRIVER-1875] - libbson allows any non-zero value for boolean type
  • [CDRIVER-1877] - libbson doesn't verify dbpointer collection name string is null terminated
  • [CDRIVER-1878] - bson_append_code_with_scope drops empty scope
  • [CDRIVER-1881] - 2 memory leaks in mongoc_collection_create_index_with_opts()
  • [CDRIVER-1882] - mongoc_client_new () leaks on failure
  • [CDRIVER-1891] - leaks in test_bson_integer_width
  • [CDRIVER-1893] - localThresholdMS calculated in microseconds
  • [CDRIVER-1894] - Address Sanitizer issues in /bson/json/allow_multiple
  • [CDRIVER-1896] - Coverity analysis defect 76624: Side effect in assertion
  • [CDRIVER-1897] - Coverity analysis defect 72313: Logically dead code
  • [CDRIVER-1898] - Crash in APM with mongoc_client_kill_cursor
  • [CDRIVER-1899] - Coverity analysis defect 99991: Explicit null dereferenced
  • [CDRIVER-1900] - Coverity analysis defect 76404: Out-of-bounds write
  • [CDRIVER-1901] - Coverity analysis defect 100005: Structurally dead code
  • [CDRIVER-1902] - Round trip time not reset on disconnect
  • [CDRIVER-1903] - Bugs in _mongoc_gridfs_file_extend
  • [CDRIVER-1907] - libmongoc-dev Debian package should depend on libbson-dev
  • [CDRIVER-1911] - Query and command cursor inconsistencies
  • [CDRIVER-1915] - Undefined variable in mongoc_client_pool_t doc
  • [CDRIVER-1921] - mongoc_cursor_new_from_command_reply fails with static bson reply
  • [CDRIVER-1922] - Assertion failure in stream_not_found() after failed getmore operation
  • [CDRIVER-1923] - libbson install memory.3 and clock.3 manpages
  • [CDRIVER-1934] - Darwin Secure Transport build warning
  • [CDRIVER-1939] - dpkg-gensymbols error building 1.5.0 Debian package

Epic

New Feature

  • [CDRIVER-562] - cluster should send newly-run ismasters through SDAM machinery
  • [CDRIVER-663] - i386, i686, and x86_64 build & test in Evergreen
  • [CDRIVER-666] - cmake build & test in Evergreen
  • [CDRIVER-671] - Build both with system libbson and bundled
  • [CDRIVER-673] - Test with and without SSL, incl. FIPS mode
  • [CDRIVER-709] - Define mongoc_error_code_t value for "duplicate key error"
  • [CDRIVER-874] - Mark bootstrapping failure as system failure, not tests failed
  • [CDRIVER-1034] - libtool version info
  • [CDRIVER-1314] - Support c89
  • [CDRIVER-1322] - Support sending writeConcern for commands that write
  • [CDRIVER-1342] - Support new readConcern level "linearizable"
  • [CDRIVER-1372] - Support providing collation per operation
  • [CDRIVER-1402] - mongoc_read_concern_append
  • [CDRIVER-1454] - Upload built HTML docs from Evergreen builds
  • [CDRIVER-1525] - Flexible opts for bulk operations
  • [CDRIVER-1526] - Rename "_with_write_concern" functions to "_with_opts"
  • [CDRIVER-1527] - Add mongoc_client_[read|write|read_write]_command_with_opts
  • [CDRIVER-1557] - Create notice for all third party libraries
  • [CDRIVER-1842] - Example using mongoc_cursor_new_from_command_reply with mongoc_client_command_with_opts
  • [CDRIVER-1844] - Add "serverId" option for mongoc_client_command_read_with_opts
  • [CDRIVER-1886] - Expose mongoc_cursor_t 'sent' field
  • [CDRIVER-1892] - Add mongoc_gridfs_find_with_opts
  • [CDRIVER-1933] - Make minimum value of maxStalenessSeconds 90 seconds

Task

  • [CDRIVER-1144] - Implement SDAM Monitoring spec
  • [CDRIVER-1332] - Does bson_json_reader_new's allow_multiple have an effect?
  • [CDRIVER-1475] - Remove rhel55 distro
  • [CDRIVER-1513] - Why is handshake metadata global?
  • [CDRIVER-1514] - Is there a way to set appname other than URI?
  • [CDRIVER-1519] - Update C Driver Documentation: 3.4 Feature Collation
  • [CDRIVER-1535] - Update C Driver Documentation: 3.4 Feature Decimal128
  • [CDRIVER-1536] - Document new bulk_operation methods
  • [CDRIVER-1537] - Audit _mongoc_cursor_new's read prefs and read concern
  • [CDRIVER-1546] - What is the expected direction for client/pool options?
  • [CDRIVER-1572] - Does slow getaddrinfo cause spurious topology scan timeouts?
  • [CDRIVER-1870] - Wrong soname with CMake build on Linux
  • [CDRIVER-1874] - Re-enable debug-compile-valgrind suite
  • [CDRIVER-1906] - Update Max Staleness implementation
  • [CDRIVER-1925] - Detecting default or unset value with mongoc_read_prefs_get_max_staleness_seconds()

Improvement

  • [CDRIVER-329] - add distinct helper to mongoc_collection_t
  • [CDRIVER-600] - Clarify thread-safety docs
  • [CDRIVER-604] - "make dist" should make man&html docs
  • [CDRIVER-747] - Test with address sanitizer
  • [CDRIVER-1109] - Improve SSL test matrix
  • [CDRIVER-1113] - FIPS Compliance on Darwin using Common Crypto
  • [CDRIVER-1116] - mongoc_ssl_config_t
  • [CDRIVER-1169] - SSLSetCertificateAuthorities fails, while SSLSetTrustedRoots works
  • [CDRIVER-1176] - CMake: Add _Decimal128 type check
  • [CDRIVER-1336] - Define constants for special strings returned by bson_decimal128_to_string()
  • [CDRIVER-1347] - Define per symbol visibility rather then using separate export symbol files
  • [CDRIVER-1371] - Add SLES zSeries buildvariant to evergreen
  • [CDRIVER-1382] - Add ARM64 builds to evergreen (mongoc)
  • [CDRIVER-1383] - Add ARM64 builds to evergreen (libbson)
  • [CDRIVER-1389] - Add POWER8 Ubuntu builds to evergreen (libbson)
  • [CDRIVER-1390] - Add POWER8 Ubuntu builds to evergreen (mongoc)
  • [CDRIVER-1391] - Add docs for providing MongoDB Handshake data
  • [CDRIVER-1392] - Add support for appname in connection URI
  • [CDRIVER-1395] - Fill out os.name on Linux correctly
  • [CDRIVER-1396] - Fill out os.version correctly
  • [CDRIVER-1397] - Fill out os.architecture
  • [CDRIVER-1398] - Catch-all platform
  • [CDRIVER-1418] - Update docs to show use of appname in URI
  • [CDRIVER-1419] - Setting handshake data should log error if unsuccessful
  • [CDRIVER-1432] - Enable MongoDB 3.4 features (move them from "experimental")
  • [CDRIVER-1452] - Attempt to clean/normalize values collected in mongoc-metadata
  • [CDRIVER-1463] - Less frequent zSeries and POWER8 builds
  • [CDRIVER-1464] - Use linux distro scanner in mongoc-metadata.c
  • [CDRIVER-1465] - libbson: Document bson_iter_decimal128 & bson_decimal128_t
  • [CDRIVER-1467] - Rename "metadata" to "handshake" in 1.5
  • [CDRIVER-1479] - test_create_collection randomly fails
  • [CDRIVER-1483] - Add support for native TLS on OpenBSD (LibreSSL, libtls)
  • [CDRIVER-1484] - Add SNI Support for OpenSSL
  • [CDRIVER-1488] - Add SNI Support for Secure Channel
  • [CDRIVER-1491] - Update mongo-c-driver-performance to use the published datafiles
  • [CDRIVER-1504] - Provide a way to suppress mongoc warning message for counters
  • [CDRIVER-1506] - mock server optionally logs to file
  • [CDRIVER-1512] - Lilbbson tests are built regardless if "--enable-tests=no" is set or not
  • [CDRIVER-1528] - Deprecate mongoc_collection_find
  • [CDRIVER-1539] - Consider additional "opts" validation
  • [CDRIVER-1569] - Change "connection error" to "unknown connection error"
  • [CDRIVER-1573] - Replace bulk_operation_update_with_opts()/bulk_operation_remove_with_opts() with bulk_operation_update_many_with_opts()/bulk_operation_remove_many_with_opts()
  • [CDRIVER-1685] - Add trace message of selected server during server selection
  • [CDRIVER-1687] - Remove autoIndexId handling
  • [CDRIVER-1697] - Document that command helpers for commands that write return false on writeConcernError
  • [CDRIVER-1698] - Regression test for "limit" and legacy writes
  • [CDRIVER-1699] - Document that mongoc_find_and_modify_opts_append() and mongoc_find_and_modify_opts_set_*() copy their inputs
  • [CDRIVER-1701] - Remove AM_MAINTAINER_MODE
  • [CDRIVER-1802] - Report specific keys for invalid update documents
  • [CDRIVER-1885] - Hinted cursors should not set slaveOk bit for primary servers
  • [CDRIVER-1890] - Allow mongoc_client_set_apm_callbacks() to be called multiple times
  • [CDRIVER-1895] - Clean up _mongoc_topology_scanner_cb's mutex logic
  • [CDRIVER-1908] - Change "no maxStalenessMS" value from 0 to -1
  • [CDRIVER-1910] - Fedora installation instructions
  • [CDRIVER-1919] - incompatible pointer to integer conversion
  • [CDRIVER-1924] - collation not documented as an option for _with_opts command helpers

Edit/Copy Release Notes

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