Treat the updates with WT_TS_NONE timestamp and not aborted transaction id are to be treated as a valid stable update. In the rollback fuzzer unclean shutdown test, the updates inserted with a WT_TS_NONE timestamp.
The test failure is can found here:
https://evergreen.mongodb.com/task/mongodb_mongo_v4.4_enterprise_rhel_62_64_bit_rollback_fuzzer_unclean_shutdowns_0_enterprise_rhel_62_64_bit_60369839c72b029a884f3f24221287220066700d_20_03_30_03_47_46/0
With the following fix, the test passes:
diff --git a/src/txn/txn_rollback_to_stable.c b/src/txn/txn_rollback_to_stable.c
index cdf5f93a9..c65a42175 100644
--- a/src/txn/txn_rollback_to_stable.c
+++ b/src/txn/txn_rollback_to_stable.c
@@ -30,6 +30,12 @@ __rollback_abort_newer_update(WT_SESSION_IMPL *session, WT_UPDATE *first_upd,
if (upd->txnid == WT_TXN_ABORTED || upd->start_ts == WT_TS_NONE) {
if (upd == first_upd)
first_upd = upd->next;
+
+ /*
+ * Consider WT_TS_NONE timestamped update as a valid stable update if it is not aborted.
+ */
+ if (upd->txnid != WT_TXN_ABORTED)
+ *stable_update_found = true;
} else if (rollback_timestamp < upd->durable_ts) {
/*
* If any updates are aborted, all newer updates better be aborted as well.