*** a/src/backend/replication/syncrep.c --- b/src/backend/replication/syncrep.c *************** *** 223,229 **** SyncRepWaitForLSN(XLogRecPtr XactCommitLSN) /* * Insert MyProc into SyncRepQueue, maintaining sorted invariant. * ! * Usually we will go at tail of queue, though its possible that we arrive * here out of order, so start at tail and work back to insertion point. */ static void --- 223,229 ---- /* * Insert MyProc into SyncRepQueue, maintaining sorted invariant. * ! * Usually we will go at tail of queue, though it's possible that we arrive * here out of order, so start at tail and work back to insertion point. */ static void *************** *** 561,567 **** assign_synchronous_standby_names(const char *newval, bool doit, GucSource source /* syntax error in list */ pfree(rawstring); list_free(elemlist); ! ereport(FATAL, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid list syntax for parameter \"synchronous_standby_names\""))); return NULL; --- 561,567 ---- /* syntax error in list */ pfree(rawstring); list_free(elemlist); ! ereport(GUC_complaint_elevel(source), (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid list syntax for parameter \"synchronous_standby_names\""))); return NULL; *** a/src/include/storage/proc.h --- b/src/include/storage/proc.h *************** *** 122,128 **** struct PGPROC * Info to allow us to wait for synchronous replication, if needed. * waitLSN is InvalidXLogRecPtr if not waiting; set only by user backend. * syncRepState must not be touched except by owning process or WALSender. ! * syncRep_links used only while holding SyncRepLock. */ Latch waitLatch; /* allow us to wait for sync rep */ XLogRecPtr waitLSN; /* waiting for this LSN or higher */ --- 122,128 ---- * Info to allow us to wait for synchronous replication, if needed. * waitLSN is InvalidXLogRecPtr if not waiting; set only by user backend. * syncRepState must not be touched except by owning process or WALSender. ! * syncRepLinks used only while holding SyncRepLock. */ Latch waitLatch; /* allow us to wait for sync rep */ XLogRecPtr waitLSN; /* waiting for this LSN or higher */