Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-5966

4.4 downgrade can result in 4.2 core dumps if cells are ignored

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.2.6
    • Affects Version/s: None
    • Component/s: None
    • 8
    • Storage Engines 2020-04-06, Storage - Tora 2020-04-20

      There have been a few tests in the multiversion test suite that have been hitting this segfault in various downgrade scenarios.

      (lldb) bt
      * thread #1, name = 'mongod-4.2', stop reason = signal SIGSEGV
        * frame #0: 0x0000564ee449c6b5 mongod-4.2`__wt_row_leaf_key_work at btree.i:873
          frame #1: 0x0000564ee449c6b5 mongod-4.2`__wt_row_leaf_key_work
          frame #2: 0x0000564ee449c68b mongod-4.2`__wt_row_leaf_key_work(session=0x0000564ee9ad2dc0, page=0x0000564ee9ad2dc0, rip_arg=0x0000564eeec33ad8, keyb=0x0000564eeed414b0, instantiate=false) at row_key.c:197
          frame #3: 0x0000564ee44a51a2 mongod-4.2`__wt_row_search at btree.i:982
          frame #4: 0x0000564ee4454ebc mongod-4.2`__wt_btcur_search_near at bt_cursor.c:392
          frame #5: 0x0000564ee43b4c8b mongod-4.2`__curfile_search_near at cur_file.c:231
          frame #6: 0x0000564ee434cf71 mongod-4.2`int mongo::wiredTigerPrepareConflictRetry<mongo::(anonymous namespace)::WiredTigerIndexCursorBase::seekWTCursor(mongo::KeyString const&)::'lambda'()>(mongo::OperationContext*, mongo::(anonymous namespace)::WiredTigerIndexCursorBase::seekWTCursor(mongo::KeyString const&)::'lambda'()&&) at wiredtiger_index.cpp:1029
          frame #7: 0x0000564ee434d651 mongod-4.2`mongo::(anonymous namespace)::WiredTigerIndexCursorBase::seekWTCursor(this=0x0000564eeec52000, query=<unavailable>) const at wiredtiger_index.cpp:1029
          frame #8: 0x0000564ee4351636 mongod-4.2`mongo::(anonymous namespace)::WiredTigerIndexCursorBase::seek(mongo::BSONObj const&, bool, mongo::SortedDataInterface::Cursor::RequestedInfo) at wiredtiger_index.cpp:850
          frame #9: 0x0000564ee4b66c56 mongod-4.2`mongo::IndexScan::initIndexScan() at index_scan.cpp:111
          frame #10: 0x0000564ee4b67d0f mongod-4.2`mongo::IndexScan::doWork(unsigned long*) at index_scan.cpp:129
          frame #11: 0x0000564ee4b74268 mongod-4.2`mongo::PlanStage::work(unsigned long*) at plan_stage.cpp:47
          frame #12: 0x0000564ee4b5c7b9 mongod-4.2`mongo::FetchStage::doWork(unsigned long*) at fetch.cpp:84
          frame #13: 0x0000564ee4b74268 mongod-4.2`mongo::PlanStage::work(unsigned long*) at plan_stage.cpp:47
          frame #14: 0x0000564ee4b69a26 mongod-4.2`mongo::LimitStage::doWork(unsigned long*) at limit.cpp:65
          frame #15: 0x0000564ee4b74268 mongod-4.2`mongo::PlanStage::work(unsigned long*) at plan_stage.cpp:47
          frame #16: 0x0000564ee4bbb790 mongod-4.2`mongo::PlanExecutorImpl::_getNextImpl(mongo::Snapshotted<mongo::BSONObj>*, mongo::RecordId*) at plan_executor_impl.cpp:528
          frame #17: 0x0000564ee4bbbeed mongod-4.2`mongo::PlanExecutorImpl::getNext(mongo::BSONObj*, mongo::RecordId*) at plan_executor_impl.cpp:381
          frame #18: 0x0000564ee48862e3 mongod-4.2`mongo::(anonymous namespace)::FindCmd::Invocation::run(mongo::OperationContext*, mongo::rpc::ReplyBuilderInterface*) at find_cmd.cpp:456
          frame #19: 0x0000564ee457a485 mongod-4.2`mongo::(anonymous namespace)::runCommandImpl(mongo::OperationContext*, mongo::CommandInvocation*, mongo::OpMsgRequest const&, mongo::rpc::ReplyBuilderInterface*, mongo::LogicalTime, mongo::ServiceEntryPointCommon::Hooks const&, mongo::BSONObjBuilder*, mongo::OperationSessionInfoFromClient const&) at service_entry_point_common.cpp:614
          frame #20: 0x0000564ee457cbc4 mongod-4.2`mongo::(anonymous namespace)::receivedCommands(mongo::OperationContext*, mongo::Message const&, mongo::ServiceEntryPointCommon::Hooks const&)::'lambda'()::operator()() const at service_entry_point_common.cpp:916
          frame #21: 0x0000564ee457d92a mongod-4.2`mongo::ServiceEntryPointCommon::handleRequest(mongo::OperationContext*, mongo::Message const&, mongo::ServiceEntryPointCommon::Hooks const&) at service_entry_point_common.cpp:1072
          frame #22: 0x0000564ee456b5ac mongod-4.2`mongo::ServiceEntryPointMongod::handleRequest(mongo::OperationContext*, mongo::Message const&) at service_entry_point_mongod.cpp:262
          frame #23: 0x0000564ee54b6e0e mongod-4.2`mongo::(anonymous namespace)::loopbackBuildResponse(mongo::OperationContext*, mongo::LastError*, mongo::Message&) at dbdirectclient.cpp:147
          frame #24: 0x0000564ee54b731a mongod-4.2`mongo::DBDirectClient::call(mongo::Message&, mongo::Message&, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) at dbdirectclient.cpp:152
          frame #25: 0x0000564ee5644bd6 mongod-4.2`mongo::DBClientCursor::init() at dbclient_cursor.cpp:184
          frame #26: 0x0000564ee5638086 mongod-4.2`mongo::DBClientBase::query(mongo::NamespaceStringOrUUID const&, mongo::Query, int, int, mongo::BSONObj const*, int, int) at dbclient_base.cpp:680
          frame #27: 0x0000564ee54b6930 mongod-4.2`mongo::DBDirectClient::query(mongo::NamespaceStringOrUUID const&, mongo::Query, int, int, mongo::BSONObj const*, int, int) at dbdirectclient.cpp:172
          frame #28: 0x0000564ee46e703e mongod-4.2`mongo::shardmetadatautil::readShardChunks(mongo::OperationContext*, mongo::NamespaceString const&, mongo::BSONObj const&, mongo::BSONObj const&, boost::optional<long long>, mongo::OID const&) at shard_metadata_util.cpp:307
          frame #29: 0x0000564ee46ee6cb mongod-4.2`mongo::ShardServerCatalogCacheLoader::_schedulePrimaryGetChunksSince(mongo::OperationContext*, mongo::NamespaceString const&, mongo::ChunkVersion const&, long long, std::function<void (mongo::OperationContext*, mongo::StatusWith<mongo::CatalogCacheLoader::CollectionAndChangedChunks>)>, std::shared_ptr<mongo::Notification<void> >) at shard_server_catalog_cache_loader.cpp:172
          frame #30: 0x0000564ee46f47ef mongod-4.2`_ZZN5mongo15unique_functionIFvNS_6StatusEEE8makeImplIZNS_29ShardServerCatalogCacheLoader14getChunksSinceERKNS_15NamespaceStringENS_12ChunkVersionESt8functionIFvPNS_16OperationContextENS_10StatusWithINS_18CatalogCacheLoader26CollectionAndChangedChunksEEEEEEUlT_E0_EEDaOSJ_EN12SpecificImpl4callEOS1_ at shard_server_catalog_cache_loader.cpp:414
          frame #31: 0x0000564ee4ad6c80 mongod-4.2`mongo::ThreadPool::_doOneTask(std::unique_lock<mongo::latch_detail::Latch>*) at functional.h:109
          frame #32: 0x0000564ee4ad7ed1 mongod-4.2`mongo::ThreadPool::_consumeTasks() at thread_pool.cpp:294
          frame #33: 0x0000564ee4ad9065 mongod-4.2`mongo::ThreadPool::_workerThreadBody(mongo::ThreadPool*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at thread_pool.cpp:247
          frame #34: 0x0000564ee5df0f7f mongod-4.2`execute_native_thread_routine at thread.cc:80
          frame #35: 0x00007fda9ffcc6db libpthread.so.0`start_thread + 219
          frame #36: 0x00007fda9fcf588f libc.so.6`__GI___clone at clone.S:95
      

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            alex.cameron@mongodb.com Alex Cameron (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: