_txn_rollback_to_stable_lookaside_fixup() and _txn_rollback_to_stable_btree() both include a code fragment like this:
/* * Copy the stable timestamp, otherwise we'd need to lock it each time * it's accessed. Even though the stable timestamp isn't supposed to be * updated while rolling back, accessing it without a lock would * violate protocol. */ rollback_timestamp = txn_global->stable_timestamp;
However, WT_TXN_GLOBAL.stable_timestamp is not declared volatile, so there's nothing to prevent the compiler from reordering or rewriting the instruction.