Re: AIX memory leakage

Rene Brun (Rene.Brun@cern.ch)
Tue, 09 Dec 1997 16:24:31 +0100


Jobst Heinrich Koehne wrote:

> Dear Rene and Fons,
>
> Starting from the Event example in //root/test
> I've written a copy program with an Event object containing some 40
> pointers to TClonesArrays corresponding to our BOS banks.
>
> Everything works fine on SGI with g++. However as soon as I went to IBM
> AIX I had trouble. I couldn't run with options
>
> CXXFLAGS = -O -w -qnoro -qnoroconst -qmaxmem=-1 -I$(ROOTSYS)/include
>
> because the EventCint.cxx file (15000 lines) compiling didn't come to an
> end (after 5h I gave up). Only with
>
> CXXFLAGS = -w -qnoro -qnoroconst -qmaxmem=-1 -I$(ROOTSYS)/include
>
> it works at all. But at runtime (with top) one sees the job memory
> continuosly increasing and finally it aborts with
>
> Fatal in <TStorage::ReAlloc>: storage exhausted
>
> This happens in the end phase of the job when the tree->Fill() statements
> of every event are already done. So it must be sth with the
> hfile->Write().
>
> ahoi
> Jobst
>
> The machine:
> a dual processor IBM RS6000 with 320 Mb RAM running two 233 MHz PowerPC
> root:
> Version 1.03/08 5 December 1997

Jobst,
We recommend to compile the Cint generated files in noopt mode. In
particular
under AIX, you gain a huge amount of compilation time.

For the "memory leak" problem, do you get the same problem if you run only a
few events,
if yes, could you send me the ouput of TTree::Print immedialy before
file->Write().
Could you also check that when you create the Tree, you indeed have a TFile
object
as the current directory? Otherwise root will try to create this Tree in
memory
and it may take a lot of memory to save it as one single object to a file.

Rene Brun