Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
OpenWalnut Core OpenWalnut Core
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 86
    • Issues 86
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenWalnut
  • OpenWalnut CoreOpenWalnut Core
  • Issues
  • #348

Closed
Open
Created May 08, 2017 by Sebastian Eichelbaum@ebaumMaintainer

-RM-67-MR-Deleting ClusterDisplay crashes OW with Assertion.

The problem is that there are still too many references to the module. This is why the assertion fails.

How to reproduce:

  • start ow with t1 image
  • create ClusterDisplay?
  • delete ClusterDisplay?
*INFO    [Kernel] Starting Kernel 
*INFO    [GE] Initializing OpenSceneGraph Root Node 
*INFO    [GE] Initializing OpenSceneGraph Root Node 
*INFO    [GE] Initializing OpenSceneGraph Root Node 
QWidget::setMinimumSize: (/QDockWidget) Negative sizes (0,-1) are not possible
*INFO    [GE] Starting Graphics Engine 
*DEBUG   [WQtGLWidget(Axial View)] Painted the first time. 
*DEBUG   [WQtGLWidget(Coronal View)] Painted the first time. 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Data Module". 
*INFO    [ModuleContainer (KernelRootContainer)] Adding module "Data Module" to container. 
*INFO    [ModuleContainer (KernelRootContainer)] Associated module "Data Module" with container. 
*INFO    [Module (Data Module)] Starting module main method. 
*DEBUG   [Data Module] Loading data from "/home/math/MPI-CBS/mr188/mr188_t1_np.nii.gz". 
*DEBUG   [WReaderNIfTI] Load as WDataSetScalar 
*DEBUG   [WDataTexture3D] Texture scaling information for data in [0, 255]: scaling factor=255 
*DEBUG   [WDataTexture3D] Resolution is 160x200x160 
*DEBUG   [Data Module] Loading data done. 
*DEBUG   [WGEColormapping] Registering texture. 
*DEBUG   [ControlPanel] Inserting module Data Module to control panel. 
*DEBUG   [ControlPanel] Activating module Data Module in control panel. 
*DEBUG   [GUI] Auto Display active and Data module added. The proper module will be added. 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Navigation Slices". 
*INFO    [ModuleContainer (KernelRootContainer)] Adding module "Navigation Slices" to container. 
*INFO    [ModuleContainer (KernelRootContainer)] Associated module "Navigation Slices" with container. 
*INFO    [Module (Navigation Slices)] Starting module main method. 
*DEBUG   [WDataTexture3D] Handling W_DT_UINT8 
*DEBUG   [WDataTexture3D] Texture for scalar char data set. 
*DEBUG   [WGEShader] Reloading vertex shader "WMNavSlices-vertex.glsl" 
*DEBUG   [WGEShader] Reloading fragment shader "WMNavSlices-fragment.glsl" 
*DEBUG   [WGEShader] Reloading geometry shader "WMNavSlices-geometry.glsl" 
*DEBUG   [ControlPanel] Inserting module Navigation Slices to control panel. 
*DEBUG   [ControlPanel] Activating module Navigation Slices in control panel. 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Cluster Param Display". 
*INFO    [ModuleContainer (Cluster Param Display)] Constructing module container. 
*INFO    [ModuleContainer (KernelRootContainer)] Adding module "Data Module" to container. 
*INFO    [ModuleContainer (KernelRootContainer)] Adding module "Data Module" to container not needed. Its already inside. 
*INFO    [ModuleContainer (KernelRootContainer)] Adding module "Cluster Param Display" to container. 
*INFO    [ModuleContainer (KernelRootContainer)] Associated module "Cluster Param Display" with container. 
*INFO    [Module (Cluster Param Display)] Starting module main method. 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Deterministic Tract Clustering". 
*INFO    [ModuleContainer (Cluster Param Display)] Adding module "Deterministic Tract Clustering" to container. 
*INFO    [ModuleContainer (Cluster Param Display)] Associated module "Deterministic Tract Clustering" with container. 
*INFO    [Module (Deterministic Tract Clustering)] Starting module main method. 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Voxelizer". 
*DEBUG   [ControlPanel] Inserting module Cluster Param Display to control panel. 
*INFO    [ModuleContainer (Cluster Param Display)] Adding module "Voxelizer" to container. 
*INFO    [ModuleContainer (Cluster Param Display)] Associated module "Voxelizer" with container. 
*INFO    [Module (Voxelizer)] Starting module main method. 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Gauss Filtering". 
*INFO    [ModuleContainer (Cluster Param Display)] Adding module "Gauss Filtering" to container. 
*INFO    [ModuleContainer (Cluster Param Display)] Associated module "Gauss Filtering" with container. 
*INFO    [Module (Gauss Filtering)] Starting module main method. 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Isosurface". 
*DEBUG   [Gauss Filtering] Waiting ... 
*INFO    [ModuleContainer (Cluster Param Display)] Adding module "Isosurface" to container. 
*INFO    [ModuleContainer (Cluster Param Display)] Associated module "Isosurface" with container. 
*INFO    [Module (Isosurface)] Starting module main method. 
*DEBUG   [Isosurface] Waiting ... 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Cluster Slicer". 
*INFO    [ModuleContainer (Cluster Param Display)] Adding module "Cluster Slicer" to container. 
*INFO    [ModuleContainer (Cluster Param Display)] Associated module "Cluster Slicer" with container. 
*INFO    [Module (Cluster Slicer)] Starting module main method. 
*DEBUG   [Cluster Slicer] Waiting... 
*DEBUG   [ModuleFactory] Creating new instance of prototype "Triangle Mesh Renderer". 
*INFO    [ModuleContainer (Cluster Param Display)] Adding module "Triangle Mesh Renderer" to container. 
*INFO    [ModuleContainer (Cluster Param Display)] Associated module "Triangle Mesh Renderer" with container. 
*INFO    [Module (Triangle Mesh Renderer)] Starting module main method. 
*DEBUG   [Cluster Param Display] Start step submodule properties 
*DEBUG   [Triangle Mesh Renderer] Waiting ... 
*DEBUG   [Cluster Param Display] Submodule properties set 
*DEBUG   [Cluster Param Display] Start wiring 
*DEBUG   [Cluster Slicer] Invalid data. Waiting for data change again. 
*INFO    [ModuleContainer (KernelRootContainer)] Connecting Cluster Slicer:paramInput with Cluster Param Display:[FWD]paramInput 
*DEBUG   [Cluster Slicer] Waiting... 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Voxelizer:voxelOutput with Gauss Filtering:in 
*DEBUG   [Cluster Slicer] Invalid data. Waiting for data change again. 
*DEBUG   [Cluster Slicer] Waiting... 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Gauss Filtering:out with Isosurface:values 
*DEBUG   [Gauss Filtering] Received Data. 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Deterministic Tract Clustering:clusterOutput with Cluster Slicer:clusterInput 
*DEBUG   [Isosurface] Waiting for data ... 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Gauss Filtering:out with Cluster Slicer:clusterDSInput 
*DEBUG   [Gauss Filtering] Resetting output. 
*DEBUG   [Isosurface] Waiting ... 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Isosurface:surface mesh with Cluster Slicer:meshInput 
*DEBUG   [Isosurface] Waiting for data ... 
*DEBUG   [Gauss Filtering] Waiting ... 
*DEBUG   [Isosurface] Waiting ... 
*DEBUG   [Cluster Slicer] Invalid data. Waiting for data change again. 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Cluster Slicer:meshOutput with Triangle Mesh Renderer:mesh 
*DEBUG   [Cluster Slicer] Waiting... 
*DEBUG   [Triangle Mesh Renderer] Invalid Data. Disabling. 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Cluster Slicer:colorMapOutput with Triangle Mesh Renderer:colorMap 
*DEBUG   [Triangle Mesh Renderer] Waiting ... 
*INFO    [ModuleContainer (Cluster Param Display)] Connecting Deterministic Tract Clustering:clusterOutput with Voxelizer:tractInput 
*DEBUG   [Triangle Mesh Renderer] Invalid Data. Disabling. 
*INFO    [ModuleContainer (KernelRootContainer)] Connecting Deterministic Tract Clustering:tractInput with Cluster Param Display:[FWD]fiberInput 
*DEBUG   [Triangle Mesh Renderer] Waiting ... 
*DEBUG   [Cluster Param Display] Wiring done 
*INFO    [ModuleContainer (KernelRootContainer)] Connecting Data Module:out with Cluster Param Display:paramInput 
*DEBUG   [Data Module] Connected "Data Module:out" to "Cluster Param Display:paramInput". 
*DEBUG   [Cluster Slicer] Invalid data. Waiting for data change again. 
*DEBUG   [Cluster Slicer] Waiting... 
*DEBUG   [ControlPanel] Activating module Cluster Param Display in control panel. 
*WARNING [ModuleContainer (KernelRootContainer)] Deep removal of modules is not yet implemented. 
*DEBUG   [ModuleContainer (KernelRootContainer)] Removing module "Cluster Param Display" from container. 
*INFO    [ModuleContainer (KernelRootContainer)] Disconnecting Data Module:out from Cluster Param Display:paramInput 
*DEBUG   [Data Module] Disconnected "Cluster Param Display:paramInput" from "Data Module:out". 
*DEBUG   [ControlPanel] Removing module "Cluster Param Display" from Tree. 
*DEBUG   [ControlPanel] Waiting for module "Cluster Param Display" to finish before deleting. 
*DEBUG   [ControlPanel] Deleting module "Cluster Param Display" from Tree. 
*DEBUG   [ControlPanel] Deleting module "Cluster Param Display" from Tree. 
*ERROR   [ControlPanel] Removed module has strange usage count: 7. Should be 1 here. Module reference is held by someone else. 
Exception thrown! Callstack's backtrace:
trace: WException::WException(std::string const&)       ->      /home/math/repos/OpenWalnut/build/release/lib/libOWcommon.so(_ZN10WExceptionC1ERKSs+0x135) [0x7fab07a6a845]
trace: wAssertFailed(std::string const&, std::string const&, unsigned long, std::string const&) ->      /home/math/repos/OpenWalnut/build/release/lib/libOWcommon.so(_Z13wAssertFailedRKSsS0_mS0_+0x26f) [0x7fab079eef7f]
trace: WQtControlPanel::event(QEvent*)  ->      /home/math/repos/OpenWalnut/build/release/lib/libOWguiqt4.so(_ZN15WQtControlPanel5eventEP6QEvent+0xff1) [0x7fab07da86b1]
trace: QApplicationPrivate::notify_helper(QObject*, QEvent*)    ->      /usr/lib/libQtGui.so.4(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xac) [0x7fab02b8cfdc]
trace: QApplication::notify(QObject*, QEvent*)  ->      /usr/lib/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x14d) [0x7fab02b92aed]
trace: QCoreApplication::notifyInternal(QObject*, QEvent*)      ->      /usr/lib/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x8c) [0x7fab03825cdc]
trace: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)   ->      /usr/lib/libQtCore.so.4(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x2d2) [0x7fab03828c22]
trace: ()       ->      /usr/lib/libQtCore.so.4(+0x195653) [0x7fab03852653]
trace: g_main_context_dispatch()        ->      /lib/libglib-2.0.so.0(g_main_context_dispatch+0x1f2) [0x7faafd372342]
trace: ()       ->      /lib/libglib-2.0.so.0(+0x442a8) [0x7faafd3762a8]
trace: g_main_context_iteration()       ->      /lib/libglib-2.0.so.0(g_main_context_iteration+0x6c) [0x7faafd37645c]
trace: QEventDispatcherGlib::processEvents(QFlags)       ->      /usr/lib/libQtCore.so.4(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x73) [0x7fab03852193]
trace: ()       ->      /usr/lib/libQtGui.so.4(+0x26aa4e) [0x7fab02c3fa4e]
trace: QEventLoop::processEvents(QFlags) ->      /usr/lib/libQtCore.so.4(_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE+0x32) [0x7fab03824a02]
trace: QEventLoop::exec(QFlags)  ->      /usr/lib/libQtCore.so.4(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xdc) [0x7fab03824dec]
trace: QCoreApplication::exec() ->      /usr/lib/libQtCore.so.4(_ZN16QCoreApplication4execEv+0xbb) [0x7fab03828ebb]
trace: WQt4Gui::run()   ->      /home/math/repos/OpenWalnut/build/release/lib/libOWguiqt4.so(_ZN7WQt4Gui3runEv+0x1e9c) [0x7fab07d5688c]
trace: main()   ->      bin/walnut(main+0x220) [0x402640]
trace: __libc_start_main()      ->      /lib/libc.so.6(__libc_start_main+0xfe) [0x7fab01e6dd8e]
trace: ???      ->      bin/walnut() [0x402259]

Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

terminate called after throwing an instance of 'WException'
  what():  Assertion failed: false (in file /home/math/repos/OpenWalnut/src/gui/qt4/controlPanel/WQtControlPanel.cpp at line 414), Message: Removed module has strange usage count. Should be 1 here. Module reference is held by someone else.
zsh: abort      bin/walnut

(from redmine: created on 2011-09-19, closed on 2012-04-03)

Assignee
Assign to
OpenWalnut 1.3
Milestone
OpenWalnut 1.3
Assign milestone
Time tracking