Just as a note to self, and might be helpful to others…
My Apache error_log
contained the error:
- Software caused connection abort
- Error dispatching request to : (reading input brigade)
For example:
[Mon Sep 07 12:56:24.267462 2020] [proxy_fcgi:error] [pid 13938:tid 140607124641236] (103)Software caused connection abort: [client 1.1.1.1:9060] AH01075: Error dispatching request to : (reading input brigade), referer: https://example.com/path/
And the Apache access_log
contained:
1.1.1.1 - - [2020-09-07 12:56:17] [-] "POST /path/ HTTP/2.0" 400 308 "https://example.com/path/" "Mozilla/5.0 ..."
Note the HTTP status of 400 Bad Request
, and it happened 7 seconds later.
Also, where it's being processed in PHP, I use register_shutdown_function
to create my own log file, which details every request – including the UserID, the http_response_code()
(in this case 200
), how long the request took to process (0.031
seconds), and when it happened (the later time, 12:56:17
).
This is with Apache/2.4.29 and PHP-FPM 7.2
Best Answer
This happened when the user was part way uploading a file, and canceled it.
The partial file is still passed to PHP-FPM, and the PHP script still runs.
PHP sets
$_FILES['name']['error'] === 3
, to indicate the file has been partially uploaded; so, in my script, I returned a HTML page with an error message about the incomplete file (hence the200
response in my logs).I assume the
Software caused connection abort
andError dispatching request to : (reading input brigade)
is describing how this HTML is not being returned to the client/browser.