Re: ap_log_rerror limit size
On Wed, Mar 13, 2013 at 6:16 AM, Eric Covener cove...@gmail.com wrote: On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang dang@gmail.com 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
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 cove...@gmail.com wrote: On Wed, Mar 13, 2013 at 6:01 AM, Hoang Vu Dang dang@gmail.com 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
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 dang@gmail.com 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
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, r...@seid-online.de 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 dang@gmail.com 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?