[Paraview] Memory leak with Catalyst

Burlen Loring burlen.loring at gmail.com
Sun May 22 22:30:43 EDT 2016


btw, we just had similar problem that was entirely explained by vtk 
writer attempting to gather a bunch of arrays to the root node. Utkarsh 
found a way to disable that behavior. I wonder if you are hitting the same.

On 5/20/2016 4:36 PM, Gallagher, Timothy P wrote:
>
> Well... not going so well.
>
>
> If I run a small simulation with massif and the Release build of 
> paraview, I don't see any growing memory in time. I also get my VTK 
> files and images.
>
>
> If I run the same simulation linked against a Debug build with 
> VTK_DEBUG_LEAKS on, there is a segfault inside one of the 
> libvtkRendering libraries (it says libvtkRenderingOp but the rest of 
> the name is cut off). If I take the image rendering out of my pipeline 
> (comment out the RegisterView call) and leave the VTK file writing, it 
> runs fine and doesn't report any leaks. I tried to get the segfault to 
> drop a core file, but it won't do it.
>
>
> I'm thinking that there is an issue in the rendering part causing the 
> leak. I have no idea what it could be though -- this is the 4.4.0 
> version, is anybody aware of any bug fixes between 4.4.0 and current 
> versions that might be relevant?
>
>
> Thanks for the help,
>
>
> Tim
>
>
>
>
>
> ------------------------------------------------------------------------
> *From:* ParaView <paraview-bounces at paraview.org> on behalf of 
> Gallagher, Timothy P <tim.gallagher at gatech.edu>
> *Sent:* Friday, May 20, 2016 4:17 PM
> *To:* Burlen Loring; Andy Bauer
> *Cc:* paraview at paraview.org
> *Subject:* Re: [Paraview] Memory leak with Catalyst
>
> Thanks for the advice Burlen -- I haven't used Massif before, so this 
> is a good opportunity to give it a try.
>
>
> The initialize/finalize each time approach doesn't work either. I am 
> calling the Finalize() routine on the vtkCPProcessor class but then 
> when it tries to initialize again, it throws:
>
>
> Warning: In /data4/ParaView/VTK/Parallel/Core/vtkSocketController.cxx, 
> line 50
> vtkSocketController (0xa4342f0): Already initialized.
>
>
> and then crashes. So, hopefully I can sort out the memory leak rather 
> than trying to debug why a hacked fix doesn't work!
>
>
> Tim
>
>
>
> ------------------------------------------------------------------------
> *From:* Burlen Loring <burlen.loring at gmail.com>
> *Sent:* Friday, May 20, 2016 3:46 PM
> *To:* Gallagher, Timothy P; Andy Bauer
> *Cc:* paraview at paraview.org
> *Subject:* Re: [Paraview] Memory leak with Catalyst
>
> VTK_DEBUG_LEAKS, although will catch some serious errors, will not 
> catch all kinds of leaks. For example you can have leaks where data 
> erroneously accumulates with each time step, but is deleted at program 
> termination. VTK_DEBUG_LEAKS will not catch that kind of error. It's 
> probably better to use massif to profile your code on a small one node 
> run. There's an excellent tool called massif visualizer to aid in 
> exploring the data generated.
>
>
> $0.02
>
>
> On 05/20/2016 11:56 AM, Gallagher, Timothy P wrote:
>>
>> Hi Andy,
>>
>>
>> Thanks for the tips. I will get working on the VTK_DEBUG_LEAKS now 
>> and see what it turns up.
>>
>>
>> The initialize/finalize every time is definitely a hack and not for 
>> long-term use. But, sponsors want a report on Monday and we need to 
>> be able to visualize things for that -- the simulation is too big to 
>> write data files and post-process later. So I modified the code to do 
>> that for now until I can find a proper fix.
>>
>>
>> I'll let you know if I get stuck with the log file.
>>
>>
>> Thanks again,
>>
>>
>> Tim
>>
>>
>>
>> ------------------------------------------------------------------------
>> *From:* Andy Bauer <andy.bauer at kitware.com>
>> *Sent:* Friday, May 20, 2016 2:39 PM
>> *To:* Gallagher, Timothy P
>> *Cc:* paraview at paraview.org
>> *Subject:* Re: [Paraview] Memory leak with Catalyst
>> Hi Tim,
>>
>> If you build Catalyst with VTK_DEBUG_LEAKS enabled it is pretty good 
>> at finding VTK objects that aren't deleted properly. You should be 
>> able to run this with a small amount of calls to Catalyst as well. If 
>> you try this and want help understanding the output (if an object 
>> like a vtkUnstructuredGrid is leaked it will often give a whole bunch 
>> of false leaks that the unstructured grid is just holding the 
>> references to), just share your output file and I can take a look at 
>> it to try and narrow down the culprit. That may be slightly easier to 
>> use than Valgrind.
>>
>> Beyond this, you could maybe try the same run but without doing any 
>> Catalyst work to see what happens then. That may be a lot of compute 
>> cycles but I'm not sure how else to try and bisect where the memory 
>> leak is occurring.
>>
>> Initializing and finalizing Catalyst every time you want output would 
>> probably work but I'd think there may be significant overhead doing 
>> it like this. Plus, it's not really solving the problem -- just 
>> avoiding it.
>>
>> Best,
>> Andy
>>
>>
>> On Fri, May 20, 2016 at 12:57 PM, Gallagher, Timothy P 
>> <tim.gallagher at gatech.edu <mailto:tim.gallagher at gatech.edu>> wrote:
>>
>>     Hi,
>>
>>
>>     One of our users is running a very big simulation and writing out
>>     images of two slices (two different views) every 1000 iterations
>>     and writing out the data for the two slices (two different data
>>     writers) as VTK files every 5000 iterations. It is using Paraview
>>     4.4.
>>
>>
>>     After 21000 iterations, the simulation is killed because the
>>     memory on the compute nodes fills up. I usually know how to track
>>     down memory problems in our code using valgrind and related
>>     tools, but is that the right way to go to try and find this problem?
>>
>>
>>     Are there any tips on how to isolate where the problem may be? I
>>     don't know if it is in the adapter, or in paraview itself. Has
>>     anybody encountered problems with runaway memory using Catalyst
>>     in 4.4 when writing images or VTK files?
>>
>>
>>     I know when we use pvpython to generate images and loop over many
>>     files, sometimes the memory also blows up and so we usually move
>>     the loop over the files outside the pvpython script and into a
>>     driver script that executes a new pvpython for each file. Is
>>     there a way to shut down/start up Catalyst each time it needs to
>>     write something? Is that advisable?
>>
>>
>>     Thanks,
>>
>>
>>     Tim
>>
>>
>>     _______________________________________________
>>     Powered by www.kitware.com <http://www.kitware.com>
>>
>>     Visit other Kitware open-source projects at
>>     <http://www.kitware.com/opensource/opensource.html>http://www.kitware.com/opensource/opensource.html
>>
>>     Please keep messages on-topic and check the ParaView Wiki at:
>>     http://paraview.org/Wiki/ParaView <http://paraview.org/Wiki/ParaView>
>>
>>     Search the list archives at:
>>     <http://markmail.org/search/?q=ParaView>http://markmail.org/search/?q=ParaView
>>
>>     Follow this link to subscribe/unsubscribe:
>>     http://public.kitware.com/mailman/listinfo/paraview
>>
>>
>>
>>
>> _______________________________________________
>> Powered bywww.kitware.com
>>
>> Visit other Kitware open-source projects athttp://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ParaView Wiki at:http://paraview.org/Wiki/ParaView
>>
>> Search the list archives at:http://markmail.org/search/?q=ParaView
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/paraview
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20160522/8b578a42/attachment.html>


More information about the ParaView mailing list