A new test, reveals an issue.
A new test, reveals an issue.

Combination of commute and pre-commit check is potentially
dangerous due to the pre-commit checks not being isolated like
the commutes are. Due to this, the pre-commit check triggered
within a commute sub-transaction can read something read in the
main transaction, and potentially see a different, newer value.
Such a transaction would be retried, but the pre-commit might
throw an exception before that, thinking that a transaction is
trying to break an invariant.
jbakic/Shielded,wizardbeard/Shielded