Re: ap_log_rerror limit size

2013-03-13 Thread Hoang-Vu Dang
well, I do not buy the idea of security reasons, but I agree with your last
sentence that they do not see the need to make this a configurable option,
the error log does not need it.

regarding my purpose: mod_dumpio dumps data into the error log file in
chunks, I want to merge them if the message is large and do something with
it before logging. With this limitation, I will need to write it to
somewhere else using my custom file handler.

Vu

On Wed, Mar 13, 2013 at 5:46 PM,  wrote:

> On Wed, Mar 13, 2013 at 04:40:50PM +0100, Hoang-Vu Dang wrote:
> > I traced this into the Apache source code (ver 2.4.4). It looks like the
> > error message string is really limited by the size of 8KB.
> >
> > This line is in server/log.c:1097
> >
> > "
> > static void log_error_core(const char *file, int line, int module_index,
> >int level,
> >apr_status_t status, const server_rec *s,
> >const conn_rec *c,
> >const request_rec *r, apr_pool_t *pool,
> >const char *fmt, va_list args)
> > {
> > char errstr[MAX_STRING_LEN];
> > "
> >
> > "
> > And MAX_STRING_LEN is defined in include/httpd.h:298
> >
> > /** The default string length */
> > #define MAX_STRING_LEN HUGE_STRING_LEN
> >
> > /** The length of a Huge string */
> > #define HUGE_STRING_LEN 8192
> > "
> >
> > I tried to increase this value, recompile, and apparently I got a longer
> > message.
> > Please correct me if I am wrong... If this is true then can anyone tell
> me
> > why this "HUGE_STRING_LEN" value is a hard-coded value but not a
> > configurable option ?
>
> I can't speak for the apache core team, but such a limit usually is done
> for security reasons. Tracking buffer overflows in dynamically allocated
> memory can be rather tricky. Btw, what's your goal here? I get the
> feeling that you try to (ab)use the error log as a place to dump large
> blobs of information (traces?). Remember, this is an error log, not a
> place to dump Tolstoy's War and Peace 
>
>  HTH Ralf Mattes
>
>
> > Cheers, Vu
>  that you try to (ab)use the error log as a place to dump large blobs of
> information (traces?). Remember, this is an error log, not a
> place to dump Tolstoy's War and Peace 
>
>  HTH Ralf Mattes
> >
> >
> > On 03/13/2013 11:16 AM, Eric Covener wrote:
> >> On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang 
> wrote:
> >>> Hi guys,
> >>>
> >>> Is there any limit of the size of a message log entry? How to control
> >>> this ?
> >>>
> >>> I did this:
> >>>
> >>> ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, f->r,
> >>>  "%s", buffer);
> >>>
> >>> And the buffer was truncated on the error log. I check the strlen of
> the
> >>> buffer and it was about 320K, and I got only around: ~ 8KB
> >> If it's more than PIPE_BUF, it won't be atomic and can be interleaved
> >> with other entries.  Are you sure it's truncated and not just spread
> >> out?
>


Re: ap_log_rerror limit size

2013-03-13 Thread rm
On Wed, Mar 13, 2013 at 04:40:50PM +0100, Hoang-Vu Dang wrote:
> I traced this into the Apache source code (ver 2.4.4). It looks like the 
> error message string is really limited by the size of 8KB.
>
> This line is in server/log.c:1097
>
> "
> static void log_error_core(const char *file, int line, int module_index,
>int level,
>apr_status_t status, const server_rec *s,
>const conn_rec *c,
>const request_rec *r, apr_pool_t *pool,
>const char *fmt, va_list args)
> {
> char errstr[MAX_STRING_LEN];
> "
>
> "
> And MAX_STRING_LEN is defined in include/httpd.h:298
>
> /** The default string length */
> #define MAX_STRING_LEN HUGE_STRING_LEN
>
> /** The length of a Huge string */
> #define HUGE_STRING_LEN 8192
> "
>
> I tried to increase this value, recompile, and apparently I got a longer 
> message.
> Please correct me if I am wrong... If this is true then can anyone tell me 
> why this "HUGE_STRING_LEN" value is a hard-coded value but not a 
> configurable option ?

I can't speak for the apache core team, but such a limit usually is done
for security reasons. Tracking buffer overflows in dynamically allocated
memory can be rather tricky. Btw, what's your goal here? I get the
feeling that you try to (ab)use the error log as a place to dump large
blobs of information (traces?). Remember, this is an error log, not a
place to dump Tolstoy's War and Peace 

 HTH Ralf Mattes

 
> Cheers, Vu
 that you try to (ab)use the error log as a place to dump large blobs of
information (traces?). Remember, this is an error log, not a
place to dump Tolstoy's War and Peace 

 HTH Ralf Mattes
>
>
> On 03/13/2013 11:16 AM, Eric Covener wrote:
>> On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang  wrote:
>>> Hi guys,
>>>
>>> Is there any limit of the size of a message log entry? How to control 
>>> this ?
>>>
>>> I did this:
>>>
>>> ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, f->r,
>>>  "%s", buffer);
>>>
>>> And the buffer was truncated on the error log. I check the strlen of the 
>>> buffer and it was about 320K, and I got only around: ~ 8KB
>> If it's more than PIPE_BUF, it won't be atomic and can be interleaved
>> with other entries.  Are you sure it's truncated and not just spread
>> out?


Re: ap_log_rerror limit size

2013-03-13 Thread Hoang-Vu Dang
I traced this into the Apache source code (ver 2.4.4). It looks like the 
error message string is really limited by the size of 8KB.


This line is in server/log.c:1097

"
static void log_error_core(const char *file, int line, int module_index,
   int level,
   apr_status_t status, const server_rec *s,
   const conn_rec *c,
   const request_rec *r, apr_pool_t *pool,
   const char *fmt, va_list args)
{
char errstr[MAX_STRING_LEN];
"

"
And MAX_STRING_LEN is defined in include/httpd.h:298

/** The default string length */
#define MAX_STRING_LEN HUGE_STRING_LEN

/** The length of a Huge string */
#define HUGE_STRING_LEN 8192
"

I tried to increase this value, recompile, and apparently I got a longer 
message.
Please correct me if I am wrong... If this is true then can anyone tell 
me why this "HUGE_STRING_LEN" value is a hard-coded value but not a 
configurable option ?


Cheers, Vu


On 03/13/2013 11:16 AM, Eric Covener wrote:

On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang  wrote:

Hi guys,

Is there any limit of the size of a message log entry? How to control this ?

I did this:

ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, f->r,
 "%s", buffer);

And the buffer was truncated on the error log. I check the strlen of the buffer 
and it was about 320K, and I got only around: ~ 8KB

If it's more than PIPE_BUF, it won't be atomic and can be interleaved
with other entries.  Are you sure it's truncated and not just spread
out?




Re: ap_log_rerror limit size

2013-03-13 Thread Hoang Vu Dang
Yes I am sure I can't find other entries related to that request.

How to find whether I used PIPE_BUF and how to increase that BUF size ?

On Mar 13, 2013, at 11:16 AM, Eric Covener  wrote:

> On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang  wrote:
>> Hi guys,
>> 
>> Is there any limit of the size of a message log entry? How to control this ?
>> 
>> I did this:
>> 
>> ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, f->r,
>>"%s", buffer);
>> 
>> And the buffer was truncated on the error log. I check the strlen of the 
>> buffer and it was about 320K, and I got only around: ~ 8KB
> 
> If it's more than PIPE_BUF, it won't be atomic and can be interleaved
> with other entries.  Are you sure it's truncated and not just spread
> out?



Re: ap_log_rerror limit size

2013-03-13 Thread Eric Covener
On Wed, Mar 13, 2013 at 6:16 AM, Eric Covener  wrote:
> On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang  wrote:
>> Hi guys,
>>
>> Is there any limit of the size of a message log entry? How to control this ?
>>
>> I did this:
>>
>> ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, f->r,
>> "%s", buffer);
>>
>> And the buffer was truncated on the error log. I check the strlen of the 
>> buffer and it was about 320K, and I got only around: ~ 8KB
>
> If it's more than PIPE_BUF, it won't be atomic and can be interleaved
> with other entries.  Are you sure it's truncated and not just spread
> out?

Er if using a piped logger that is.


Re: ap_log_rerror limit size

2013-03-13 Thread Eric Covener
On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang  wrote:
> Hi guys,
>
> Is there any limit of the size of a message log entry? How to control this ?
>
> I did this:
>
> ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, f->r,
> "%s", buffer);
>
> And the buffer was truncated on the error log. I check the strlen of the 
> buffer and it was about 320K, and I got only around: ~ 8KB

If it's more than PIPE_BUF, it won't be atomic and can be interleaved
with other entries.  Are you sure it's truncated and not just spread
out?