Newsgroups: comp.parallel.pvm
From: romig@cse.unl.edu (Phil Romig)
Subject: Memory Leak
Organization: University of Nebraska--Lincoln	
Date: 1 Mar 1996 02:47:21 GMT
Message-ID: <4h5ofp$mi0@crcnis3.unl.edu>


I have a set of processes running under PVM3 on an HPUX system.  
The clients return a large number of 256x256 byte blocks to a
master program.  These blocks are sent about 1 per second.

The pvmd process (not the client process) grows huge very quickly.
I'm using only the default buffer, and call pvm_initsend() before
each block is passed.  I don't do anything fancy with pvm_setsbuf()
or the rest.

I tried printing out the buffer handles returned by initsend, and it
seems that only one or two buffers are being used (the handle is always
5 or 6).

Now the odd part.  If I toss in a call to umbuf_list to see what is
going on the problem goes away!  Completely.  The pvmd process stays
right at 500K (where is starts) through the entire run.

So, I've sort of fixed my problem, I just toss in a umbuf_list() and
redirect output to /dev/null.  However I'm worried about the overhead
of umbuf_list, not the mention that fact that I'd really like to fix
the problem correctly.

Any ideas?  Anyone run across this?  umbuf_list() is supposed to be
a passive probe for information.  Any idea what calling it could do
to solve this memory leak?

thanks
Phil Romig
University Of Nebraska, Lincoln

***************************************************************************
Phil Romig               
romig@cse.unl.edu

"Man is mortal.  That may be; but let us die resisting; and if our lot is
complete annihilation, let us not behave in such a way that it seems justice."
                                             -Albert Camus
****************************************************************************

