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

Fix non-deterministic sorting of rows in transcripts #5275

Merged
merged 1 commit into from
Aug 12, 2024

Conversation

ChrisPenner
Copy link
Contributor

@ChrisPenner ChrisPenner commented Aug 12, 2024

Overview

fixes #5271

Results for the global reflog seem to be non-deterministic in transcripts :'(
It seems unlikely, but the only reason I could think of for this to happen with the current ORDER BY is if two rows are inserted with an identical timestamp; maybe getCurrentTime returns the same time if called within a ms or something.

It's extremely unlikely this would ever occur outside of a transcript environment, but either way, just adding the ROWID as an additional sorting column guarantees they'll sort in insert order.

If we see this again we should assume there's some concurrency within the transcript runner (I did a quick scan and couldn't see any, even though we do use TVars for some reason) and look at sorting that out instead 👀

Implementation notes

Sort by RowID in addition to time.

Test coverage

Unfortunately I can't force flakiness, so we'll just have to see if it comes back.

@ChrisPenner ChrisPenner requested a review from aryairani August 12, 2024 16:22
@aryairani
Copy link
Contributor

Excellent, thanks.

@aryairani aryairani merged commit 2187b2e into trunk Aug 12, 2024
35 checks passed
@aryairani aryairani deleted the cp/fix-reflog-sorting branch August 12, 2024 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants