Opened 12 years ago

Last modified 12 years ago

#4262 new defect

Python MapScript is unusable in a web application due to memory leaks

Reported by: aboudreault Owned by: aboudreault
Priority: normal Milestone:
Component: MapScript-Python Version: 6.0
Severity: normal Keywords:
Cc: rouault, sdlime, warmerdam, tamas

Description

Python MapScript (and probably others too) is unusable in a web application due to memory leaks. The memory leaks are big.

Change History (4)

comment:1 by aboudreault, 12 years ago

Cc: rouault sdlime warmerdam tamas added

I've fixed all memory leaks that was reported in our application. It's committed in r13307. I also want to backport this in 6.0. Before backporting... it would be good if someone could review my patch and/or test another binding to be sure I haven't broken something, especially testing those functions:

  • msIO_stripStdoutBufferContentType
  • msIO_installStdoutToBuffer
  • and the OWSRequest class

in reply to:  1 comment:2 by aboudreault, 12 years ago

Replying to aboudreault:

I've fixed all memory leaks that was reported in our application. It's committed in r13307. I also want to backport this in 6.0. Before backporting... it would be good if someone could review my patch and/or test another binding to be sure I haven't broken something, especially testing those functions:

  • msIO_stripStdoutBufferContentType
  • msIO_installStdoutToBuffer
  • and the OWSRequest class

oups, I meant msIO_getStdoutBufferBytes (which implies the instalStdoutToBuffer one)

comment:3 by thefab, 12 years ago

I confirm the huge memory leak in the python mapscript.

A this time, I force a reload of web workers after 10 requests.

So I'm very interested in your fix. Next week, I will test the trunk because I use these functions (msIO_*).

comment:4 by aboudreault, 12 years ago

thefab, in my local tests, all memory leaks was gone. Note that if you use installStdoutToBuffer method, use the appropriate msIO_reset... method too. Very important, especially in a loop.

Note: See TracTickets for help on using tickets.