diff options
author | Andres Freund <andres@anarazel.de> | 2017-04-23 15:48:31 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2017-04-23 15:54:58 -0700 |
commit | 81ff04deda21e016e0e1d4ea1755ccb14c47c871 (patch) | |
tree | 75096c5f9d90a05b546d849ad910ff392a49be35 /src | |
parent | a66e01bbcc8808674ade41d38cfba711a36b8b15 (diff) | |
download | postgresql-81ff04deda21e016e0e1d4ea1755ccb14c47c871.tar.gz postgresql-81ff04deda21e016e0e1d4ea1755ccb14c47c871.zip |
Zero padding in replication origin's checkpointed on disk-state.
This seems to be largely cosmetic, avoiding valgrind bleats and the
like. The uninitialized padding influences the CRC of the on-disk
entry, but because it's also used when verifying the CRC, that doesn't
cause spurious failures. Backpatch nonetheless.
It's a bit unfortunate that contrib/test_decoding/sql/replorigin.sql
doesn't exercise the checkpoint path, but checkpoints are fairly
expensive on weaker machines, and we'd have to stop/start for that to
be meaningful.
Author: Andres Freund
Discussion: https://postgr.es/m/20170422183123.w2jgiuxtts7qrqaq@alap3.anarazel.de
Backpatch: 9.5, where replication origins were introduced
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/replication/logical/origin.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c index e2b52a2d08f..06f5317a750 100644 --- a/src/backend/replication/logical/origin.c +++ b/src/backend/replication/logical/origin.c @@ -566,6 +566,9 @@ CheckPointReplicationOrigin(void) if (curstate->roident == InvalidRepOriginId) continue; + /* zero, to avoid uninitialized padding bytes */ + memset(&disk_state, 0, sizeof(disk_state)); + LWLockAcquire(&curstate->lock, LW_SHARED); disk_state.roident = curstate->roident; |