System: Win10 /VS 2019 (other systems not checked)
Workbench crashes when a second 3D+t data is loaded.
Error message:
Ausnahme ausgelöst bei 0x00007FFA20DEFF87 (ig9icd64.dll) in MitkWorkbench.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x0000033921F5B958.
Position wre the crash finally happens
vtkRenderingOpenGL2-8.1d.dll!vtkOpenGLPolyDataMapper::RenderPieceDraw(vtkRenderer * ren, vtkActor * actor) Zeile 2455 C++
glDrawRangeElements(mode, 0, static_cast<GLuint>(numVerts - 1), static_cast<GLsizei>(this->Primitives[i].IBO->IndexCount), GL_UNSIGNED_INT, nullptr);
Instructions how to provoke the crash:
Dataset A: MITK-Data/3D+t-ITKIO-TestData/LinearModel_4D_arbitrary_time_geometry.nrrd
Dataset B: MITK-Data/3D+t-ITKIO-TestData/LinearModel_4D_prop_time_geometry.nrrd
- Load A and choose a time point that is not covered by B (e.g. every timestep >=2).
- Load B -> crash as described above.
Observiations so far:
- After the loading the world time geometry, will be newly constructed (and navigator resets to time step 0). If this has been done, the mappers/vtk have no problem.
- Before the update of the world geometry (e.g. triggered by the progress bar while loading), vtk crashes, if the current time point is out side of the time bound of the new data set.
- If I deactivate the progress update in IOUtil, no crash happens (see observation 2) and we end in the state described by observation 1.
- I think it is a more fundamental problem in the mapper implementation, as the ImageVtk2dMapper set all structures up for the actor but never properly initializes them as he will always land in ImageVtk2Mapper::Update Line 660 and return w/o doing anything.