-
Type: Bug
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
ALL
In WT-9042, the WT code to set the global timestamps was simplified, but also changed to eliminate possible races and to validate the final state of the timestamps. Running an MDB server build reported some errors.
The MDB server build is here:
https://spruce.mongodb.com/version/626427e83e8e866de9dca260/tasks?limit=20&page=0&sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC
There are complaints about setting the oldest timestamp after stable, here's an example from replica_sets_large_txns_format_2_enterprise-rhel-80-64-bit-dynamic-all-feature-flags-required, at: https://logkeeper.mongodb.org/build/3f81046
{"ts_sec":1650735882,"ts_usec":511535,"thread":"22910:0x7f53ff400500","session_name":"WT_CONNECTION.set_timestamp","category":"WT_VERB_DEFAULT","category_id":9,"verbose_level":"ERROR","verbose_level_id":-3,"msg":"__wt_txn_global_set_timestamp:421:set_timestamp: oldest timestamp (1650735870, 106) must not be after the stable timestamp (1650735870, 6)","error_str":"Invalid argument","error_code":22}}} [js_test:startup_recovery_for_restore_needs_rollback] d20521| {"t":{"$date":"2022-04-23T17:44:42.511+00:00"},"s":"F", "c":"ASSERT", "id":23083, "ctx":"initandlisten","msg":"Invariant failure","attr":{"expr":"_conn->set_timestamp(_conn, oldestTSConfigString.c_str())","error":"BadValue: 22: Invalid argument","file":"src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp","line":2282}} [js_test:startup_recovery_for_restore_needs_rollback] d20521| {"t":{"$date":"2022-04-23T17:44:42.511+00:00"},"s":"F", "c":"ASSERT", "id":23084, "ctx":"initandlisten","msg":"\n\n***aborting after invariant() failure\n\n"}
There are complaints about setting the durable timestamp before stable, here's an example from disk_wiredtiger, at: https://logkeeper.mongodb.org/build/ec4076fcbe010429d5ba553821902f95/test/62642f26be07c42af4119b16?raw=1
{"ts_sec":1650732901,"ts_usec":804554,"thread":"11348:0x7fbc01cb3700","session_name":"WT_CONNECTION.set_timestamp","category":"WT_VERB_DEFAULT","category_id":9,"verbose_level":"ERROR","verbose_level_id":-3,"msg":"__wt_txn_global_set_timestamp:409:set_timestamp: durable timestamp (0, 1) must not be before the stable timestamp (1650732887, 2)","error_str":"Invalid argument","error_code":22}}} [js_test:repair_invalidates_replica_set_config] d20021| {"t":{"$date":"2022-04-23T16:55:01.804+00:00"},"s":"F", "c":"ASSERT", "id":23083, "ctx":"ReplCoordExtern-0","msg":"Invariant failure","attr":{"expr":"_conn->set_timestamp(_conn, oldestTSConfigString.c_str())","error":"BadValue: 22: Invalid argument","file":"src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp","line":2282}}
- has to be done before
-
WT-9042 commit/durability timestamps can race, perform potentially unnecessary checks
- Backlog