Allow ignore_cache_size to be reconfigured with a running transaction

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Critical - P2
    • WT12.0.0, 9.1.0-rc0
    • Affects Version/s: None
    • Component/s: APIs
    • None
    • Storage Engines - Transactions
    • 86.541
    • SE Transactions - 2026-09-11
    • 3

      In the recent WT-18006 change, ignore_cache_size is now used to have transaction proceed regardless of cache level. Server has a _noEvictionAfterCommitOrRollback which we apply to certain transactions dynamically. They participate in eviction normally for like read/write, but not when they commit/abort. Previously they were able to reconfigure for a WT_SESSION, but the change prevented reconfigure at the session level while transaction is running. 

       

      {"t":{"$date":"2026-09-06T23:08:52.467+00:00"},"s":"F",  "c":"WT",       "id":11131000,"ctx":"main","msg":"WiredTiger dump error log","attr":{"message":"Error at src/include/txn_inline.h:35: \"EINVAL\" failed with Invalid argument (22)\n"}}
      {"t":{"$date":"2026-09-06T23:08:52.467+00:00"},"s":"F",  "c":"WT",       "id":11131000,"ctx":"main","msg":"WiredTiger dump error log","attr":{"message":"Error at src/txn/txn.c:946: \"__wt_txn_context_check(session, false)\" failed with Invalid argument (22)\n"}}
      {"t":{"$date":"2026-09-06T23:08:52.467+00:00"},"s":"F",  "c":"ASSERT",   "id":23083,   "ctx":"main","msg":"Invariant failure","attr":{"expr":"reconfigure(newConfig.c_str())","error":"BadValue: 22: Invalid argument - not permitted in a running transaction","location":"src/mongo/db/storage/wiredtiger/wiredtiger_session.cpp:238:56:void mongo::WiredTigerSession::modifyConfiguration(const std::string &, std::string)"}}[9:12 AM]#12 0x0000b96b1fb5eb63 in mongo::WiredTigerSession::modifyConfiguration(std::string const&, std::string)
                          at src/mongo/db/storage/wiredtiger/wiredtiger_session.cpp:238:5
           236:         _undoConfigStrings.emplace(std::move(undoConfig));
           237:     }
         > 238:     invariantWTOK(reconfigure(newConfig.c_str()), *this);
                    ^
           239: }
      #13 0x0000b96b1fb49b97 in _txnClose
                         at src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp:518:23
           516:             // bonus-eviction phase. Ignoring the cache size skips that phase, so the call cannot be
           517:             // held up behind eviction.
         > 518:             _session->modifyConfiguration("ignore_cache_size=true", "ignore_cache_size=false");
                                      ^
           519:         } 
      

       

      We need to modify the setting to allow this to be changed while a transaction is ongoing.

            Assignee:
            Alana Huang
            Reporter:
            Alana Huang
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: