Skip to content

kv: assert an absence of retries in TestTxnCoordSenderRetries #35112

Merged
craig[bot] merged 2 commits intocockroachdb:masterfrom
nvb:nvanbenschoten/improveTests
Feb 21, 2019
Merged

kv: assert an absence of retries in TestTxnCoordSenderRetries #35112
craig[bot] merged 2 commits intocockroachdb:masterfrom
nvb:nvanbenschoten/improveTests

Conversation

@nvb
Copy link
Copy Markdown
Contributor

@nvb nvb commented Feb 21, 2019

The test was only asserting that cases that should observe retries did, not the cases that should not observe retries did not.

The PR also fixes TestPropagateTxnOnError, which wasn't really testing anything. We now set txn.Writing on the client, so it wasn't verifying what it thought it was. We switch it to assert that observed timestamps are propagated on error instead.

nvb added 2 commits February 21, 2019 00:24
The test wasn't really testing anything. We now set txn.Writing on the
client, so it wasn't verifying what it thought it was. We switch it to
assert that observed timestamps are propagated on error instead.

Release note: None
The test was only asserting that cases that should observe retries
did, not the cases that should not observe retries did not.

Release note: None
@nvb nvb requested review from a team and andreimatei February 21, 2019 05:37
@cockroach-teamcity
Copy link
Copy Markdown
Member

This change is Reviewable

Copy link
Copy Markdown
Member

@tbg tbg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewed 1 of 1 files at r1, 1 of 1 files at r2.
Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @andreimatei)

Copy link
Copy Markdown
Contributor

@andreimatei andreimatei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @andreimatei)

@nvb
Copy link
Copy Markdown
Contributor Author

nvb commented Feb 21, 2019

bors r=tbg,andreimatei

craig bot pushed a commit that referenced this pull request Feb 21, 2019
35081: sql: Fix test flake r=andy-kimball a=andy-kimball

Filter out PushTxn/ResolveIntent trace messages, since they represent intent
cleanup from earlier operations that interferes with subsequent tests. This
was already being done in other variations, so this commit extends that to
all the variations that are doing filtering of messages.

Fixes #34911

Release note: None

35086: mvcc: don't write below provisional commit timestamp on WriteTooOld errors r=tbg a=nvanbenschoten

Fixes #34853.

This change fixes #34853, which appears to have been broken by
57d0201#diff-41e9e1b7829f8e25daeb564f42c26017L1514.
That change made it so that intents are now written at a transaction's
provisional commit timestamp instead of its original timestamp (which is
fantastic!). In doing so, it removed special-purpose code to forward the
`MVCCLogicalOpDetails` timestamp to the provisional commit timestamp of the
transaction because it assumed that the new `writeTimestamp` variable that the
change introduced already assumed this role.

Unfortunately, the change allowed this `writeTimestamp` variable to regress
below the transaction's provisional commit timestamp in subtle cases where a
committed value ended up between the transaction's original timestamp and its
provisional commit timestamp (a case that generates `WriteTooOldError`s). In
this case, we were replacing the `writeTimestamp` with the committed value's
timestamp + 1 logical tick. This regression allowed `MVCCWriteIntentOp`s to look
like they were ignoring closed timestamps.

The fix was to either introduce the special purpose code again or to avoid
letting `writeTimestamp` regress in this `WriteTooOldError` code path. This PR
chose the latter solution.

In doing so, this PR also improves upon the benefit already provided by #32487 -
it reduces the number of intents that need to be moved on transaction commit.
This is because it ensures that if a transaction has an original (read)
timestamp below a committed value and a provisional commit (write) timestamp
above a committed value, an intent left by that transaction will be in a
"committable" state without a need to rewrite it during intent resolution.

Release note: None

35112: kv: assert an absence of retries in TestTxnCoordSenderRetries  r=tbg,andreimatei a=nvanbenschoten

The test was only asserting that cases that should observe retries did, not the cases that should not observe retries did not.

The PR also fixes `TestPropagateTxnOnError`, which wasn't really testing anything. We now set txn.Writing on the client, so it wasn't verifying what it thought it was. We switch it to assert that observed timestamps are propagated on error instead.

35118: storage: Downgrade a spammy log message r=tbg a=bdarnell

This log message only occurs on clusters with multiple stores per
node, but on those clusters it fires multiple times per second.

Release note: None

Co-authored-by: Andrew Kimball <andyk@cockroachlabs.com>
Co-authored-by: Nathan VanBenschoten <nvanbenschoten@gmail.com>
Co-authored-by: Ben Darnell <ben@bendarnell.com>
@craig
Copy link
Copy Markdown
Contributor

craig bot commented Feb 21, 2019

Build succeeded

@craig craig bot merged commit e2d58db into cockroachdb:master Feb 21, 2019
@nvb nvb deleted the nvanbenschoten/improveTests branch February 21, 2019 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants