WT appears to be accessing the lookaside file while in_memory=true. It should probably discriminate modes and skip that step when in_memory is true. Hopefully a simple fix. MongoDB never exercised recoverable rollback with inMemory before, I believe.
Here's the backtrace from my local testing trying to enable recoverable rollback with the inMemory engine:
/home/dianna/mongo-copy/src/mongo/util/stacktrace_posix.cpp:172:30: mongo::printStackTrace(std::ostream&) /home/dianna/mongo-copy/src/mongo/util/signal_handlers_synchronous.cpp:180:5: mongo::(anonymous namespace)::printSignalAndBacktrace(int) /home/dianna/mongo-copy/src/mongo/util/signal_handlers_synchronous.cpp:276:5: mongo::(anonymous namespace)::abruptQuitWithAddrSignal(int, siginfo_t*, void*) ??:0:0: ?? /home/dianna/mongo-copy/src/third_party/wiredtiger/src/cache/cache_las.c:300:10: __wt_las_cursor /home/dianna/mongo-copy/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c:46:2: __txn_rollback_to_stable_lookaside_fixup /home/dianna/mongo-copy/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c:469:2: __wt_txn_rollback_to_stable /home/dianna/mongo-copy/src/third_party/wiredtiger/src/conn/conn_api.c:1295:2: __conn_rollback_to_stable /home/dianna/mongo-copy/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp:1329:15: mongo::WiredTigerKVEngine::recoverToStableTimestamp(mongo::OperationContext*) /home/dianna/mongo-copy/src/mongo/db/storage/kv/kv_storage_engine.cpp:548:50: mongo::KVStorageEngine::recoverToStableTimestamp(mongo::OperationContext*) /home/dianna/mongo-copy/src/mongo/db/repl/storage_interface_impl.cpp:1058:60: mongo::repl::StorageInterfaceImpl::recoverToStableTimestamp(mongo::OperationContext*) /home/dianna/mongo-copy/src/mongo/db/repl/rollback_impl.cpp:853:57: mongo::repl::RollbackImpl::_recoverToStableTimestamp(mongo::OperationContext*) /home/dianna/mongo-copy/src/mongo/db/repl/rollback_impl.cpp:209:30: mongo::repl::RollbackImpl::runRollback(mongo::OperationContext*) /home/dianna/mongo-copy/src/mongo/db/repl/bgsync.cpp:659:30: mongo::repl::BackgroundSync::_runRollbackViaRecoverToCheckpoint(mongo::OperationContext*, mongo::HostAndPort const&, mongo::repl::OplogInterface*, mongo::repl::StorageInterface*, std::function<mongo::DBClientBase* ()>) /home/dianna/mongo-copy/src/mongo/db/repl/bgsync.cpp:624:9: mongo::repl::BackgroundSync::_runRollback(mongo::OperationContext*, mongo::Status const&, mongo::HostAndPort const&, int, mongo::repl::StorageInterface*) /home/dianna/mongo-copy/src/mongo/db/repl/bgsync.cpp:490:9: mongo::repl::BackgroundSync::_produce() /home/dianna/mongo-copy/src/mongo/db/repl/bgsync.cpp:238:5: mongo::repl::BackgroundSync::_runProducer() /home/dianna/mongo-copy/src/mongo/db/repl/bgsync.cpp:199:13: mongo::repl::BackgroundSync::_run() /home/dianna/mongo-copy/src/mongo/db/repl/bgsync.cpp:157:53: mongo::repl::BackgroundSync::startup(mongo::OperationContext*)::$_2::operator()() const /opt/mongodbtoolchain/v2/bin/../lib/gcc/x86_64-mongodb-linux/5.4.0/../../../../include/c++/5.4.0/functional:1530:18: void std::_Bind_simple<mongo::repl::BackgroundSync::startup(mongo::OperationContext*)::$_2 ()>::_M_invoke<>(std::_Index_tuple<>) /opt/mongodbtoolchain/v2/bin/../lib/gcc/x86_64-mongodb-linux/5.4.0/../../../../include/c++/5.4.0/functional:1520:16: std::_Bind_simple<mongo::repl::BackgroundSync::startup(mongo::OperationContext*)::$_2 ()>::operator()() /opt/mongodbtoolchain/v2/bin/../lib/gcc/x86_64-mongodb-linux/5.4.0/../../../../include/c++/5.4.0/thread:115:13: std::thread::_Impl<std::_Bind_simple<mongo::repl::BackgroundSync::startup(mongo::OperationContext*)::$_2 ()> >::_M_run() /data/mci/26b9e5d7c61766d896483614d1d3f40a/toolchain-builder/build-gcc-v2.sh-coB/x86_64-mongodb-linux/libstdc++-v3/src/c++11/../../../../../gcc-5.4.0/libstdc++-v3/src/c++11/thread.cc:84:0: execute_native_thread_routine /build/buildd/glibc-2.21/nptl/pthread_create.c:333:0: start_thread /build/buildd/glibc-2.21/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109:0: clone
- is depended on by
-
SERVER-35805 Maintain checkpoint thread timestamp information for the inMemory storage engine and thereby support recoverable rollback with inMemory
- Closed
- is related to
-
WT-4175 Create test for timestamps, rollback and in-memory
- Closed