InsightSoftwareConsortium / ITKElastix

An ITK Python interface to elastix, a toolbox for rigid and nonrigid registration of images
Apache License 2.0
213 stars 23 forks source link

Segmentation fault on Ubuntu 20.04.6 LTS, x86_64, Python 3.9-3.11 #258

Closed joshua-gould closed 1 year ago

joshua-gould commented 1 year ago

I'm unable to use itk on Ubuntu 20.04.6 LTS, x86_64, using Python 3.9.18, 3.10.12, or 3.11.6. What can I do to debug? Or should I install from source? If so, are there instructions? Thanks.

dzenanz commented 1 year ago

Please provide more detail. What code are you trying to execute? Where does the error happen?

joshua-gould commented 1 year ago

Python crashes simply when executing itk.ParameterObject.New(). Thanks.

joshua-gould commented 1 year ago

I was able to get it working by downgrading to:

itk==5.3.0 
itk-core==5.3.0 
itk-elastix==0.17.1 
itk-filtering==5.3.0 
itk-io==5.3.0 
itk-numerics==5.3.0 
itk-registration==5.3.0 
itk-segmentation==5.3.0
joshua-gould commented 1 year ago

I've confirmed the seg fault is due to itk==5.4.rc2 (itk==5.4.rc1 works fine)

dzenanz commented 1 year ago

Confirmed. No problem with RC1, segfault with RC2:

Successfully installed itk-5.4rc2 itk-core-5.4rc2 itk-filtering-5.4rc2 itk-io-5.4rc2 itk-numerics-5.4rc2 itk-registration-5.4rc2 itk-segmentation-5.4rc2
(.venv) dzenan@corista:~/tester$ python
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import itk
>>> itk.ParameterObject.New()
Segmentation fault (core dumped)
(.venv) dzenan@corista:~/tester$ 

I am using Ubuntu 22.04.3 LTS, fully up to date.

dzenanz commented 1 year ago

@tbirdso @thewtex how should we prioritize this?

thewtex commented 1 year ago

Let's debug, fix the issue, and verify this is addressed in a 5.4rc3.

@joshua-gould help debugging is appreciated. The steps are to build ITK in Debug module with Python wrapping enabled, then build ITKElastix in Debug mode. And start in a debugger. Working with Python and a binary debugger is detailed per-platform Section 9.5.3 of the ITK Software Guide, Book 1. If you would like to work together on it (and help migrate those docs to docs.itk.org, we have an upcoming hackathon.

thewtex commented 1 year ago

No problem with RC1, segfault with RC2

The current package is built against RC1 -- we should build against RC2. This is likely to help :-) @tbirdso could you please take a look?

tbirdso commented 1 year ago

Addressed in https://github.com/InsightSoftwareConsortium/ITKElastix/pull/260 with package update to build against ITK v5.4rc02. The fix will be available soon with v0.19.1 wheels on PyPI (build status here).

joshua-gould commented 1 year ago

Looks like the build failed - https://github.com/InsightSoftwareConsortium/ITKElastix/actions/runs/6725006317/job/18278488007

tbirdso commented 1 year ago

There was an HTTP error fetching a docker image:

  • reading blob sha256:dbc025af7dac908e11a5df324f0e1d67ee6ca434cc8ed6f64a584135c3f95a30: Error fetching blob: invalid status code from registry 503 (Service Unavailable)

I've restarted failed jobs, if all goes well the build will be available in a couple of hours.

joshua-gould commented 1 year ago

Confirmed that itk-elastix-0.19.1 works. Thanks.

tbirdso commented 1 year ago

Glad to hear it, thank you for confirming @joshua-gould