Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release-20.1: kv: declare write access to AbortSpan on all aborting EndTxn reqs #48410

Merged

Commits on May 4, 2020

  1. kv: declare write access to AbortSpan on all aborting EndTxn reqs

    Fixes cockroachdb#43707.
    Fixes cockroachdb#48046.
    Fixes cockroachdb#48189.
    
    Part of the change made by cockroachdb#42765 was to clear AbortSpan entries on
    non-poisoning, aborting EndTxn requests. Specifically, this change was
    made in 1328787. The change forgot to update the corresponding span
    declaration logic to reflect the fact that we were now writing to the
    AbortSpan in cases where we previously weren't.
    
    This was triggering an assertion in race builds that tried to catch this
    kind of undeclared span access. The assertion failure was very rare
    because it required the following conditions to all be met:
    1. running a test with the race detector enabled
    2. a txn (A) must have been aborted by another txn (B)
    3. txn B must have cleared an intent on txn A's transaction record range
    4. txn A must have noticed and issued a non-poisoning EndTxn(ABORT)
    
    We should backport this when we get a change (once v20.1.0 has
    stabilized), but I don't expect that this could actually cause any
    issues. The AbortSpan update was strictly a matter of performance and we
    should never be racing with another request that is trying to read the
    same AbortSpan entry.
    nvanbenschoten committed May 4, 2020
    Configuration menu
    Copy the full SHA
    f0ea6ee View commit details
    Browse the repository at this point in the history