Release Notes - Core Server - Version 3.1.5 - HTML format

Bug

  • [SERVER-2454] - Queries that are killed during a yield should return error to user instead of partial result set
  • [SERVER-12376] - $skip and $limit should be moved before $project
  • [SERVER-13008] - Encoding of projection for query plan cache should be type-insensitive
  • [SERVER-15017] - benchRun might return incorrect stats values
  • [SERVER-15217] - v2.6 query plan ranking test "NonCoveredIxisectFetchesLess" relies on order of deleted record list
  • [SERVER-16790] - Lengthy pauses associated with checkpoints under WiredTiger
  • [SERVER-17078] - show databases taking extraordinarily long with wiredTiger
  • [SERVER-17199] - Fix building on platforms without execinfo.h
  • [SERVER-17254] - WT: drop collection while concurrent oplog tailing may greatly reduce throughput
  • [SERVER-17259] - Coverity analysis defect 56350: Dereference null return value
  • [SERVER-17386] - Cursor cache causes excessive memory utilization in WiredTiger
  • [SERVER-18053] - Building with the enterprise module should error out if SSL is not enabled
  • [SERVER-18062] - Creating an index on a collection in a non-existent database when connected to mongos throws error
  • [SERVER-18086] - canonical_query_test helper parseNormalize() keeps pointers to memory inside freed BSONObj
  • [SERVER-18143] - Coverity analysis defect 72592: Argument cannot be negative
  • [SERVER-18266] - Standardize token-length limits between RLP and Snowball
  • [SERVER-18309] - Sparse indexes should not be assigned to {$in: [null, ...]} predicates
  • [SERVER-18376] - Interface changes for SERVER-18099 broke C# 1.0 drivers from access to 3.1.x servers
  • [SERVER-18397] - Lower the log level of the "Skipping RLP Initialization" message
  • [SERVER-18446] - Improve error message when RLP's processBuffer function fails
  • [SERVER-18459] - Include third party notices file in enterprise zips
  • [SERVER-18485] - Missing language aliases for experimental RLP languages
  • [SERVER-18524] - Different parsing for RLP index keys and queries leads to missing results
  • [SERVER-18552] - Delimiters are indexed in text indexes
  • [SERVER-18574] - Typo in RLP error message when failing to create language context
  • [SERVER-18578] - ErrorCodes::InternalError used for public facing messages in RLP code
  • [SERVER-18679] - Wrong key count for reverse indexes in WT
  • [SERVER-18714] - Coverity analysis defect 72703: Redundant test
  • [SERVER-18736] - Coverity analysis defect 72719: Dereference null return value
  • [SERVER-18778] - Coverity analysis defect 72724: PW.PARAMETER_HIDDEN
  • [SERVER-18807] - rollback should drop dblock when fetching docs over the network
  • [SERVER-18829] - Cache usage exceeds configured maximum during index builds under WiredTiger
  • [SERVER-18830] - Explain on near query with limit leaves out last search interval
  • [SERVER-18838] - DB fails to recover creates and drops after system crash
  • [SERVER-18843] - resmoke.py should not summarize all previous executions until it finishes
  • [SERVER-18858] - MatchExpression use-after-free after dropping partial index
  • [SERVER-18859] - Logging before dynamic initializers have run in thread_name.cpp leaks memory
  • [SERVER-18863] - Coverity analysis defect 72746: PW.PARAMETER_HIDDEN
  • [SERVER-18873] - Wrong value used in applyUntilAndPause uassert message
  • [SERVER-18876] - Coverity analysis defect 49646: Unchecked return value
  • [SERVER-18881] - Limit with explain("executionStats") has limitAmount as 0
  • [SERVER-18891] - Coverity analysis defect 72756: Unchecked return value
  • [SERVER-18894] - OSX SSL builds should use unique filename
  • [SERVER-18902] - Retrieval of documents larger that 1MB slower on WiredTiger than MMAPv1
  • [SERVER-18903] - Unreachable code in DataReplicator::_onOplogFetchFinish
  • [SERVER-18910] - Path in distribution does not contain version
  • [SERVER-18933] - Resmoke doesn't honor --continueOnFailure in ASAN builds
  • [SERVER-18939] - Using <rs name>/localhost to configure mongos causes segfault
  • [SERVER-18954] - Race in replset_distlock_manager_test can cause it to grab out of scope test mutex
  • [SERVER-18962] - Fatal assertion on profiling-enabled secondary when dropping system.profile collection on primary
  • [SERVER-18974] - dropCollection fails because setShardVersion request is incorrect
  • [SERVER-18976] - replset_dist_lock_manager_test deadlock
  • [SERVER-18977] - Initscript does not stop a running mongod daemon
  • [SERVER-18978] - Fix comment word wrapping indentation
  • [SERVER-18979] - Duplicate uassert & fassert codes
  • [SERVER-18998] - UnboundLocalError when building with --sanitize=thread and without --llvm-symbolizer
  • [SERVER-19004] - mongos segfault with master nightly in Jenkins
  • [SERVER-19025] - add fassertStatusOK to errorcodes.py
  • [SERVER-19028] - CommandRequest constructor should validate database name
  • [SERVER-19033] - find command should validate 1st parameter
  • [SERVER-19034] - log command failures at level 1
  • [SERVER-19040] - WhereMatchExpression::shallowClone can leak memory during interruption
  • [SERVER-19045] - don't throw non-exceptions
  • [SERVER-19046] - myTerminate terminate handler self deadlocks when re-entered
  • [SERVER-19051] - Cleanup memory allocated by SSLThreadInfo
  • [SERVER-19055] - Cleanup memory in scoped_db_conn_test
  • [SERVER-19059] - mismatch in protocolVersion field
  • [SERVER-19070] - scons lint fails while downloading clang-format
  • [SERVER-19079] - WiredTiger changes for MongoDB 3.1.5
  • [SERVER-19110] - Ignore failed operations in mixed_storage_version_replication.js
  • [SERVER-19127] - unittest::Test::stopCapturingLogMessages has a sometimes fatal race condition
  • [SERVER-19143] - race in setting OpDebug ns can cause invalid BSON to be returned from currentOp command

New Feature

  • [SERVER-4589] - aggregation: need an array indexing operator
  • [SERVER-5044] - $stdDev aggregation operator for standard deviation
  • [SERVER-14421] - Support minDistance for $geoNear aggregation operator
  • [SERVER-16737] - support eviction_dirty_trigger for WiredTiger
  • [SERVER-18811] - Improve OpenSSL crypto wrapper (Enterprise)
  • [SERVER-18898] - separate evergreen project for collecting mongo-perf benchmarks
  • [SERVER-18980] - Include wiredtiger_ext.h in mongo integration

Task

  • [SERVER-16912] - Complete the implementation of GeoMatchExpression::equivalent()
  • [SERVER-17988] - KMIP - client messaging API implementation
  • [SERVER-17990] - KMIP - refactor SSL interface to allow multiple outgoing certificates
  • [SERVER-18036] - DataReplicator: Add steady state skeleton
  • [SERVER-18153] - Implement command repldata responses
  • [SERVER-18167] - handle BSON validation in OP_COMMAND/OP_COMMANDREPLY
  • [SERVER-18236] - Refactor metadata to use OP_COMMAND metadata object
  • [SERVER-18385] - implement dryrun elections
  • [SERVER-18391] - Remove PyYAML installation code from evergreen.yml
  • [SERVER-18435] - Integrate RS monitor with RemoteCommandTargeterRS
  • [SERVER-18437] - Improve Concurrency of Sharding registry
  • [SERVER-18438] - Add a RemoteCommandTargeter to Shard
  • [SERVER-18464] - Move per-shard connection management to Shard
  • [SERVER-18551] - Get an Evergreen project running with spidermonkey as the js-engine
  • [SERVER-18554] - implement OP_COMMAND logging
  • [SERVER-18570] - Add getters for Message _buf and _data
  • [SERVER-18575] - Add clang_format.py
  • [SERVER-18576] - Enhance upload.py
  • [SERVER-18579] - Enforce clang-format in MCI
  • [SERVER-18589] - Implement Dist Lock Catalog
  • [SERVER-18596] - Implement lock expiration takeover for replSets distlock manager
  • [SERVER-18623] - Create basic Executor interface and change ReplicationExecutor to implement it
  • [SERVER-18632] - Sign build artifacts with 3.2 server key
  • [SERVER-18723] - Replace boost:: with stdx:: for concurrency types
  • [SERVER-18780] - decrease the timeout for selecting syncsource back to the original 30 seconds in server6733.js
  • [SERVER-18791] - Pull count command parsing into a separate library
  • [SERVER-18800] - Expand support for $in queries to be answered by partial index
  • [SERVER-18809] - Community portion of ESE project
  • [SERVER-18815] - Shard object lifetime shoud be managed by the ShardRegistry
  • [SERVER-18868] - Make startParallelShell() assert that the exit code is 0 by default
  • [SERVER-18901] - Move QueryFetcher out of data_replicator.cpp and into its own library
  • [SERVER-18929] - Add method to get how many bytes can be written in to ReplyBuilderInterface
  • [SERVER-18935] - dbtests require journaling to be on
  • [SERVER-18943] - Test framework for Catalog Manager Replica set
  • [SERVER-18947] - Implement getCollection in the replica set catalog manager
  • [SERVER-18949] - Implement getDatabase in the replica set catalog manager
  • [SERVER-18950] - Make LiteParsedQuery return StatusWith<std::unique_ptr>
  • [SERVER-18996] - Implement getAllShards for RS Catalog Manager and write accompanying tests
  • [SERVER-19002] - Remove variantdir options from evergreen yaml files
  • [SERVER-19005] - Support C++ death tests which test that the process terminates abnormally
  • [SERVER-19010] - support sending and receiving metadata in RemoteCommandRunner
  • [SERVER-19016] - RS Catalog Manager implementation of user management command running
  • [SERVER-19020] - Implement getChunks in the replica set catalog manager
  • [SERVER-19021] - RS Catalog Manager implementation of special config-only write methods (logAction, logChange, and applyChunkOpsDeprecated)
  • [SERVER-19035] - Implement OP_COMMAND autodetection in the clientdriver
  • [SERVER-19041] - Simplify mutex usage
  • [SERVER-19069] - Implement getTagsForCollection in the replica set catalog manager
  • [SERVER-19078] - CatalogManager::getChunks should accept sort and limit
  • [SERVER-19115] - Clean up how we launch async operations in catalog manager unit tests to prevent deadlocks on assertion failures
  • [SERVER-19117] - Implement asynchronous replication NetworkInterface
  • [SERVER-19120] - switch jscore_op_command to jscore_op_query now that we use OP_COMMAND by default
  • [SERVER-19164] - Enable /bigobj compiler option for Windows debug builds

Improvement

  • [SERVER-3495] - Include sparse/attr in explain output
  • [SERVER-6686] - xtime_get() method is deprecated
  • [SERVER-9435] - mongoutils::str::stripTrailing() is misnamed
  • [SERVER-9567] - Add support for seperate debug info files on ELF
  • [SERVER-10176] - Implement $abs (absolute value) operator for aggregation framework
  • [SERVER-14872] - Aggregation pipeline project expression operator to concatenate multiple arrays into one
  • [SERVER-15732] - Abort election if term increases
  • [SERVER-17307] - Replace uses of boost::shared_ptr with std::shared_ptr
  • [SERVER-17308] - Replace boost::scoped_ptr with std::unique_ptr
  • [SERVER-17309] - Replace std::auto_ptr with std::unique_ptr
  • [SERVER-17789] - Remove options influenced variant directory generation
  • [SERVER-17810] - "matchTested" exec stage statistic is misleading
  • [SERVER-17854] - Allow $or predicates to be indexed by partial indexes
  • [SERVER-17858] - Partial indexes should support more complex queries
  • [SERVER-18180] - Clean up partial_index tests for style and clarity
  • [SERVER-18501] - Improve error message when server fails to start due to unsupported text index language
  • [SERVER-18502] - Remove unused RLP declarations
  • [SERVER-18572] - resmoke.py should prefix test log output with a timestamp
  • [SERVER-18588] - Adjust read-after-optime interface
  • [SERVER-18660] - Add C++11 final and override specifiers where appropriate in aggreggation classes
  • [SERVER-18662] - Refactor SSLManager's Constructor for Better Memory Management
  • [SERVER-18717] - compose electionId in OID format from term
  • [SERVER-18756] - resmoke.py should write combined report of repeated executions
  • [SERVER-18795] - db.printSlaveReplicationInfo()/rs.printSlaveReplicationInfo() can not work with ARBITER role
  • [SERVER-18797] - Enable FSM sharded replication
  • [SERVER-18810] - FSM - sharding tests using 2 mongos
  • [SERVER-18834] - Expose way for how to run jstests specified on resmoke.py command line
  • [SERVER-18839] - Define suites for subsets of unittests from each major area of the codebase
  • [SERVER-18866] - make global replication coordinator a decoration on service context
  • [SERVER-18870] - AND_SORTED and AND_HASH may never have a non-null filter
  • [SERVER-18878] - FSM workloads with replication should be completed on secondary before next workload runs
  • [SERVER-18883] - Separate user role resolution into own function
  • [SERVER-18953] - Generate debug symbols on OS X
  • [SERVER-18991] - Standardize on MONGO_DISALLOW_COPYING
  • [SERVER-19029] - Configure boost thread to more closely model the standard
  • [SERVER-19052] - Remove sizeStorer recalculations at startup with WiredTiger
  • [SERVER-19054] - Don't be too chatty about periodic tasks taking a few ms
  • [SERVER-19106] - remove 'extra' variable from OpDebug
  • [SERVER-19130] - Specify Oplog size for mongo-perf benchmarks running with oplog
  • [SERVER-19135] - Tune default cache size settings for WiredTiger
  • [SERVER-19163] - Remove query only tests from mongo-perf evergreen when running with oplog

Edit/Copy Release Notes

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