All,

We are trying to nail down a memory leak that happens only when documents are POSTed to the server.

For testing we have a short script that does:

while True:
        dictionary_of_parameters = {'field1': 'a'*100000}
        post('url...', dictionary_of_parameters)

Then we run "top" on the server and watch the server memory grow without bound. Why do we know that the problem is in request.readline ()? If I go to mod_python.util.FieldStorage.read_to_boundary() and add the following statement:

def read_to_boundary(...):
  return True
  ...

as the first executable line in the function the memory does not grow.

I have read the req_readline a 1000 time and I can't figure out where the problem is.


My config:
Python 2.4.1
mod_python 3.2.10

Our request handler does nothing other than using util.FieldStorage (req) and req.write('hello').

I have some suspicion that it has to do with:
....
    19   * requestobject.c
    20   *
    21   * $Id: requestobject.c 420297 2006-07-09 13:53:06Z nlehuen $
    22   *
    23   */
....
   846      /* Free rbuff if we're done with it */
847 if (self->rbuff_pos >= self->rbuff_len && self->rbuff != NULL)
   848      {
   849          free(self->rbuff);
   850          self->rbuff = NULL;
   851      }
   852

Though, I can't confirm.


/amn

Reply via email to