Skip to content
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

Fix regression failure in WAL redo process #152

Merged
merged 4 commits into from
Apr 26, 2022
Merged

Conversation

hlinnaka
Copy link
Contributor

The last commit here, "Fix errors in WAL redo about relpersistence mismatch" fixes the pg_regress failures from neondatabase/neon#1573. The others add debugging helpers that were useful to hunt it down. Let's add them permanently, too.

This error is happening in the 'pg_regress' test in the CI, but not on
my laptop. Turn it into an ERROR, so that we get the error context and
backtrace of it.
In the WAL redo process, even "permanent" buffers are stored in the
local buffer cache. Need to pass RELPERSISTENCE_PERMANENT to smgropen()
in that case.
Copy link

@knizhnik knizhnik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, once again problem with debug build: I have tested only release build

@@ -195,6 +195,10 @@ inmem_nblocks(SMgrRelation reln, ForkNumber forknum)
{
int nblocks = 0;

/*

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#0 inmem_nblocks (reln=0x5620695fc048, forknum=VISIBILITYMAP_FORKNUM)
at /home/knizhnik/zenith/tmp_install/build/../../vendor/postgres/contrib/zenith/inmem_smgr.c:197
#1 0x000056206894beba in smgrnblocks (reln=0x5620695fc048, forknum=forknum@entry=VISIBILITYMAP_FORKNUM)
at /home/knizhnik/zenith/tmp_install/build/../../vendor/postgres/src/backend/storage/smgr/smgr.c:564
#2 0x00005620686b5aba in vm_extend (rel=rel@entry=0x5620695dcdd8, vm_nblocks=vm_nblocks@entry=1)
at /home/knizhnik/zenith/tmp_install/build/../../vendor/postgres/src/backend/access/heap/visibilitymap.c:650
#3 0x00005620686b5c44 in vm_readbuf (rel=rel@entry=0x5620695dcdd8, blkno=blkno@entry=0, extend=extend@entry=true)
at /home/knizhnik/zenith/tmp_install/build/../../vendor/postgres/src/backend/access/heap/visibilitymap.c:576
#4 0x00005620686b5ea3 in visibilitymap_pin (rel=rel@entry=0x5620695dcdd8, heapBlk=, buf=buf@entry=0x7ffdf3e751f8)
at /home/knizhnik/zenith/tmp_install/build/../../vendor/postgres/src/backend/access/heap/visibilitymap.c:202
#5 0x000056206869dd6a in heap_xlog_insert (record=0x5620695e5928)
at /home/knizhnik/zenith/tmp_install/build/../../vendor/postgres/src/backend/access/heap/heapam.c:8904
#6 0x0000562068956e6d in ApplyRecord (input_message=0x7ffdf3e77270)
at /home/knizhnik/zenith/tmp_install/build/../../vendor/postgres/src/backend/tcop/zenith_wal_redo.c:612

@hlinnaka hlinnaka merged commit 20c37c0 into main Apr 26, 2022
@hlinnaka hlinnaka deleted the walredo-error-context branch April 26, 2022 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants