We are looking into a memory leak with one of our ABL batch processes running on Linux RedHat 5.8, ABL version 10.2B06.
Running the pmap command on the _progres process, we notice one of the Memory regions growing. It's always listed as 4th from the top shown here:
0000000000400000 7400K r-x-- /export/apps/progress/dlc/bin/_progres
0000000000c3a000 1740K rwx-- /export/apps/progress/dlc/bin/_progres
0000000000ded000 772K rwx-- [ anon ]
0000000010c3d000 45580K rwx-- [ anon ]
Does anyone know what that memory might be being used for for a _progres client?
I have not used pmap, and don't know much about it. I would guess this particular region is the heap. Your stack memory would possibly grow if you caused something deeply nested in the AVM (deeply nested functions/methods maybe). The heap is intentionally dynamic, and on linux/unix it doesn't go down.
But that is probably a long way abstracted from your investigation. You'd want to know what particular ABL constructs are consuming this memory (most things are in the heap). There are a number of things you could do to investigate. bob.p is a favourite (I think you'll find it in the kbase) to track down leaked dynamic objects. That is where I would start. Tech Support can assist with this investigation.
Thanks much for the response and information. I am opening a support case on it.
One question though. A suspect object that we are looking at is a SAX-WRITER object. I had run bob.p, but it doesn't appear to display the SAX-WRITER object. Does anyone know how to extract and display any of those that might be sitting in memory?
The AVM does not provide a chain of SAX_WRITERs. I would start with -logEntryType DYNOBJECTS.*:4. This will generate a line for each object created and deleted. If you see your SAX-WRITER being created but not deleted, that will confirm it.
Yes, we had done that logging which indicated that the SAX-WRITER object was not being deleted - and all other objects are being deleted. However, the code has a delete of the object and logging indicates that it is being executed. But the process continues to grow, which is why I was wanting to look closer into the contents of the process's memory in case the logging is wrong or there is another issue. Thanks again.
Then you should continue with Tech Support. They have more tools they can use if need be.