-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[CDCSDK] Test_decoding UPDATE messages contain an empty old-key
field
#23353
Labels
Comments
yugabyte-ci
added
area/cdcsdk
CDC SDK
jira-originated
kind/bug
This issue is a bug
priority/high
High Priority
labels
Aug 1, 2024
Sumukh-Phalgaonkar
added a commit
that referenced
this issue
Aug 14, 2024
Summary: It was observed that currently test_decoding adds the field `old-key` to every UPDATE output message (if the replica identity is not FULL, this field is left empty). This is a deviation from PG, where the UPDATE output messages contain `old-key` field only in case of replica identity FULL. In test_decoding code, we check if the old-tuple is not null and add the field `old-key` to the output string. The values to this field are added by iterating over attributes of the old tuple. However, in YB the old-tuple is always not null. If the replica identity is not FULL, then the attributes of the old tuple are NULL. This results in the above mentioned behaviour. In other words the issue arises because the old-tuple being sent for UPDATES is not NULL for replica identities having no before image. To fix this, in `YBDecodeUpdate()` function we populate the old tuple only if the replica identity is FULL. Otherwise a NULL old tuple is sent out. Jira: DB-12279 Test Plan: Jenkins: test regex: .*ReplicationSlot.* ./yb_build.sh --java-test 'org.yb.pgsql.TestPgReplicationSlot#testWithTestDecodingPlugin' Reviewers: asrinivasan, stiwary Reviewed By: stiwary Subscribers: skumar, yql, ycdcxcluster Tags: #jenkins-ready Differential Revision: https://phorge.dev.yugabyte.com/D36971
jasonyb
pushed a commit
that referenced
this issue
Aug 15, 2024
Summary: adca727 [PLAT-14226][PLAT-14227] update login flow and RBAC logic to include group memberships 631592d [PLAT-14144]add retry policy for GcpProjectApiClient d1ac140 [#23418] docdb: Fix clone seq_no not being persisted Excluded: ade3a0e [#23461] YSQL: Fix memory corruption in UPDATE pushdown fd0c1e0 [PLAT-5874]: Expose state of db master "load balancing" process in Platform UI e6c2ee0 [#23459] YSQL: Fix asan YbAdminSnapshotScheduleTest.SysCatalogRetention failure 43261b7 [#23421] YSQL: Reset catalog read time after table prefetching dd123d4 [doc] CLI name tidyups (#23477) Excluded: dc871f9 [#22843] YSQL: Change the CatalogCacheMisses prometheus name to have a label 9d2b83a [doc][ybm] Slow query latency histogram (#23486) d50171b [PLAT-14900] Exclude empty string from regex validation for AZUoptional fields adf992d [#23237 ] DocDB: Master side DDL locking - Part 1/happy path 49039ec [PLAT-14620][YBA CLI] CLI gives invalid JSON output db993c6 [#23140] docdb: Clear table txn verifier state after drop 0b93c5d [PLAT-14925] Should not allow turning off DB audit logging runtime config if enabled on a universe d0500a0 [#22989] YSQL: Fix regular expression pushdown 6a4f23b [#23353] CDCSDK: Send null old tuples for updates without before image Test Plan: Jenkins: rebase: pg15-cherrypicks Reviewers: jason, tfoucher Tags: #jenkins-ready Differential Revision: https://phorge.dev.yugabyte.com/D37309
Sumukh-Phalgaonkar
added a commit
that referenced
this issue
Aug 19, 2024
…thout before image Summary: ######Backport Description No merge conflicts were encountered. ######Original Description It was observed that currently test_decoding adds the field `old-key` to every UPDATE output message (if the replica identity is not FULL, this field is left empty). This is a deviation from PG, where the UPDATE output messages contain `old-key` field only in case of replica identity FULL. In test_decoding code, we check if the old-tuple is not null and add the field `old-key` to the output string. The values to this field are added by iterating over attributes of the old tuple. However, in YB the old-tuple is always not null. If the replica identity is not FULL, then the attributes of the old tuple are NULL. This results in the above mentioned behaviour. In other words the issue arises because the old-tuple being sent for UPDATES is not NULL for replica identities having no before image. To fix this, in `YBDecodeUpdate()` function we populate the old tuple only if the replica identity is FULL. Otherwise a NULL old tuple is sent out. Jira: DB-12279 Original commit: 6a4f23b / D36971 Test Plan: Jenkins: test regex: .*ReplicationSlot.* ./yb_build.sh --java-test 'org.yb.pgsql.TestPgReplicationSlot#testWithTestDecodingPlugin' Reviewers: asrinivasan, stiwary, siddharth.shah Reviewed By: siddharth.shah Subscribers: ycdcxcluster, yql, skumar Tags: #jenkins-ready Differential Revision: https://phorge.dev.yugabyte.com/D37305
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Jira Link: DB-12279
The text was updated successfully, but these errors were encountered: