When updating oldest_timestamp we also txn_update_pinned_timestamp where we fetch the current pinned timestamp, do some validations and under a write lock update the txn_global->pinned_timestamp. It is possible that between the time of fetch and update, the actual pinned timestamp moved backward due to a new transaction with a read_timestamp older than the current pinned timestamp . The new transaction began successfully because it started before the oldest_timestamp update thread. But the transaction commit or rollback would fail because it would see pinned is ahead of the transaction's read_timestamp.
WT-4338 New WT_TXN_TS_XXX flags break #undef HAVE_TIMESTAMPS build