We are seeing a failure in MongoDb testing where the following assert in __curfile_reopen fails:
WT_ASSERT(session, can_reopen || dhandle != session->dhandle);
This code was added recently as part of WT-6743.
MongoDB stacktrace:
mongo::stack_trace_detail::(anonymous namespace)::printStackTraceImpl(mongo::stack_trace_detail::(anonymous namespace)::Options const&, mongo::StackTraceSink*) mongo::printStackTrace() abruptQuit killpg gsignal abort __wt_abort __curfile_reopen __wt_session_cursor_cache_sweep __wt_cursor_cache_release __curfile_close mongo::WiredTigerSession::closeAllCursors(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) mongo::WiredTigerSessionCache::releaseSession(mongo::WiredTigerSession*) mongo::WiredTigerRecoveryUnit::~WiredTigerRecoveryUnit() mongo::WiredTigerRecoveryUnit::~WiredTigerRecoveryUnit() std::unique_ptr<mongo::RecoveryUnit, std::default_delete<mongo::RecoveryUnit> >::~unique_ptr() mongo::OperationContext::~OperationContext() mongo::OperationContext::~OperationContext() mongo::ServiceContext::OperationContextDeleter::operator()(mongo::OperationContext*) const mongo::transport::ServiceStateMachine::Impl::processMessage() mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::then<mongo::transport::ServiceStateMachine::Impl::startNewLoop(mongo::Status const&)::$_9>(mongo::transport::ServiceStateMachine::Impl::startNewLoop(mongo::Status const&)::$_9&&) &&::{lambda(mongo::future_details::FakeVoid&&)#1}::operator()(mongo::future_details::FakeVoid&&) const mongo::transport::ServiceStateMachine::Impl::startNewLoop(mongo::Status const&) void mongo::unique_function<void (mongo::Status)>::callRegularVoid<mongo::transport::ServiceStateMachine::Impl::startNewLoop(mongo::Status const&)::$_11::operator()(mongo::Status) const::{lambda(mongo::Status)#1}>(std::integral_constant<bool, true>, mongo::transport::ServiceStateMachine::Impl::startNewLoop(mongo::Status const&)::$_11::operator()(mongo::Status) const::{lambda(mongo::Status)#1}&, mongo::Status&&) void mongo::unique_function<void (mongo::Status)>::callRegularVoid<mongo::transport::ServiceExecutorSynchronous::runOnDataAvailable(std::shared_ptr<mongo::transport::Session> const&, mongo::unique_function<void (mongo::Status)>)::$_5>(std::integral_constant<bool, true>, mongo::transport::ServiceExecutorSynchronous::runOnDataAvailable(std::shared_ptr<mongo::transport::Session> const&, mongo::unique_function<void (mongo::Status)>)::$_5&, mongo::Status&&) mongo::unique_function<void ()>::makeImpl<mongo::transport::ServiceExecutor::schedule(mongo::unique_function<void (mongo::Status)>)::{lambda()#1}>(mongo::transport::ServiceExecutor::schedule(mongo::unique_function<void (mongo::Status)>)::{lambda()#1}&&)::SpecificImpl::call() void mongo::unique_function<void ()>::callRegularVoid<mongo::transport::ServiceExecutorSynchronous::scheduleTask(mongo::unique_function<void ()>, mongo::transport::ServiceExecutor::ScheduleFlags)::$_4>(std::integral_constant<bool, true>, mongo::transport::ServiceExecutorSynchronous::scheduleTask(mongo::unique_function<void ()>, mongo::transport::ServiceExecutor::ScheduleFlags)::$_4&) void mongo::unique_function<void ()>::callRegularVoid<mongo::launchServiceWorkerThread(mongo::unique_function<void ()>)::$_3>(std::integral_constant<bool, true>, mongo::launchServiceWorkerThread(mongo::unique_function<void ()>)::$_3&) mongo::(anonymous namespace)::runFunc(void*) start_thread clone