PostgreSQL Bugs

Collected from the PG bugs email list.

Bug ID15791
PG Version11.2
OSlinux
Opened2019-05-05 08:56:08+00
Reported byDamionZ Zhao
StatusNew

Body of first available message related to this bug follows.

The following bug has been logged on the website:

Bug reference:      15791
Logged by:          DamionZ Zhao
Email address:      (redacted)
PostgreSQL version: 11.2
Operating system:   linux
Description:        

1.when commit transaction, we need to kwow it is sync or async . There is a
step : call function SyncRepWaitForLSN in function
RecordTransactionCommit.

void SyncRepWaitForLSN(XLogRecPtr lsn, bool commit)
{
        ....
	if (!WalSndCtl->sync_standbys_defined ||
		lsn <= WalSndCtl->lsn[mode] )
	{
                ...
		return;
	}
}

2.when modify WalSndCtl->sync_standbys_defined?  

2.1 in function SyncRepUpdateSyncStandbysDefined,
WalSndCtl->sync_standbys_defined will be modified.
----------------------------------------------------
void SyncRepUpdateSyncStandbysDefined(void)
{
	bool		sync_standbys_defined = SyncStandbysDefined();

	if (sync_standbys_defined != WalSndCtl->sync_standbys_defined)
	{
		
		WalSndCtl->sync_standbys_defined = sync_standbys_defined;
		LWLockRelease(SyncRepLock);
	}
}

2.2 SyncRepUpdateSyncStandbysDefined call stack is:
------------------------------------------
(1)CheckpointerMain(start checkpoint)-
	UpdateSharedMemoryConfig
		SyncRepUpdateSyncStandbysDefined
(2)CheckPointGuts --	Flush all data in shared memory to disk, and fsync	
	CheckPointBuffers	--Flush all dirty blocks in buffer pool to disk at
checkpoint time.
		BufferSync	-- Write out all dirty buffers in the pool.	
			CheckpointWriteDelay
				UpdateSharedMemoryConfig
					SyncRepUpdateSyncStandbysDefined

2.3 when any checkpoint situation happened, WalSndCtl->sync_standbys_defined
will be modified.

3.my question:
----------------

when modify synchronous_standby_names in postgres.conf, and no checkpoint
happenes, will  synchronous_standby_names  take effect?

Messages

DateAuthorSubject
2019-05-05 08:56:08+00PG Bug reporting formBUG #15791: WalSndCtl->sync_standbys_defined modified too late
2019-05-06 01:16:39+00Euler TaveiraRe: BUG #15791: WalSndCtl->sync_standbys_defined modified too late
2019-05-07 03:37:45+00Michael PaquierRe: BUG #15791: WalSndCtl->sync_standbys_defined modified too late