When the CTK Plugin Framework encounters new/modified plug-ins, it loads them, caches some resources, and unloads them again. If a plug-in depends on third-party libraries which do not properly clean up their global static objects, this might lead to problems. We have seen that with a static DCMTK library linked against multiple other shared MITK libraries. I am not sure why it is happening with a shared GDCM library on your system. We have not seen that on our platforms yet.

The posted code loads the list of libraries at start-up and prevents their unloading (and of their dependencies).

- Sascha

On 10/05/2012 03:17 PM, Federico Milano wrote:
Thanks! The second option worked like a charm! Could you please explain a little bit more what do you think was happening?

Thanks again,

Fede

On Fri, Oct 5, 2012 at 10:12 AM, Sascha Zelzer <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    I have seen similar problems with static DCMTK libraries, but not
    with GDCM yet (and GDCM should have been compiled as a shared
    library).

    Please try starting the AwesomeApp once like this:

    AwesomeApp --BlueBerry.clean

    If that doesn't help, try adding the line

    sbConfig->setString(berry::Platform::ARG_PRELOAD_LIBRARY,
    "liborg_mitk_gui_qt_ext,libCTKDICOMCore:0.1");

    just before

    
https://github.com/MITK/MITK-ProjectTemplate/blob/master/Apps/AwesomeApp/AwesomeApp.cpp#L47

    Let us know how it goes.

    - Sascha


    On 10/05/2012 01:02 PM, Federico Milano wrote:
    This is the full stacktrace:

    Program received signal SIGSEGV, Segmentation fault.
    _dl_fixup (l=<value optimized out>, reloc_arg=<value optimized out>)
        at dl-runtime.c:147
    147dl-runtime.c: No such file or directory.
    in dl-runtime.c
    (gdb) backtrace
    #0  _dl_fixup (l=<value optimized out>, reloc_arg=<value
    optimized out>)
        at dl-runtime.c:147
    #1  0x00123280 in _dl_runtime_resolve () at
    ../sysdeps/i386/dl-trampoline.S:37
    #2  0xb45a1731 in ~Global (this=0xb5bc047b, __in_chrg=<value
    optimized out>)
        at
    
/home/fede/bin/MITK-superbuild/GDCM-src/Source/DataDictionary/gdcmGlobal.cxx:95
    #3  0x012f7588 in __cxa_finalize (d=0xb5bc03e4) at cxa_finalize.c:56
    #4  0xb5a7e494 in __do_global_dtors_aux ()
       from /home/fede/bin/MITK-superbuild/ITK-build/bin/libITKIO.so.3.20
    #5  0xb5b561f0 in _fini ()
       from /home/fede/bin/MITK-superbuild/ITK-build/bin/libITKIO.so.3.20
    #6  0x0012278e in _dl_close_worker (map=0x81fee98) at dl-close.c:271
    #7  0x00123207 in _dl_close (_map=0x81fee98) at dl-close.c:742
    #8  0x01cfeca4 in dlclose_doit (handle=0x81fee98) at dlclose.c:37
    #9  0x0011d836 in _dl_catch_error (objname=<value optimized out>,
        errstring=<value optimized out>, mallocedp=<value optimized
    out>,
        operate=0x1cfec80 <dlclose_doit>, args=0x81fee98) at
    dl-error.c:178
    #10 0x01cff09c in _dlerror_run (operate=<value optimized out>,
        args=<value optimized out>) at dlerror.c:164
    #11 0x01cfecda in __dlclose (handle=0xbfffcedc) at dlclose.c:48
    #12 0x00e2a671 in ?? () from /usr/lib/libQtCore.so.4
    #13 0x00e24f2b in ?? () from /usr/lib/libQtCore.so.4
    #14 0x00e1ebc7 in QPluginLoader::unload() () from
    /usr/lib/libQtCore.so.4
    ---Type <return> to continue, or q <return> to quit---
    #15 0x014b845b in ctkPluginStorageSQL::insertArchive
    (this=0x81d18d8, pa=...,
        query=0xbfffd928)
        at
    
/home/fede/bin/MITK-superbuild/CTK-src/Libs/PluginFramework/ctkPluginStorageSQL.cpp:492
    #16 0x014b7373 in ctkPluginStorageSQL::insertArchive
    (this=0x81d18d8, pa=...)
        at
    
/home/fede/bin/MITK-superbuild/CTK-src/Libs/PluginFramework/ctkPluginStorageSQL.cpp:401
    #17 0x014b7161 in ctkPluginStorageSQL::insertPlugin (this=0x81d18d8,
        location=..., localPath=...)
        at
    
/home/fede/bin/MITK-superbuild/CTK-src/Libs/PluginFramework/ctkPluginStorageSQL.cpp:378
    #18 0x014b183a in ctkPlugins::install (this=0x81d1b58,
    location=..., in=0x0)
        at
    
/home/fede/bin/MITK-superbuild/CTK-src/Libs/PluginFramework/ctkPlugins.cpp:119
    #19 0x0148f1e9 in ctkPluginContext::installPlugin (this=0x81d1988,
        location=..., in=0x0)
        at
    
/home/fede/bin/MITK-superbuild/CTK-src/Libs/PluginFramework/ctkPluginContext.cpp:101
    #20 0x0020ecce in berry::InternalPlatform::Initialize
    (this=0x255e80,
        argc=@0xbffff2c0, argv=0xbffff364, config=0x81cd7a8)
        at
    
/home/fede/src/MITK/BlueBerry/Bundles/org.blueberry.osgi/src/internal/berryInternalPlatform.cpp:215
    #21 0x001ec6ce in berry::Starter::Run (argc=@0xbffff2c0,
    argv=0xbffff364,
    ---Type <return> to continue, or q <return> to quit---
        config=0x81cd7a8)
        at
    
/home/fede/src/MITK/BlueBerry/Bundles/org.blueberry.osgi/src/application/berryStarter.cpp:53
    #22 0x0804945b in main (argc=1, argv=0xbffff364)
        at
    /home/fede/work/MITK-ProjectTemplate/Apps/AwesomeApp/AwesomeApp.cpp:47

    Thanks

    On Thu, Oct 4, 2012 at 5:27 PM, Sascha Zelzer
    <[email protected]
    <mailto:[email protected]>> wrote:

        Okay, thanks. That stack trace doesn't look complete. Could
        you please post the full stack trace of a debug build of MITK
        and MITK-ProjectTemplate?

        Maybe you are hitting this?
        http://lists.debian.org/debian-glibc/2011/01/msg00074.html

        - Sascha


        On 10/04/2012 09:55 PM, Federico Milano wrote:
        I'm using an Ubuntu 10.04, g++ 4.4.3, Qt 4.6.2 (Ubuntu
        repository). The app is not printing the log location. I've
        built everything with the same built type, and both MITK and
        Project-Template are up-to-date. The stack trace:

        Program received signal SIGSEGV, Segmentation fault.
        _dl_fixup (l=<value optimized out>, reloc_arg=<value
        optimized out>)
            at dl-runtime.c:147
        147dl-runtime.c: No such file or directory.
        in dl-runtime.c

        I think the error has something to do with missing
        dependencies, but I also, maybe naively, think that it is
        strange to get a segmentation fault because of a missing
        dependency.

        thanks,

        Federico

        On Thu, Oct 4, 2012 at 4:43 PM, Sascha Zelzer
        <[email protected]
        <mailto:[email protected]>> wrote:

            Hi,

            can you please provide more information about your
            system (OS, compiler version, Qt version, etc.)?

            Also make sure to build both projects with the same
            build type (Release, Debug, etc.) if you are on Windows.
            The same applies for Qt if you have build it yourself.

            Make sure that the MITK and Project-Template build is
            up-to-date.

            If you still get crashes, please send us the log file.
            Its location is printed to the console when the
            application starts. If you have a debug build, run the
            AwesomeApp with a debugger and send us the stack trace
            of the crash.

            Thanks,
            Sascha


            On 10/04/2012 09:22 PM, Federico Milano wrote:

                Hi. This is probably a very basic question. I have
                compiled the actual version
                (c487ee3bbf2025b492e93ce06818e3aa9187ffdb) of MITK.
                Then, I've downloaded the template project and,
                since I had already built MITK, I compiled it
                without the superbuild. Everything compiles fine,
                but when I try to run the AwesomeApp, it runs for
                about 15 seconds and then it produces a segmentation
                fault message, without any other error messages.
                Could you give me any hint about what could be
                producing this problem?

                Thanks,

                Federico








------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to