Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-77679

Untimestamped write assertion hit when running with recoverFromOplogAsStandalone=true

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0, 7.0.0-rc6
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • ALL
    • v7.0
    • Execution NAMR Team 2023-06-26

      max.hirschhorn@mongodb.com was inspecting a build failure and tried to launch mongod with --setParameter recoverFromOplogAsStandalone=true, and ran into the following error:

      {"t":{"$date":"2023-06-01T04:44:34.289+00:00"},"s":"E",  "c":"WT",       "id":22435,   "ctx":"LogicalSessionCacheReap","msg":"WiredTiger error message","attr":{"error":22,"message":{"ts_sec":1685594674,"ts_usec":289706,"thread":"16346:0x7f1480455700","session_name":"WT_SESSION.commit_transaction","category":"WT_VERB_DEFAULT","category_id":10,"verbose_level":"ERROR","verbose_level_id":-3,"msg":"__txn_timestamp_usage_check:873:file:index-20-1468040283224572967.wt: unexpected timestamp usage: no timestamp provided for an update to a table configured to always use timestamps once they are first used","error_str":"Invalid argument","error_code":22}}}
      {"t":{"$date":"2023-06-01T04:44:34.289+00:00"},"s":"F",  "c":"ASSERT",   "id":23083,   "ctx":"LogicalSessionCacheReap","msg":"Invariant failure","attr":{"expr":"wtRet","error":"BadValue: 22: Invalid argument","file":"src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp","line":377}}
      {"t":{"$date":"2023-06-01T04:44:34.289+00:00"},"s":"F",  "c":"ASSERT",   "id":23084,   "ctx":"LogicalSessionCacheReap","msg":"\n\n***aborting after invariant() failure\n\n"}
      

      This is a background thread doing untimestamped writes on the config.transactions collection.

      Even though allowUnsafeUntimestampedWrites=true was used, the error still fired because we assumed there would be no untimestamped writes when running with recoverFromOplogAsStandalone=true, but that's not true.

            Assignee:
            gregory.wlodarek@mongodb.com Gregory Wlodarek
            Reporter:
            gregory.wlodarek@mongodb.com Gregory Wlodarek
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: