Skip to content

Commit 97155bb

Browse files
committed
[#28529] DocDB: Disable object locking in few tests where DMLs are expected to fail when run in parallel with DDLs
Summary: `PgCacheRefreshTest` tests were failing because the object locking preview flag was being modified with adding the flag to `allowed_preview_flags_csv`. Same with `PgAddColumnDefaultConcurrencyTest`. Java tests `TestAlterTableWithConcurrentTxn` and `TestPgCacheConsistency` expect DMLs to fail when run in concurrent/before/after DDLs with errors like catalog version mismatch etc. This isn't true with object locking, hence disabled the feature for these tests. Jira: DB-18224 Test Plan: Jenkins Enabled object locking by default, and ran ./yb_build.sh --cxx-test pgwrapper_pg_alter_add_column_default-test --gtest_filter *PgAddColumnDefaultConcurrencyTest.AddColumnDefaultConcurrency* ./yb_build.sh --cxx-test pgwrapper_pg_cache_refresh-test --gtest_filter PgCacheRefreshTest* ./yb_build.sh --java-test 'org.yb.pgsql.TestAlterTableWithConcurrentTxn' ./yb_build.sh --java-test 'org.yb.pgsql.TestPgCacheConsistency' Reviewers: rthallam, amitanand Reviewed By: rthallam Subscribers: ybase, yql Differential Revision: https://phorge.dev.yugabyte.com/D46550
1 parent 863ac81 commit 97155bb

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

java/yb-pgsql/src/test/java/org/yb/pgsql/TestAlterTableWithConcurrentTxn.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ protected Map<String, String> getMasterFlags() {
3535
return flagMap;
3636
}
3737

38+
@Override
39+
protected Map<String, String> getTServerFlags() {
40+
// The test suite asserts for DML failing when run in concurrent to ALTER,
41+
// and doesn't expect proper wait-on behavior for DML-DDL interaction.
42+
Map<String, String> flagMap = super.getTServerFlags();
43+
flagMap.put("allowed_preview_flags_csv", "enable_object_locking_for_table_locks");
44+
flagMap.put("enable_object_locking_for_table_locks", "false");
45+
return flagMap;
46+
}
47+
3848
private static final Logger LOG = LoggerFactory.getLogger(TestAlterTableWithConcurrentTxn.class);
3949

4050
// When a transaction is performed on a table that is altered,

java/yb-pgsql/src/test/java/org/yb/pgsql/TestPgCacheConsistency.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ public class TestPgCacheConsistency extends BasePgSQLTest {
4747
protected Map<String, String> getTServerFlags() {
4848
Map<String, String> flags = super.getTServerFlags();
4949
appendToYsqlPgConf(flags, "log_statement=all");
50+
// The test suite asserts for DML failing with catalog version mismatch when run
51+
// immediately after DDLs, which isn't true with object locking enabled.
52+
flags.put("allowed_preview_flags_csv", "enable_object_locking_for_table_locks");
53+
flags.put("enable_object_locking_for_table_locks", "false");
5054
return flags;
5155
}
5256

src/yb/yql/pgwrapper/pg_alter_add_column_default-test.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ class PgAddColumnDefaultConcurrencyTest : public PgAddColumnDefaultTest {
153153
PgAddColumnDefaultTest::UpdateMiniClusterOptions(opts);
154154
// This test verifies behavior without table-level locking and transactional DDL.
155155
// Both features are disabled to concurrent inserts during ALTER TABLE.
156+
AppendCsvFlagValue(opts->extra_tserver_flags, "allowed_preview_flags_csv",
157+
"ysql_yb_ddl_transaction_block_enabled");
158+
AppendCsvFlagValue(opts->extra_tserver_flags, "allowed_preview_flags_csv",
159+
"enable_object_locking_for_table_locks");
156160
opts->extra_tserver_flags.emplace_back("--enable_object_locking_for_table_locks=false");
157161
opts->extra_tserver_flags.emplace_back("--ysql_yb_ddl_transaction_block_enabled=false");
158162
}

src/yb/yql/pgwrapper/pg_cache_refresh-test.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class PgCacheRefreshTest : public LibPqTestBase {
3232
LibPqTestBase::UpdateMiniClusterOptions(opts);
3333
// Tests here run DDLs concurrently with DMLs. Such behavior will not be possible
3434
// with table locks enabled.
35+
opts->extra_tserver_flags.emplace_back(
36+
"--allowed_preview_flags_csv=enable_object_locking_for_table_locks");
3537
opts->extra_tserver_flags.emplace_back("--enable_object_locking_for_table_locks=false");
3638
}
3739

0 commit comments

Comments
 (0)