View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0009055ParaViewBugpublic2009-05-20 16:372009-06-09 20:36
ReporterKen Moreland 
Assigned ToUtkarsh Ayachit 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version3.6Fixed in Version3.6 
Summary0009055: Large data inappropriately collected to client in reset camera
DescriptionCreating data in client/server mode, the decision to collect data is initially set based on the compositing decision for the previous render. The upshot is that ParaView will push large data to the client when first opened even when it should not. At best this slows things down a lot. At works, it saturates the client with geometry and crashes it.

To see the problem in operation, do the following.

1. Run the client in a debugger and attach to a server.
2. Set the compositing threshold to about 3 MB (in Edit->Settings). Verify that you are now not using compositing threshold.
3. Set a breakpoint (on the client) at vtkSMSimpleParallelStrategy::GetMoveMode().
4. Create a Sphere source. Set the Theta Resolution and Phi Resolution parameters to their maximum and then hit Apply. (This will create ~90MB of data.)
5. After hitting apply you will reach the breakpoint. Observe the compositing flag and stack trace.

Notice that although we are creating 90MB of geometry, the compositing mode is still set to off. The problem here is that the GetMoveMode is being called during a pipeline update for a reset camera. Since this is before a StillRender is being called (and probably before the geometry is actually created), the appropriate compositing determination has not been set yet. The compositing flag is based on the previous render when there was no geometry.
TagsNo tags attached.
Project
Topic Name
Type
Attached Files

 Relationships

  Notes
(0016636)
Utkarsh Ayachit (administrator)
2009-06-04 15:46

Dont' call UpdateAllRepresentations() explicitly in
ResetCamera(), since
UpdateAllRepresentations() results in delivering the data to rendering
nodes as well. All we want is for the pipeline to be updated until enough
information about the bounds can be known. That's already done by
vtkSMRepresentationProxy::GetBounds(). So we don't need to call update on
representations explicitly here. vtkSMRepresentationProxy has the fancy API to
update the pipelines without actually delivering the data anywhere. This gets
used when GetBounds() is called.

/cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMRenderViewProxy.cxx,v <-- Servers/ServerManager/vtkSMRenderViewProxy.cxx
new revision: 1.87; previous revision: 1.86


committed to 3.6 branch as well.

/cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMRenderViewProxy.cxx,v <-- Servers/ServerManager/vtkSMRenderViewProxy.cxx
new revision: 1.86.2.1; previous revision: 1.86
(0016681)
Alan Scott (manager)
2009-06-09 20:36

Internal to ParaView, assuming it is correct.

 Issue History
Date Modified Username Field Change
2009-05-20 16:37 Ken Moreland New Issue
2009-05-20 16:37 Ken Moreland Status backlog => tabled
2009-05-20 16:37 Ken Moreland Assigned To => Utkarsh Ayachit
2009-06-04 15:46 Utkarsh Ayachit Note Added: 0016636
2009-06-04 15:46 Utkarsh Ayachit Status tabled => @80@
2009-06-04 15:46 Utkarsh Ayachit Fixed in Version => 3.6
2009-06-04 15:46 Utkarsh Ayachit Resolution open => fixed
2009-06-09 20:36 Alan Scott Note Added: 0016681
2009-06-09 20:36 Alan Scott Status @80@ => closed


Copyright © 2000 - 2018 MantisBT Team