[ITK] [ITK-users] (R wrapping/SimpleITK) AddCommand to ImageRegistrationMethod bug
Richard Beare
richard.beare at gmail.com
Sun Apr 10 20:02:36 EDT 2016
This is a long shot, but lets try testing whether it is the R garbage
collection causing issues. Modify the test so that every method call result
is assigned to a different variable:
e.g.
a1 <- gaussian$SetVariance(2)
a2 <- gaussian$AddCommand( 'sitkStartEvent', f1 )
a3 <- gaussian$AddCommand( 'sitkEndEvent', f2 )
I was running in a terminal on my mac, with an older version of R.
On Mon, Apr 11, 2016 at 9:56 AM, Mathew Guilfoyle <mrguilfoyle at gmail.com>
wrote:
> 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. 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/community/attachments/20160411/e9eb8c57/attachment-0001.html>
-------------- next part --------------
_____________________________________
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
More information about the Community
mailing list