Compare commits

...

11 Commits

Author SHA1 Message Date
Heikki Linnakangas
679b302c06 try with unshallow 2024-11-12 13:00:42 +02:00
Heikki Linnakangas
9a07960e83 increase depth 2024-11-12 11:57:28 +02:00
Heikki Linnakangas
6ddaca25dc use a version of submodule check with extra debug info 2024-11-12 11:47:42 +02:00
Konstantin Knizhnik
f9dca3ad8a Bump Postgres versions 2024-11-12 08:25:16 +02:00
Konstantin Knizhnik
84cbab7ada Undo occasional changes in test_physical_and_logical_replicaiton.py test 2024-11-12 08:25:16 +02:00
Konstantin Knizhnik
e252a4208b Bump postgres version 2024-11-12 08:25:15 +02:00
Konstantin Knizhnik
26f5bafb99 Update test_physical_and_logical_replicaiton.py to reproduce the problem 2024-11-12 08:25:15 +02:00
Konstantin Knizhnik
1eddf30ff3 Update test_runner/regress/test_physical_and_logical_replicaiton.py
Co-authored-by: Heikki Linnakangas <heikki@neon.tech>
2024-11-12 08:25:15 +02:00
Konstantin Knizhnik
25532eed33 Bump Postgres version 2024-11-12 08:25:15 +02:00
Konstantin Knizhnik
637da7719e Add test for combination of physical and logical replication 2024-11-12 08:25:15 +02:00
Konstantin Knizhnik
301edc753c Do not wallog AUX files at replica 2024-11-12 08:25:15 +02:00
7 changed files with 66 additions and 19 deletions

View File

@@ -133,38 +133,38 @@ jobs:
- name: Check vendor/postgres-v14 submodule reference
if: steps.check-if-submodules-changed.outputs.vendor == 'true'
uses: jtmullen/submodule-branch-check-action@v1
uses: hlinnaka/submodule-branch-check-action@main
with:
path: "vendor/postgres-v14"
fetch_depth: "50"
sub_fetch_depth: "50"
sub_fetch_depth: ""
pass_if_unchanged: true
- name: Check vendor/postgres-v15 submodule reference
if: steps.check-if-submodules-changed.outputs.vendor == 'true'
uses: jtmullen/submodule-branch-check-action@v1
uses: hlinnaka/submodule-branch-check-action@main
with:
path: "vendor/postgres-v15"
fetch_depth: "50"
sub_fetch_depth: "50"
sub_fetch_depth: ""
pass_if_unchanged: true
- name: Check vendor/postgres-v16 submodule reference
if: steps.check-if-submodules-changed.outputs.vendor == 'true'
uses: jtmullen/submodule-branch-check-action@v1
uses: hlinnaka/submodule-branch-check-action@main
with:
path: "vendor/postgres-v16"
fetch_depth: "50"
sub_fetch_depth: "50"
sub_fetch_depth: ""
pass_if_unchanged: true
- name: Check vendor/postgres-v17 submodule reference
if: steps.check-if-submodules-changed.outputs.vendor == 'true'
uses: jtmullen/submodule-branch-check-action@v1
uses: hlinnaka/submodule-branch-check-action@main
with:
path: "vendor/postgres-v17"
fetch_depth: "50"
sub_fetch_depth: "50"
sub_fetch_depth: ""
pass_if_unchanged: true
check-codestyle-rust:

View File

@@ -5,7 +5,8 @@ import time
from fixtures.neon_fixtures import NeonEnv, logical_replication_sync
def test_physical_and_logical_replication(neon_simple_env: NeonEnv, vanilla_pg):
def test_physical_and_logical_replication_slot_not_copied(neon_simple_env: NeonEnv, vanilla_pg):
"""Test read replica of a primary which has a logical replication publication"""
env = neon_simple_env
n_records = 100000
@@ -13,7 +14,6 @@ def test_physical_and_logical_replication(neon_simple_env: NeonEnv, vanilla_pg):
primary = env.endpoints.create_start(
branch_name="main",
endpoint_id="primary",
config_lines=["min_wal_size=32MB", "max_wal_size=64MB"],
)
p_con = primary.connect()
p_cur = p_con.cursor()
@@ -30,7 +30,6 @@ def test_physical_and_logical_replication(neon_simple_env: NeonEnv, vanilla_pg):
secondary = env.endpoints.new_replica_start(
origin=primary,
endpoint_id="secondary",
config_lines=["min_wal_size=32MB", "max_wal_size=64MB"],
)
s_con = secondary.connect()
@@ -48,3 +47,51 @@ def test_physical_and_logical_replication(neon_simple_env: NeonEnv, vanilla_pg):
# Check that LR slot is not copied to replica
s_cur.execute("select count(*) from pg_replication_slots")
assert s_cur.fetchall()[0][0] == 0
def test_aux_not_logged_at_replica(neon_simple_env: NeonEnv, vanilla_pg):
"""Test that AUX files are not saved at replica"""
env = neon_simple_env
n_records = 200000
primary = env.endpoints.create_start(
branch_name="main",
endpoint_id="primary",
)
p_con = primary.connect()
p_cur = p_con.cursor()
p_cur.execute("CREATE TABLE t(pk bigint primary key, payload text default repeat('?',200))")
p_cur.execute("create publication pub1 for table t")
# start subscriber
vanilla_pg.start()
vanilla_pg.safe_psql("CREATE TABLE t(pk bigint primary key, payload text)")
connstr = primary.connstr().replace("'", "''")
vanilla_pg.safe_psql(f"create subscription sub1 connection '{connstr}' publication pub1")
for pk in range(n_records):
p_cur.execute("insert into t (pk) values (%s)", (pk,))
# LR snapshot is stored each 15 seconds
time.sleep(16)
# start replica
secondary = env.endpoints.new_replica_start(
origin=primary,
endpoint_id="secondary",
)
s_con = secondary.connect()
s_cur = s_con.cursor()
logical_replication_sync(vanilla_pg, primary)
assert vanilla_pg.safe_psql("select count(*) from t")[0][0] == n_records
s_cur.execute("select count(*) from t")
assert s_cur.fetchall()[0][0] == n_records
primary.stop()
time.sleep(1)
secondary.stop()
assert not secondary.log_contains("cannot make new WAL entries during recovery")

View File

@@ -1,18 +1,18 @@
{
"v17": [
"17.0",
"9ad2f3c5c37c08069a01c1e3f6b7cf275437e0cb"
"ae4cc30dba24f3910533e5a48e8103c3f2fff300"
],
"v16": [
"16.4",
"e131a9c027b202ce92bd7b9cf2569d48a6f9948e"
"03b43900edc5d8d6eecec460bfc89aec7174bd84"
],
"v15": [
"15.8",
"22e580fe9ffcea7e02592110b1c9bf426d83cada"
"fd631a959049dfe2b82f67409c8b8b0d3e0016d1"
],
"v14": [
"14.13",
"2199b83fb72680001ce0f43bf6187a21dfb8f45d"
"de0a000dafc2e66ce2e39282d3aa1c704fe0390e"
]
}