anchor.diff:           (ensure-tx)
            (go run-tx))
   
  +       ;; since we are validating parent-log, we should update its read-version
  +       ;; otherwise the nested transactions (which inherit the parent read-version)
  +       ;; can enter an infinite retry or rerun loop
  +       (setf (tlog-read-version parent-log) (global-clock/on-abort (tlog-read-version parent-log)))
  +
          (when (invalid? parent-log)
            (log.debug me "Parent tlog ~A is invalid, re-running it"
                       (~ parent-log))
  
positive.code:              (setf (tlog-read-version log) (global-clock/on-abort read-version))
               ;; it's a new TLOG or one that RETRIED? then set read-version normally
               (setf (tlog-read-version log) (global-clock/on-read))))
         
         
  
         (handler-case
             (return-from run-orelse
  
negative.code:              (orelse-tx-log tx) log)
  
         #-always
         ;; in a nested transaction we must use the same read-version as the parent
         ;; because we inherit its tlog-reads and tlog-writes...
         (setf (tlog-read-version log) (tlog-read-version parent-log))
  
         #+never
         (let1 read-version (tlog-read-version log)
  