View Issue Details

IDProjectCategoryView StatusLast Update
0002992Slicer4Core: MRMLpublic2014-03-06 06:15
ReporterlassoanAssigned Totokuda 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.2.2-1 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002992: Crash when OpenIGTLinkIF-created node is deleted
Description

When a MRML node that is created by OpenIGTLink is deleted manually then Slicer crashes when an update request is created through OpenIGTLink.

How to reproduce:

  • Start Slicer (SlicerServer), create an OpenIGTLink connection, create a transform, add as output to the OpenIGTLink connection, start the connection as server
  • Start another Slicer instance (SlicerClient), create an OpenIGTLink connection, connect to the other Slicer instance as a client
  • Modify the transform in SlicerServer => the transform node is updated in SlicerClient
  • Delete the transform node in SlicerClient
  • Modify the transform in SlicerServer => SlicerClient crashes

The same happens for image volumes and probably other node types as well.

Most probably the OpenIGTLinkIF module ignores node delete notifications and tries to update a node even after it has been deleted. Instead, OpenIGTLinkIF module should recreate the node if it's deleted manually.

TagsNo tags attached.

Relationships

related to 0003068 resolvedtokuda OpenIGTLinkIF - Clicking on Active after it a connection has been establised leads to a crash 

Activities

lassoan

lassoan

2013-03-15 13:54

developer   ~0008128

Probably this issue could be nicely solved by using the new node referencing infrastructure (http://viewvc.na-mic.org/viewvc.cgi/Slicer4?view=revision&revision=21810)

tokuda

tokuda

2013-04-11 12:38

developer   ~0008377

I could reproduce the problem on my environment (Mac OS X 10.7.5/Slicer 4.2.0-2013-04-11).

tokuda

tokuda

2013-04-11 15:30

developer   ~0008379

I have tried the new referencing infrastructure with some simple testing code, and I agree that the issue could be solved by it. The mechanism also provides an easy way to save incoming/outgoing node information in a scene file.

tokuda

tokuda

2013-04-15 20:30

developer   ~0008400

The issue has been fixed in the following merge:

https://github.com/openigtlink/OpenIGTLinkIF/commit/b05dca23ae49fc2e36414f905e96805b0e63dfac

The code has been tested on Mac OS X 10.7. It has to be tested in other environment before updating SuperBuild file in 3D Slicer.

jcfr

jcfr

2013-04-16 09:59

administrator   ~0008409

In my local Slicer build, I updated to latest commit b05dca23 of OpenIGKLinkIF and rebuild, and couldn't have the Client/Server case working.

As illustrated on the screenshot "OpenIGTLinkIF_b05dca23.png", modifying the transform on the "SlicerClient" wasn't updated the locator on either the client or the server.

2013-04-16 10:00

 

OpenIGTLinkIF_b05dca23.png (211,779 bytes)
OpenIGTLinkIF_b05dca23.png (211,779 bytes)
lassoan

lassoan

2013-04-16 18:52

developer   ~0008420

Transforms module is broken in the trunk, so probably it's not an OpenIGTLink issue (see 0003072). Need to fix 0003072 before this can be tested.

tokuda

tokuda

2013-05-09 06:25

developer   ~0008591

It seems that the ProcessMRMLEvents() in the IGTLConnectorNode does not capture TransformModifiedEvent anymore. It might be because of my wrong usage of SetAndObserveNthNodeReferenceID() function in the new referencing mechanism. I posted my question to the Slicer-devel ML.

tokuda

tokuda

2013-05-10 13:32

developer   ~0008616

The issue has been resolved after the fix 0003112.

tokuda

tokuda

2013-05-10 13:56

developer   ~0008617

The working code is:
https://github.com/openigtlink/OpenIGTLinkIF/tree/f9b65b1ffd2992862025f3c6ec5fe30e6f5dd395

I will request to update External_OpenIGTLinkIF.cmake.

jcfr

jcfr

2013-05-13 06:59

administrator   ~0008627

Fixed in r21983
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21983

lassoan

lassoan

2013-05-13 11:16

developer   ~0008628

Thanks for the fix, I just wait for an official nightly release to test it.

jcfr

jcfr

2014-03-06 05:15

administrator   ~0011076

Closing resolved issues that have not been updated in more than 3 months

Issue History

Date Modified Username Field Change
2013-03-02 16:07 lassoan New Issue
2013-03-02 16:07 lassoan Status new => assigned
2013-03-02 16:07 lassoan Assigned To => alexy
2013-03-15 13:54 lassoan Note Added: 0008128
2013-04-10 10:23 tokuda Assigned To alexy => tokuda
2013-04-11 12:38 tokuda Note Added: 0008377
2013-04-11 15:30 tokuda Note Added: 0008379
2013-04-15 20:30 tokuda Note Added: 0008400
2013-04-16 09:59 jcfr Note Added: 0008409
2013-04-16 10:00 jcfr File Added: OpenIGTLinkIF_b05dca23.png
2013-04-16 10:04 jcfr Relationship added related to 0003068
2013-04-16 18:52 lassoan Note Added: 0008420
2013-05-09 06:25 tokuda Note Added: 0008591
2013-05-10 13:32 tokuda Note Added: 0008616
2013-05-10 13:56 tokuda Note Added: 0008617
2013-05-13 06:59 jcfr Note Added: 0008627
2013-05-13 06:59 jcfr Status assigned => resolved
2013-05-13 06:59 jcfr Fixed in Version => Slicer 4.3.0
2013-05-13 06:59 jcfr Resolution open => fixed
2013-05-13 11:16 lassoan Note Added: 0008628
2014-03-06 05:15 jcfr Note Added: 0011076
2014-03-06 05:16 jcfr Status resolved => closed
2014-03-06 06:15 jcfr Target Version => Slicer 4.3.0