Fix assertion failure when updating full_page_writes for checkpointer.
authorAmit Kapila
Fri, 28 Sep 2018 07:01:48 +0000 (12:31 +0530)
committerAmit Kapila
Fri, 28 Sep 2018 11:11:29 +0000 (16:41 +0530)
commit8256d7ae9ee3f8fec4bbe763b042b62d684e623f
tree0bfaadc13f7f4949327954d90c86874a24e5c439
parent05b9c58da141f5be07556b532c58d7ce84d10d72
Fix assertion failure when updating full_page_writes for checkpointer.

When the checkpointer receives a SIGHUP signal to update its configuration,
it may need to update the shared memory for full_page_writes and need to
write a WAL record for it.  Now, it is quite possible that the XLOG
machinery has not been initialized by that time and it will lead to
assertion failure while doing that.  Fix is to allow the initialization of
the XLOG machinery outside critical section.

This bug has been introduced by the commit 2c03216d83 which added the XLOG
machinery initialization in RecoveryInProgress code path.

Reported-by: Dilip Kumar
Author: Dilip Kumar
Reviewed-by: Michael Paquier and Amit Kapila
Backpatch-through: 9.5
Discussion: https://postgr.es/m/CAFiTN-u4BA8KXcQUWDPNgaKAjDXC=C2whnzBM8TAcv=stckYUw@mail.gmail.com
src/backend/access/transam/xlog.c