PHP-FPM: “NOTICE: the log buffer is full (1024). The access log request has been truncated.”

Running the official php:7.3-fpm-alpine Docker image. I'm getting the following output on the console: NOTICE: the log buffer is full (1024). The access log request has been truncated.

A custom access.format is configured in the www.conf config. Additionally, the following config is set inside php-fpm.conf:

log_limit = 32768
log_buffering = yes

To be able to write logs that are longer than 1024 characters on a single line, as described in the PHP documentation.

Otherwise the defaults are used.

This is needed because the logs are read from stdout & stderr line-by-line and stashed in a central logging tool. So a single log message might not be broken up into multiple lines.

Example request where PHP-FPM prints a few log messages, one per line:

{"Timestamp":"2020-05-20T08:06:43+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2020-03/icon_info.svg (ID 44) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"16 MB"}}

{"Timestamp":"2020-05-20T08:06:44+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2020-03/icon_info.svg (ID 44) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"16 MB"}}

{"Timestamp":"2020-05-20T08:06:48+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}

{"Timestamp":"2020-05-20T08:06:48+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}

{"Timestamp":"2020-05-20T08:06:48+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}

{"Timestamp":"2020-05-20T08:06:49+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}

{"Timestamp":"2020-05-20T08:06:50+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}

{"Timestamp": "2020-05-20T08:06:51+0000", "MessageTemplate": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36", "Properties": {"level": "INFO", "channel": "php-fpm", "type": "access",  "remote_address":"172.20.0.6", "host": "localhost", "method": "GET", "url":"GET /long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url

NOTICE: the log buffer is full (1024). The access log request has been truncated.

{"Timestamp": "2020-05-20T08:06:53+0000", "MessageTemplate": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36", "Properties": {"level": "INFO", "channel": "php-fpm", "type": "access",  "remote_address":"172.20.0.6", "host": "localhost", "method": "GET", "url":"GET /de/api/cookie-banner", "server_protocol": "HTTP/2.0", "status_code": "200", "referrer": "https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/

NOTICE: the log buffer is full (1024). The access log request has been truncated.

NOTICE: the log buffer is full (1024). The access log request has been truncated.

The first log entry - which is displayed correctly - has 1811 chars, so more than 1024 chars and more than 1024 bytes. The last two log messages are truncated and the buffer full message printed. I also tried turning log_buffering = yes off, but didn't have any effect on this behaviour.

Is there any way to prevent this? To have the full logs, without them being truncated.

Edit: Only affects access logs. Logs that are written by the application work.

The message is written here: https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_log.c#L153 and the log buffer size defined here: https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_log.c#L25 I couldn't find any definitions of MAX_LINE_LENGTH in the repository. Also compiled it and searched for MAX_LINE_LENGTH, without results.


Solution 1:

I have patched the PHP source and compiled it myself.

Increased the value of the MAX_LINE_LENGTH constant to 8192. Now PHP-FPM access logs that are longer than 1024 characters also work.

Patch used:

diff --git a/sapi/fpm/fpm/fpm_log.c b/sapi/fpm/fpm/fpm_log.c
index a09e80a490..63cd221ce9 100644
--- a/sapi/fpm/fpm/fpm_log.c
+++ b/sapi/fpm/fpm/fpm_log.c
@@ -19,11 +19,7 @@
 #include "fastcgi.h"
 #include "zlog.h"
 
-#ifdef MAX_LINE_LENGTH
-# define FPM_LOG_BUFFER MAX_LINE_LENGTH
-#else
-# define FPM_LOG_BUFFER 1024
-#endif
+# define FPM_LOG_BUFFER 8192
 
 static char *fpm_log_format = NULL;
 static int fpm_log_fd = -1;

Issue at PHP-src: https://github.com/php/php-src/pull/5634