Suppose we have T@20 -> U@10 on the update chain and the oldest timestamp is at 10 now. Checkpoint comes to the key and decide to write U@10 to the data store with time window (10, 20). Concurrently the oldest timestamp is moved to 20. Another thread then add a new update U@30 to the update chain and it triggers the obsolete check logic. Obsolete check frees U@10 because T@20 is now globally visible. Reconciliation resumes and it will crash because U@10 is freed.