View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0005928 | ParaView | (No Category) | public | 2007-10-22 19:30 | 2009-05-13 13:59 | ||||
Reporter | Ken Moreland | ||||||||
Assigned To | Utkarsh Ayachit | ||||||||
Priority | normal | Severity | crash | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | 3.4 | Fixed in Version | 3.4 | ||||||
Summary | 0005928: Geometry collected when representation first created | ||||||||
Description | This bug happens with in client/server mode when the compositing threshold is something above 0. When you first add a representation, say from loading a file, vtkMPIMove always collects the data regardless of how big it is. For very big data sets, this can crash things (I have seen it happen). A work around is to set the compositing threshold to 0. | ||||||||
Additional Information | The problem occurs in vtkSMSimpleParallelStragegy::UpdatePipeline(). This method is called (indirectly) by the GUI when the representation is first created, before it is ever rendered, to set up the pipeline. This method tries to use the value from the GetUseCompositing method, which is basically set to the current compositing flag for the view. The problem is that the compositing flag was set based on the amount of geometry before the representation. The composite flag is not set again until vtkSMMultiProcessRenderView::BeginStillRender(). By this time, vtkMPIMove has already run and collected all of the geometry on the client (or crashed trying). | ||||||||
Tags | No tags attached. | ||||||||
Project | |||||||||
Topic Name | |||||||||
Type | |||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0009591) Utkarsh Ayachit (administrator) 2007-10-30 13:09 |
This fix entails some explanation. First lets try to understand why the data was always collected on the client unless there view was already compositing. The view needed data size information to decide if compositing should be used. Before getting the size, the view needed to update all representations to ensure that correct data information is used for this check. Also, this data information was obtained from the last UpdateSuppressor i.e. the one that did the caching, so that even when caching was enabled and cache was used, we'd get the correct data information. Hence, since the view updated all representations before calling BeginStillRender or BeginInteractiveRender, all representations used the most recent compositing state to deliver data. This is now changed. BeginStillRender or BeginInteractiveRender no longer can assume that all representation will be updated before these methods are called. Infact, now, the view guarantees only one UpdateAllRepresentations() call which is after the Begin*Render() and before PerformRender(). All representations now guarantee that is GetRepresentedDataInformation() or the methods returning memory sizes are called, the representation will update the pipeline until before the data movement happens. For this we added a new PreCollectUpdateSuppressor where-ever required. Thus, when Begin*Render method does a size query, all representations are "partially" updated and correct data information is returned. UpdateDataInformation on the representation strategy updates the pipeline until the data distribution however, when using cache if the data is cached for the current CacheTime, then it does not update the pipeline, instead goes to the update suppressor keeping the cache, does a cache update and then uses the data information from it. /cvsroot/ParaView3/ParaView3/Qt/Core/pqPipelineRepresentation.cxx,v <-- pqPipelineRepresentation.cxx new revision: 1.16; previous revision: 1.15 /cvsroot/ParaView3/ParaView3/Qt/Components/pqDisplayProxyEditor.cxx,v <-- pqDisplayProxyEditor.cxx new revision: 1.44; previous revision: 1.43 /cvsroot/ParaView3/ParaView3/Servers/Common/CMakeLists.txt,v <-- CMakeLists.txt new revision: 1.71; previous revision: 1.70 /cvsroot/ParaView3/ParaView3/Servers/Common/vtkPVDataSizeInformation.cxx,v <-- vtkPVDataSizeInformation.cxx initial revision: 1.1 /cvsroot/ParaView3/ParaView3/Servers/Common/vtkPVDataSizeInformation.h,v <-- vtkPVDataSizeInformation.h initial revision: 1.1 /cvsroot/ParaView3/ParaView3/Servers/Filters/vtkPVUpdateSuppressor.cxx,v <-- vtkPVUpdateSuppressor.cxx new revision: 1.57; previous revision: 1.56 /cvsroot/ParaView3/ParaView3/Servers/Filters/vtkPVUpdateSuppressor.h,v <-- vtkPVUpdateSuppressor.h new revision: 1.25; previous revision: 1.24 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMDataRepresentationProxy.cxx,v <-- vtkSMDataRepresentationProxy.cxx new revision: 1.8; previous revision: 1.7 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMDataRepresentationProxy.h,v <-- vtkSMDataRepresentationProxy.h new revision: 1.12; previous revision: 1.11 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMIceTCompositeViewProxy.cxx,v <-- vtkSMIceTCompositeViewProxy.cxx new revision: 1.20; previous revision: 1.19 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMIceTMultiDisplayRenderViewProxy.cxx,v <-- vtkSMIceTMultiDisplayRenderViewProxy.cxx new revision: 1.7; previous revision: 1.6 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMMultiProcessRenderView.cxx,v <-- vtkSMMultiProcessRenderView.cxx new revision: 1.5; previous revision: 1.4 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMPVRepresentationProxy.cxx,v <-- vtkSMPVRepresentationProxy.cxx new revision: 1.14; previous revision: 1.13 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMPVRepresentationProxy.h,v <-- vtkSMPVRepresentationProxy.h new revision: 1.8; previous revision: 1.7 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMRenderViewProxy.cxx,v <-- vtkSMRenderViewProxy.cxx new revision: 1.52; previous revision: 1.51 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMRepresentationProxy.h,v <-- vtkSMRepresentationProxy.h new revision: 1.12; previous revision: 1.11 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMRepresentationStrategy.cxx,v <-- vtkSMRepresentationStrategy.cxx new revision: 1.16; previous revision: 1.15 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMRepresentationStrategy.h,v <-- vtkSMRepresentationStrategy.h new revision: 1.16; previous revision: 1.15 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMSimpleParallelStrategy.cxx,v <-- vtkSMSimpleParallelStrategy.cxx new revision: 1.13; previous revision: 1.12 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMSimpleParallelStrategy.h,v <-- vtkSMSimpleParallelStrategy.h new revision: 1.9; previous revision: 1.8 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMSimpleStrategy.cxx,v <-- vtkSMSimpleStrategy.cxx new revision: 1.12; previous revision: 1.11 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMSimpleStrategy.h,v <-- vtkSMSimpleStrategy.h new revision: 1.7; previous revision: 1.6 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMUniformGridParallelStrategy.h,v <-- vtkSMUniformGridParallelStrategy.h new revision: 1.6; previous revision: 1.5 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMUnstructuredGridVolumeRepresentationProxy.cxx,v <-- vtkSMUnstructuredGridVolumeRepresentationProxy.cxx new revision: 1.14; previous revision: 1.13 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMUnstructuredGridVolumeRepresentationProxy.h,v <-- vtkSMUnstructuredGridVolumeRepresentationProxy.h new revision: 1.10; previous revision: 1.9 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMViewProxy.cxx,v <-- vtkSMViewProxy.cxx new revision: 1.18; previous revision: 1.17 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/vtkSMViewProxy.h,v <-- vtkSMViewProxy.h new revision: 1.16; previous revision: 1.15 /cvsroot/ParaView3/ParaView3/Servers/ServerManager/Resources/rendering.xml,v <-- rendering.xml new revision: 1.255; previous revision: 1.254 |
(0009612) Alan Scott (manager) 2007-11-01 20:24 |
Not tested, since I don't know if it can be done. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2007-10-22 19:30 | Ken Moreland | New Issue | |
2007-10-22 19:31 | Ken Moreland | Status | backlog => tabled |
2007-10-22 19:31 | Ken Moreland | Assigned To | => Utkarsh Ayachit |
2007-10-30 13:09 | Utkarsh Ayachit | Status | tabled => @80@ |
2007-10-30 13:09 | Utkarsh Ayachit | Resolution | open => fixed |
2007-10-30 13:09 | Utkarsh Ayachit | Note Added: 0009591 | |
2007-11-01 20:24 | Alan Scott | Status | @80@ => closed |
2007-11-01 20:24 | Alan Scott | Note Added: 0009612 | |
2009-05-13 13:58 | Utkarsh Ayachit | Target Version | => 3.4 |
2009-05-13 13:59 | Utkarsh Ayachit | Fixed in Version | => 3.4 |
2011-06-16 13:10 | Zack Galbreath | Category | => (No Category) |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |