View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000488 | Slicer3 | Base Code | public | 2009-03-03 13:36 | 2009-04-14 12:04 |
Reporter | fedorov | Assigned To | millerjv | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Summary | 0000488: Crash of Slicer/RigidRegistration execution on Mac during fresh Slicer startup | ||||
Description | As of nightly build March 03 for darwin-x86 binary, under certain conditions execution of RigidRegistration will fail crashing Slicer and producing message "child process exited abnormally". To reproduce, remove /var/tmp/Slicer3<your_username>. Run Slicer from binary release, load two volumes (I used images Testing/Data/Input/MRMeningioma*.nrrd. Go to RigidRegistration module, use default parameters, select the two meningioma images as fixed and floating, and choose to create new transform and volume. Run registration. This can be reproduced with 100% consistency on lefty mac. | ||||
Additional Information | I suspect the problem was there as early as beginning of February. To debug this I turned off console redirect in CommandLineModule to get error messages. What I am getting is the following before the crash. Looks like something goes very wrong in (or before) PARSE_ARGS. Was memory corrupted somewhere earlier? Why does it abort? PARSE ERROR: Argument: -i (--iterations) Brief USAGE: For complete USAGE and HELP type: child process exited abnormally | ||||
Tags | No tags attached. | ||||
This bug can be reproduced on mac with debug build, and with the release build consistently when Slicer is run with --clear_module_cache. --no_module_stream_redirect will allow to see the error messages before Slicer exits. |
|
The problem is not specific to "Rigid registration" module. A similar crash happens when I try to do "Histogram matching" under the same startup conditions. Something wrong is going on when Slicer starts with clear cache. |
|
Jim - what's the status? Andriy - is this still a bug? Can you bug Jim until he fixes it? |
|
I can reproduce this problem on lefty as of Slicer3-3.3-alpha-2009-04-07-darwin-x86 build. |
|
I have been able to reproduce this issue once I updated my builds. So it is definitely an issue that was introduced in the past few weeks. |
|
Jim, I have reasons to believe this bug was there as of Feb 4, when Ron first reported the problem to me. It was definitely there on March 3 when I submitted it, because I could reproduce it at that time consistently. |
|
This was a good one. Turns out that Mac OS X defaults to RTLD_GLOBAL in dlopen(). This exposes all symbols in a shared library to the main program and other plugins. When there was no module cache, RigidRegistration was calling some other module's DoIt() method and crashing. When there was a cache, the shared libraries are not opened until they are used. So RigidRegistration would usually call its own DoIt() method. But this was just by luck. If other plugins had be used before RigidRegistration, there would still be a chance that RigidRegistration could call the wrong DoIt(). Unfortunately, there is no way to override the parameters to dlopen() through kwsys (itksys) DynamicLoader. So I hard coded the call to dlopen where Slicer uses itksys::DynamicLoader::OpenLibrary() for Mac OS X. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2009-03-03 13:36 | fedorov | New Issue | |
2009-03-03 13:37 | fedorov | Relationship added | child of 0000440 |
2009-03-04 07:33 | fedorov | Note Added: 0000687 | |
2009-03-16 08:13 | pieper | Assigned To | => millerjv |
2009-03-16 08:13 | pieper | Status | new => assigned |
2009-03-17 07:59 | pieper | Tag Attached: 3.4 Targeted fix | |
2009-03-23 07:06 | fedorov | Note Added: 0000742 | |
2009-04-07 12:21 | pieper | Note Added: 0000783 | |
2009-04-07 13:47 | fedorov | Note Added: 0000797 | |
2009-04-09 11:13 | millerjv | Note Added: 0000814 | |
2009-04-09 11:59 | fedorov | Note Added: 0000815 | |
2009-04-10 09:43 | millerjv | Note Added: 0000828 | |
2009-04-10 09:43 | millerjv | Status | assigned => resolved |
2009-04-10 09:43 | millerjv | Resolution | open => fixed |
2009-04-14 12:04 | pieper | Status | resolved => closed |
2009-05-18 11:37 | wjp | Tag Detached: 3.4 Targeted fix |