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

metamorphic: failure from 5/14 #1697

Closed
nicktrav opened this issue May 19, 2022 · 2 comments
Closed

metamorphic: failure from 5/14 #1697

nicktrav opened this issue May 19, 2022 · 2 comments

Comments

@nicktrav
Copy link
Contributor

Found via a metamorphic test run (logs).

===== SEED =====
1652508047427439982
===== DIFF =====
/artifacts/meta/220514-060047.427/{standard-000,standard-008}
@@ -137,19 +137,19 @@
 db.RangeKeySet("dfdr", "dsmyui", "@1", "qmsu") // <nil> #137
 iter1.SeekGE("dsmyui@1", "") // [false] <nil> #138
 iter1.SetOptions("dfdr", "tlvnybcpi", 1 /* key types */, "" /* masking suffix */) // <nil> #139
 iter1.SeekPrefixGE("tlvnybcpi") // [false] <nil> #140
 batch2.Merge("tlvnybcpi", "qwzlmskgqfwxzoxmpt") // <nil> #141
-iter1.First() // [true,"dfdr",<no point>,["dfdr","dsmyui")=>{""="xhjdqkiufb","@1"="qmsu"}] <nil> #142
+iter1.First() // [true,"dfdr",<no point>,["dfdr","tlvnybcpi")=>{""="xhjdqkiufb"}] <nil> #142
 db.DeleteRange("tlvnybcpi", "vhicxainxj@1") // <nil> #143
 iter1.Prev("") // [false] <nil> #144
-iter1.SeekLT("vhicxainxj@1", "") // [true,"dsmyui",<no point>,["dsmyui","tlvnybcpi")=>{""="xhjdqkiufb"}] <nil> #145
-iter1.SeekGE("bjykm", "") // [true,"dfdr",<no point>,["dfdr","dsmyui")=>{""="xhjdqkiufb","@1"="qmsu"}] <nil> #146
+iter1.SeekLT("vhicxainxj@1", "") // [true,"dfdr",<no point>,["dfdr","tlvnybcpi")=>{""="xhjdqkiufb"}] <nil> #145
+iter1.SeekGE("bjykm", "") // [true,"dfdr",<no point>,["dfdr","tlvnybcpi")=>{""="xhjdqkiufb"}] <nil> #146
 db.Merge("dfdr", "rfgpzavquiyogmgxpe") // <nil> #147
-iter1.Next("vhicxainxj@1") // [valid,"dsmyui",<no point>,["dsmyui","tlvnybcpi")=>{""="xhjdqkiufb"}] <nil> #148
+iter1.Next("vhicxainxj@1") // [invalid] <nil> #148
 iter1.SetBounds("", "tlvnybcpi") // <nil> #149
-iter1.First() // [true,"dfdr",<no point>,["dfdr","dsmyui")=>{""="xhjdqkiufb","@1"="qmsu"}] <nil> #150
+iter1.First() // [true,"dfdr",<no point>,["dfdr","tlvnybcpi")=>{""="xhjdqkiufb"}] <nil> #150
 iter1.SetBounds("", "tlvnybcpi") // <nil> #151
 iter1.Prev("") // [false] <nil> #152
 iter1.SeekGE("tlvnybcpi", "") // [false] <nil> #153
 iter1.Close() // <nil> #154
 db.Ingest(batch2) // <nil> #155

SHA: b8c9a560bed5.

NOTE: I filled this in manually, as we didn't get an automated issue.

@nicktrav
Copy link
Contributor Author

cc: @jbowens - similar to #1696. Possibly the same underlying issue, just want to track separately in case it's something different.

@jbowens
Copy link
Collaborator

jbowens commented May 19, 2022

Confirmed it's the same issue as #1696.

The problematic iterator is an iterator over an indexed batch.

iter1 = batch2.NewIter("", "", 0 /* key types */, "" /* masking suffix */) // <nil> #93

The batch receives a range key set over the span [dfdr, tlvnybcpi).

batch2.RangeKeySet("dfdr", "tlvnybcpi", "", "xhjdqkiufb") // <nil> #97

Later, a range key set is committed directly to the database.

db.RangeKeySet("dfdr", "dsmyui", "@1", "qmsu") // <nil> #137

Since this is committed after iter1 is opened, iter1 must not observe it. But in standard-000, it does:

iter1.First() // [true,"dfdr",<no point>,["dfdr","dsmyui")=>{""="xhjdqkiufb","@1"="qmsu"}] <nil> #142

This is because the batch's RANGEKEYSET again tickles the Span.Visible bug.

@jbowens jbowens closed this as completed May 19, 2022
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

No branches or pull requests

2 participants