-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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-24.2: schemachanger: add PartitionName to IndexZoneConfig attr #134472
release-24.2: schemachanger: add PartitionName to IndexZoneConfig attr #134472
Conversation
Thanks for opening a backport. Please check the backport criteria before merging:
If your backport adds new functionality, please ensure that the following additional criteria are satisfied:
Also, please add a brief release justification to the body of your PR to justify this |
c769ca5
to
e359b80
Compare
This patch adds a `PartitionName` attribute to the `IndexZoneConfig` element to uniquely identify partitions from one another. Prior to this, hitting a certain DROP path on a table with more than 1 partition on an index would panic with an undropped backref error due to our inability to distinguish these partitions from eachother. Our code to drop these partition elements would always refer to the top-most partition element in the descsCache's `elementIndexMap` -- as the key to identify partition1 from partition2 was the same. So, partition1 would be marked `toAbsent` "twice"; while partition2 got ignored </3. Another thing to note is that this bug is not just met for partitioned tables of the nature mentioned above -- as the `builderState`'s descriptor cache would need to be unchanged between each partition's drop. Epic: none Fixes: cockroachdb#131862 Release note (bug fix): Addressed a bug with DROP CASCADE that would occasionally panic with an undropped backref message on partitioned tables.
e359b80
to
e1a5934
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed 3 of 3 files at r1, all commit messages.
Reviewable status: complete! 1 of 0 LGTMs obtained (waiting on @rafiss)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed 3 of 3 files at r1, all commit messages.
Reviewable status: complete! 1 of 0 LGTMs obtained (waiting on @annrpom)
135933: scpb: ensure IndexZoneConfig fields do not overlap r=annrpom a=annrpom In [#134522](#134472), we added a fix to ensure that we cleaned up backrefs properly for our `IndexZoneConfig` element, but in doing so, we created an overlap of field ID `3` between v24.2+. This patch ensures that we do not re-use the same field ID for a different field in our IndexZoneConfig element by marking it as `reserved`. Fixes: #133003 Fixes: #135807 Release note: None Co-authored-by: Annie Pompa <[email protected]>
This patch adds a
PartitionName
attribute to theIndexZoneConfig
element to uniquely identify partitions from one another. Prior to this,
hitting a certain DROP path on a table with more than 1 partition on an
index would panic with an undropped backref error due to our inability
to distinguish these partitions from eachother.
Our code to drop these partition elements would always refer to the
top-most partition element in the descsCache's
elementIndexMap
-- as the key to identify partition1 from partition2 was the same. So,
partition1 would be marked
toAbsent
"twice"; while partition2 gotignored </3.
Another thing to note is that this bug is not just met for partitioned
tables of the nature mentioned above -- as the
builderState
's descriptorcache would need to be unchanged between each partition's drop.
Epic: none
Fixes: #131862
Release note (bug fix): Addressed a bug with DROP CASCADE that would
occasionally panic with an undropped backref message on partitioned
tables.
Release justification: low-risk bug fix