| From: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
|---|---|
| To: | Peter Geoghegan <pg(at)bowt(dot)ie>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: nbtree backwards scan test coverage |
| Date: | 2026-07-29 05:00:00 |
| Message-ID: | b61d9944-d7a3-45f3-b69a-f18c8bfbbbd0@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello Peter,
20.07.2026 02:23, Peter Geoghegan wrote:
> Attached patches add an isolation test to the nbtree test module,
> which uses injection points. This provides thorough test coverage for
> nbtree backwards scans, including cases where we must recover from
> concurrent page splits, and page deletions by VACUUM.
The new backwards-scan-concurrent-splits test has failed a couple of times
so far: [1], [2]:
# --- /mnt/build/HEAD/pgsql/src/test/modules/nbtree/expected/backwards-scan-concurrent-splits.out
# +++ /mnt/build/HEAD/pgsql.build/src/test/modules/nbtree/output_iso/results/backwards-scan-concurrent-splits.out
# @@ -208,7 +208,6 @@
#
# (1 row)
#
# -scan_session: NOTICE: notice triggered for injection point nbtree-walk-left-step-right
# step b_scan: <... completed>
# col
# ---
not ok 1 - backwards-scan-concurrent-splits 310 ms
ok 2 - predicate-empty-index 214 ms
1..2
# 1 of 2 tests failed.
Looks like it is not immune to autovacuum. I've reproduced this locally with:
--- a/src/test/modules/nbtree/Makefile
+++ b/src/test/modules/nbtree/Makefile
@@ -8 +8 @@ REGRESS = nbtree_half_dead_pages \
-ISOLATION = backwards-scan-concurrent-splits \
+ISOLATION = $(shell printf 'backwards-scan-concurrent-splits %.0s' `seq 100`) \
and
echo "autovacuum_naptime=1s" >/tmp/extra.config
TEMP_CONFIG=/tmp/extra.config make -s check -C src/test/modules/nbtree
...
ok 17 - backwards-scan-concurrent-splits 160 ms
# diff -U3 .../src/test/modules/nbtree/expected/backwards-scan-concurrent-splits.out
.../src/test/modules/nbtree/output_iso/results/backwards-scan-concurrent-splits.out
# --- .../src/test/modules/nbtree/expected/backwards-scan-concurrent-splits.out 2026-07-28 22:26:18.306287159 +0300
# +++ .../src/test/modules/nbtree/output_iso/results/backwards-scan-concurrent-splits.out 2026-07-29 07:26:51.016349487
+0300
# @@ -277,8 +277,6 @@
#
# (1 row)
#
# -scan_session: NOTICE: notice triggered for injection point nbtree-walk-left-deleted
# -scan_session: NOTICE: notice triggered for injection point nbtree-walk-left-restart
# step b_scan_999: <... completed>
# col
# ---
not ok 18 - backwards-scan-concurrent-splits 162 ms
ok 19 - backwards-scan-concurrent-splits 165 ms
...
ok 99 - backwards-scan-concurrent-splits 168 ms
ok 100 - backwards-scan-concurrent-splits 160 ms
ok 101 - predicate-empty-index 104 ms
1..101
# 8 of 101 tests failed.
Could you please have a look?
[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=jay&dt=2026-07-28%2021%3A00%3A31
[2] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=basilisk&dt=2026-07-26%2006%3A58%3A54
Best regards,
Alexander
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Smith | 2026-07-29 05:07:38 | Re: Missing list_free in publicationcmds.c:OpenTableList |
| Previous Message | vignesh C | 2026-07-29 04:57:04 | Re: Race between pg_dump and ALTER SEQUENCE can cause read failure |