[ITK-users] (R wrapping/SimpleITK) AddCommand to ImageRegistrationMethod bug

Mathew Guilfoyle mrguilfoyle at gmail.com
Sun Apr 10 19:56:38 EDT 2016


Richard

It seems it must be something specific to my setup.  I ran your example and get the same hard abort in Rstudio.  Running the example in R.app I get the same error but a  somewhat more graceful crash with the following error message:

gaussian$AddCommand( 'sitkStartEvent',  f1 )

 *** caught segfault ***
address 0x7ff511000080, cause 'memory not mapped'

Traceback:
 1: .Call("R_swig_ProcessObject_AddCommand", self, event, cmd, as.logical(.copy),     PACKAGE = "SimpleITK")
 2: f(x, ...)
 3: gaussian$AddCommand("sitkStartEvent", f1)

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace

I have tried the version of SimpleITK built without the version of SWIG you patched to correct the character argument error, again I get the same behaviour. 

Bradley - I’m using the latest SimpleITK 0.9 source compiled using the super build on OS X 10.11.  I’ve done the build with the supplied SWIG and with a version patched by Richard and available here: https://github.com/richardbeare/swig.git <https://github.com/richardbeare/swig.git>.  I’m funning R 3.2.4 in Rstudio IDE.



> On 10 Apr 2016, at 23:17, Bradley Lowekamp <brad at lowekamp.net> wrote:
> 
> Hello,
> 
> I would like to know your environment. 
> 
> What version of SimpleITK?  R? OS? Compiler? Did you use simpleITK's super build? If not what version of SWIG?
> 
> Thanks
> 
>> On Apr 10, 2016, at 9:46 AM, Mathew Guilfoyle <mrguilfoyle at gmail.com> wrote:
>> 
>> Richard
>> 
>> Thanks for the reply.  I hadn't appreciated that function being passed in the registration example was a closure.  However, in the FiterProgressReporting example it is not a closure.  
>> 
>> I have modified my code to be a closure but still get a crash/abort; I have also run the code in the examples themselves verbatim and get the same problem.
>> 
>> Any further ideas on how to get this working?
>> 
>> Cheers 
>> 
>> 
>>> On 10 Apr 2016, at 02:10, Mathew Guilfoyle <mrguilfoyle at gmail.com> wrote:
>>> 
>>> There seems to be a problem with using the $AddCommand function to ImageRegistrationMethod objects in the R wrapping to SimpleITK.
>>> 
>>> Using R 3.2.4 on OS X 10.11
>>> 
>>> Example:
>>> 
>>> f <- function(x){print(x$GetMetricValue())}
>>> 
>>> registration = ImageRegistrationMethod()
>>> 
>>> registration$AddCommand(‘sitkIterationEvent’, f(registration))
>>> 
>>> This last line causes R to abort/hard crash (no error message).  This behaviour is irrespective of which event type I use or the function passed as the second argument (e.g. even something simple like print(‘Hello’))
>>> 
>>> The AddCommand method is inherited from the SimpleITK ProcessObject type.  Digging around in the SimpleITK.R file I can see that the ProcessObject$AddCommand method expects a second argument of type ‘_p_itk__simple__Command’.
>>> 
>>> There is a ‘Command’ method that generates a new object of type ‘_p_itk__simple__Command’.  If I pass this resulting object as the second argument to registration$AddCommand then I do not get an error.  However, there doesn’t seem to be any way to point the ‘_p_itk__simple__Command’ object to my function or otherwise convert my function to a ‘_p_itk__simple__Command’ type.
>>> 
>>> The $AddCommand method is used in a couple of example scripts on the SimpleITK site (using it for monitoring a registration and a filter e.g. https://github.com/SimpleITK/SimpleITK/blob/master/Examples/FilterProgressReporting.R) so I don’t know if it was working previously and a bug has been introduced more recently? (the example scripts cause the same error when I run them now)
>> 
>> _____________________________________
>> Powered by www.kitware.com
>> 
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>> 
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.php
>> 
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>> 
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/insight-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20160411/1bcede9d/attachment.html>


More information about the Insight-users mailing list