- Jan 06, 2022
-
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
Kevin Albertson authored
Signed-off-by:Kevin Albertson <kevin.albertson@mongodb.com>
-
- Dec 18, 2021
-
-
Kevin Albertson authored
-
- Dec 14, 2021
-
-
Ryan Schmidt authored
-
Kevin Albertson authored
-
- Nov 19, 2021
-
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
- Nov 18, 2021
-
-
Kevin Albertson authored
Signed-off-by:Kevin Albertson <kevin.albertson@mongodb.com>
-
- Nov 17, 2021
-
-
Kevin Albertson authored
-
vector-of-bool authored
* Add a shared_mutex, and use it when locking in shared_ptr atomic operations Tag CDRIVER-4002 Co-authored-by:
Kevin Albertson <kevin.albertson@10gen.com> * Force enable more recent POSIX APIs, regardless of language mode This change only applies to private code, and does not expose any changes in the public API. * No reallocf in strict POSIX mode Co-authored-by:
Kevin Albertson <kevin.albertson@10gen.com>
-
- Nov 14, 2021
-
-
Kevin Albertson authored
Co-authored-by:Ezra Chung <88335979+eramongodb@users.noreply.github.com>
-
- Nov 12, 2021
-
-
Roberto C. Sánchez authored
-
vector-of-bool authored
Follow-up for: a0cd4f84
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
Follow-up for: 33c8d319
-
vector-of-bool authored
* Use a fixed-width type for the 64bit atomic emulation spinlock * Fix return-type warnings in thread functions * Incompatible pointer type for create_server_stream in cluster sspi Fixes CDRIVER-4221
-
- Nov 11, 2021
-
-
vector-of-bool authored
* Additional atomic operations * 64bit and pointer atomics for MSVC * Revive some old exported symbols, clean up some unused code, and mark unreachable code. * No 64bit atomics for x86 GCC either. Fix several warnings * Token balance in case of empty macro expansion * Fix extra semicolon, plus macOS posix detection * Fix check on 32-bit, and missing 'default' case. Closes: CDRIVER-4124 * Missing ptr_fetch * CXX-4113: Thread-safe pool for server session objects * Remove unused node pointers on server sessions * Track pool size, and don't loop while holding the lock to clear * Closes: CDRIVER-4124 * Wrong arg names in i64 compare_exchange emul * Missing dist listing for ts-pool files * Cleanup and some redesign of pool API * Declare special pool for server sessions * Fix pruning pool not leaking the 10,001st session * Use typed pool fns * Visiting pool items, and checking that items are returned to the pool * Fix unacknowledged sessions tests * Additional atomic operations * A simple shared pointer construct * More atomics * Fix atomic intrinsics on MSVC * Topology description is a shared ptr * Give sptr._aux a type to aid in debugging. And no spinlocks! * Fix race on updating server rtt * Assertion macro for asserting pointers inline * Refactoring many locations to copy the shared topology description * Undo accidental local dev changes * Give the topology scanner its own mutex for the handshake_cmd This requires a refactor of how the handshake_cmd is passed around. Instead of the scanner returning a pointer to contended data and expecting the caller to bring their own synchronization, the scanner duplicates the handshake into an output parameter and performs its own synchronization internally. * Instead of using a mutex to guard monitor thread startup, use an atomic compare-exchange. * Pull from new-atomics * Fix: 'release' is not valid for GCC compare-exchange * Lots of "const" weeds out threading a mutation issues * Fix const-init from non-constant-expr * Use BSON_OS_UNIX * fetch() is `const`, and no `release` in cmpxch * Fix missing 'inline's * Mention the LIFO nature of the thread-pool, and the non-conformance of the 'push' operation * auditing the pool is compile-time optional * A shared-pointer abstraction * Make mongoc-shared a private API * typo * init the shared_ptr_mtx in a Windows-compatible way. * Update names to reflect C11 names, strong/weak cmpxchg * Fix const-to-mutable bind in MSVC * PR and impl updates for shared_ptr: - Rename to more closely match stdlib equivs - Delete macros that are unneeded - Tweak impl of atomic_store to be more efficient - Update doc comments * Address various PR comments * More tests for atomic operations * Restore bson_memory_barrier with a deprecation notice * Spelling is hard * No 'consume' memorder for atomic exchange * Fix detection of 64bit, plus unused intrin value * Missing i64_fetch and i64_fetch_sub on 32-bit playforms * Fix spinlock logic inversion for i64 emul * Remove config checks for atomics * Just use `int` * Thread-safe CSE startup without a mutex * Set march=i686 for 32bit builds * Update src/libmongoc/src/mongoc/mongoc-shared.c Co-authored-by:
Ezra Chung <88335979+eramongodb@users.noreply.github.com> * PR comments, use bson_assert_param, protect from self-assignment * CheckAtomics.cmake is gone * PR comments, and an assertion fix * Update doc comments from PR comments * Test aliasing to subobject, and fix C99 usage * Remove C99 usage, unneeded assertions, and warnings * Fix lost topology update with mongoc_topology_reconcile * Refresh td ptr after making changes in a test * Fix deadlocks in topology shutdown * Guard against a zero-allocated mongoc_set * Fix invalid test result JSON generation * Fix warnings from MSVC. Fix unexported symbols used on 32bit DLL * That is not 'const' * Remove C++ comments * Fix leak from misuse of bson_copy_to * Simplify scanner handshake setup * Fix leak of shared pointer when committing topo updates * Fix unsafe use-after free in test case * Missing cast-from-const in int64 atomic emul * Remove unneeded NULL checks. Fix doubled events when racing to invalidate servers * Use generation to validate server description * Fix attempt to double-reconnect * Update _mongoc_cluster_create_server_stream in conditional code segments * Conditionally set error in _cluster_fetch_sream_single * Refresh topology after requesting a scan * Fix race with the scanner to finish the initial handshake * Fix leak of topology descr reference * Fix leaked alloc of bson_t in _stream_run_hello * More leaks with dup_handshake_cmd * BSON initializer that is safe to destroy or to leak. * Undo incorrect changes for bson memcheck code * Less macro magic * Propagate the random seed when cloning a topology description * Prevent recursive topology modifications, which deadlock * Update comments and cleanup. - Remove mentions of topology->mutex. - Update comments that refer to locking. - Remove some redundant APIs. - Move some APIs to have internal linkage. * Guard against a deadlock with an assertion * Revert "Guard against a deadlock with an assertion" This reverts commit 4b9892ed2196a2f8274885a9f5b844685dbeb814. * Update for PR comments. Cleanup, const, and typos * Fix use-after free of server description in test. Remove unneeded locking * Fix decl-after-stmt * Fix shadowed name * Pin docutils version when installing sphinx * Separate mutex for srv polling, document more usage of tpld_modification_mtx * Suppress unused-var warning * ThreadSanitizer calls me out for wrong atomics. * Fix race in on counters in counter test * Release the topology description outside of the mutex * Thread-safe direct topology modification for testing purposes * Fix unnecessary race on getting topology event counts * Thread-safety in tests around topology reconciliation * Fix regression in counters test * Switch sign in counters tests * More thread safety in tests around topology descriptions * Spell * Update to comments, docs, and fixes from PR * Score scanner_state as an int, so we can perform well-defined atomic ops on it * temporarily disable silence in 'run auth tests' * Fix missing close quote in evergreen test script * Temporarily enable logging for 'run auth tests' * Give generation map const-correctness The generation map is owned by its server description, so the pointer member should have deep-const semantics. This uncovers new potential correctness issues, which are fixed now. * Fix TSan warning on server sets when running down * Clean up test usages of unsafe tpld access * Copy the maxElectionId for the topology description * Clear last_hello_response when invalidating server descriptions * Missed modification begin on topology * Remove redundant casts * Re-silence 'run auth tests' Co-authored-by:
Ezra Chung <88335979+eramongodb@users.noreply.github.com>
-
- Nov 09, 2021
-
-
Jesse Williamson authored
* Bumped WIRE_VERSION_MAX. Added comments to help when searching for maxWireVersion. See: https://jira.mongodb.org/browse/CDRIVER-4165 Signed-off-by:
Jesse Williamson <jesse.williamson@mongodb.com> * Apply clang-format. Signed-off-by:
Jesse Williamson <jesse.williamson@mongodb.com>
-
Kevin Albertson authored
-
Kevin Albertson authored
-
Kevin Albertson authored
-
- Nov 05, 2021
-
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
- Nov 03, 2021
-
-
Kevin Albertson authored
-
Roberto C. Sánchez authored
-
- Oct 20, 2021
-
-
Ezra Chung authored
* Enable skipping of KMS TLS tests via MONGOC_TEST_SKIP_KMS_TLS_TESTS * Add condition for skipping KMS TLS tests on CA cert register failure * Add CA certificate registration routines for MacOS * Add routine to wait for mock KMS server startup completion * Re-enable CSE tests on RHEL variants
-
- Oct 12, 2021
-
-
Ezra Chung authored
* Support detailed certificate verify failure errors with OpenSSL * Support detailed certificate verify failure errors with Secure Channel * Move CSE tests into conditional compilation under MONGOC_ENABLE_SSL * Add Client Side Encryption KMS TLS tests * Fix CA certificate registration failure on Windows * Fix CA certificate registration failure on Red Hat * Add mock KMS servers to Evergreen * Document mock KMS server requirements for CSFLE tests * Disable CSE tests on RHEL until resolution of BUILD-14068
-
- Oct 10, 2021
-
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
Roberto C. Sánchez authored
-
- Oct 06, 2021
-
-
Kevin Albertson authored
-
- Sep 30, 2021
-
-
Kevin Albertson authored
-
- Sep 29, 2021
-
-
Ezra Chung authored
-
- Sep 22, 2021
-
-
vector-of-bool authored
* Allow fine-grained test control via CTest Previously, a single test was defined for test-libmongoc. This change allows CTest to see the individual test cases contained within test-libmongoc. These can be selected and executed with the CTest CLI, including with some parallelism. Tag CXX-2301 CXX-2302 * Fix duplicate test registration * Use a signal handler to see abnormal termination. * Modify multi-conf test behavior to match VS behavior
-
- Sep 21, 2021
-
-
Kevin Albertson authored
-