Thank you for the reply.  I was going to grab the entire log line and right 
before I exited my view of the dumpost_log, I just happened to spot an odd 
character sequence in the corner of my eye.  Did some poking around and it 
turns out that the script was dying because it was assuming the input POSTDATA 
was utf-8 encoded and occasionally, it wasn't.  I had just never seen this 
AH02651 error before and I let the fact that all of the 10k or less POSTDATA 
sizes worked fine and all of the bigger ones failed push me in the wrong 
problem determination direction.

Thank you for the information and I apologize for needlessly engaging the mail 
list.

Jim

-----Original Message-----
From: Christophe JAILLET
Subject: Re: Apache/2.4.26 (Unix) undocumented error AH02651

Le 21/08/2019 à 17:58, HISEY, JAMES a écrit :
> Running Apache 2.4.26 on RHEL7, I'm receiving an error in my apache error log 
> of AH02651: Error writing request body to script...<perl script here>.  I am 
> unable to locate a meaningful description of AH02651 anywhere as all error 
> lists I can find stop in the lower 2000's. It appears to happen when the 
> POSTDATA is large.  A 9k POST works fine but a 25k POST does not and this is 
> repeatable.  My perl CGI has no limit configured for POSTDATA size so I don't 
> know if it's a size issue or possibly characters within the POSTDATA.  Could 
> someone please help me out with what could cause an AH02651? Thank you.

Hi,

AFAIK, there is no listing of all error codes that can be logged. The 
error message itself should be helpful enough.

However, these error codes are really useful in order to spot which part 
of the C source code is involved.
If you are familiar with C, search for '02651' or 'APLOGNO(02651)'.

In this particular case, the code that triggers this error message is: 
(code taken from trunk)

             /* Keep writing data to the child until done or too much time
              * elapses with no progress or an error occurs.
              */
             rv = apr_file_write_full(tempsock, data, len, NULL);

             if (rv != APR_SUCCESS) {
                 /* silly script stopped reading, soak up remaining 
message */
                 child_stopped_reading = 1;
                 ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(02651)
                               "Error writing request body to script %s",
                               r->filename);

             }

Could you post the complete log entry? It should contain the value of 
'rv' which can be helpful in order to understand what went wrong.

CJ


Reply via email to