Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 375aa7b

Browse files
committed
Reduce PG_SYSLOG_LIMIT to 900 bytes.
The previous limit of 1024 was set on the assumption that all modern syslog implementations have line length limits of 2KB or so. However, this is false, as at least Solaris and sysklogd truncate at only 1KB. 900 seems to leave enough room for the max likely length of the tacked-on prefixes, so let's go with that. As with the previous change, it doesn't seem wise to back-patch this into already-released branches; but it should be OK to sneak it into 9.1. Noah Misch
1 parent c4096c7 commit 375aa7b

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/backend/utils/error/elog.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,12 @@ int Log_destination = LOG_DESTINATION_STDERR;
105105
/*
106106
* Max string length to send to syslog(). Note that this doesn't count the
107107
* sequence-number prefix we add, and of course it doesn't count the prefix
108-
* added by syslog itself. On many implementations it seems that the hard
109-
* limit is approximately 2K bytes including both those prefixes.
108+
* added by syslog itself. Solaris and sysklogd truncate the final message
109+
* at 1024 bytes, so this value leaves 124 bytes for those prefixes. (Most
110+
* other syslog implementations seem to have limits of 2KB or so.)
110111
*/
111112
#ifndef PG_SYSLOG_LIMIT
112-
#define PG_SYSLOG_LIMIT 1024
113+
#define PG_SYSLOG_LIMIT 900
113114
#endif
114115

115116
static bool openlog_done = false;

0 commit comments

Comments
 (0)