mirror of
https://github.com/postgres/postgres.git
synced 2026-05-27 20:27:28 -04:00
Only show signal-sender PID/UID detail in server log
The errdetail() added in55890a9194(and reworked in3e2a1496ba) exposed the operating-system PID and UID of whoever sent the termination signal directly to the affected client. Discussion suggested this should not be sent to the client, but only recorded in the server log where the admin can use it for diagnosis. Author: Chao Li <li.evan.chao@gmail.com> Reviewed-by: Jakub Wartak <jakub.wartak@enterprisedb.com> Discussion: https://postgr.es/m/E5CA274C-74BD-4067-8B73-A3AD8C080EFA@gmail.com
This commit is contained in:
parent
f67dbd8398
commit
b772f3fcad
3 changed files with 9 additions and 7 deletions
|
|
@ -304,9 +304,10 @@ SyncRepWaitForLSN(XLogRecPtr lsn, bool commit)
|
|||
ereport(WARNING,
|
||||
(errcode(ERRCODE_ADMIN_SHUTDOWN),
|
||||
errmsg("canceling the wait for synchronous replication and terminating connection due to administrator command"),
|
||||
errdetail("The transaction has already committed locally, but might not have been replicated to the standby. Signal sent by PID %d, UID %d.",
|
||||
(int) ProcDieSenderPid,
|
||||
(int) ProcDieSenderUid)));
|
||||
errdetail("The transaction has already committed locally, but might not have been replicated to the standby."),
|
||||
errdetail_log("The transaction has already committed locally, but might not have been replicated to the standby. Signal sent by PID %d, UID %d.",
|
||||
(int) ProcDieSenderPid,
|
||||
(int) ProcDieSenderUid)));
|
||||
else
|
||||
ereport(WARNING,
|
||||
(errcode(ERRCODE_ADMIN_SHUTDOWN),
|
||||
|
|
|
|||
|
|
@ -111,12 +111,13 @@ int client_connection_check_interval = 0;
|
|||
int restrict_nonsystem_relation_kind;
|
||||
|
||||
/*
|
||||
* Include signal sender PID/UID as errdetail when available (SA_SIGINFO).
|
||||
* The caller must supply the (already-captured) pid and uid values.
|
||||
* Include signal sender PID/UID in the server log when available
|
||||
* (SA_SIGINFO). The caller must supply the already-captured pid and uid
|
||||
* values.
|
||||
*/
|
||||
#define ERRDETAIL_SIGNAL_SENDER(pid, uid) \
|
||||
((pid) == 0 ? 0 : \
|
||||
errdetail("Signal sent by PID %d, UID %d.", (int) (pid), (int) (uid)))
|
||||
errdetail_log("Signal sent by PID %d, UID %d.", (int) (pid), (int) (uid)))
|
||||
|
||||
/* ----------------
|
||||
* private typedefs etc
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ is($ret, 2, 'server crash: psql exit code');
|
|||
like($out, qr/before/, 'server crash: output before crash');
|
||||
unlike($out, qr/AFTER/, 'server crash: no output after crash');
|
||||
like( $err, qr/psql:<stdin>:2: FATAL: terminating connection due to administrator command
|
||||
(?:DETAIL: Signal sent by PID \d+, UID \d+\.\n)?psql:<stdin>:2: server closed the connection unexpectedly
|
||||
psql:<stdin>:2: server closed the connection unexpectedly
|
||||
This probably means the server terminated abnormally
|
||||
before or while processing the request.
|
||||
psql:<stdin>:2: error: connection to server was lost/,
|
||||
|
|
|
|||
Loading…
Reference in a new issue