[MacPorts] #45309: gimp2 @2.8.14 on 10.9 - doesn't load plug-ins
MacPorts
noreply at macports.org
Sun Nov 2 11:18:09 PST 2014
#45309: gimp2 @2.8.14 on 10.9 - doesn't load plug-ins
---------------------------+----------------------
Reporter: and.damore@… | Owner: devans@…
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: gimp2 |
---------------------------+----------------------
Comment (by jeremyhu@…):
Replying to [comment:39 macports@…]:
> FTR, on 10.9 I'm also seeming only the same four pthread_atfork() calls
as dtakahashi added at comment:38
([https://trac.macports.org/attachment/ticket/45309/gimp-lldb-transcript-
pthread_atfork.txt gimp-lldb-transcript-pthread_atfork.txt]), although I'm
getting somewhat fewer symbols resolved in lldb in the "bt". Anyway the
four calls seem to be:
>
> 0. ImageLoaderMachO::doImageInit()
> 0. ImageLoaderMachO::doModInitFunctions()
> 0. getpwuid()
> 0. getpwuid()
>
> The first two seem to be tied up with loading the MachO
(executable/libraries) images into memory, and the last two seem to be
deep in the callpath of getpwuid(). All of which seem to be inside the OS
libraries, rather than inside GIMP/GTK/glib. So I suspect it's unlikely
they've changed recently to cause this to suddenly break like this.
Your analysis is a tad off here.
The first one is part of the initialization of CoreFoundation.
The last two happen *AFTER* the fork and are thus not relevant.
The second one is surely the culprit:
{{{
(lldb) bt
49 * thread #1: tid = 0x39e8, 0x00007fff92e420ff
libsystem_c.dylib`pthread_atfork, queue = 'com.apple.main-thread, stop
reason = breakpoint 1.1
50 frame #0: 0x00007fff92e420ff libsystem_c.dylib`pthread_atfork
51 frame #1: 0x00007fff92e3bfc0 libsystem_c.dylib`pthread_once +
87
52 frame #2: 0x00007fff5fc13378
dyld`ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&)
+ 236
53 frame #3: 0x00007fff5fc13762
dyld`ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) +
46
54 frame #4: 0x00007fff5fc1006e
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 380
55 frame #5: 0x00007fff5fc0ffc4
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 210
56 frame #6: 0x00007fff5fc0ffc4
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 210
57 frame #7: 0x00007fff5fc0ffc4
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 210
58 frame #8: 0x00007fff5fc0ffc4
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 210
59 frame #9: 0x00007fff5fc0ffc4
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 210
60 frame #10: 0x00007fff5fc0ffc4
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 210
61 frame #11: 0x00007fff5fc0feba
dyld`ImageLoader::runInitializers(ImageLoader::LinkContext const&,
ImageLoader::InitializerTimingList&) + 54
62 frame #12: 0x00007fff5fc04e38
dyld`dyld::runInitializers(ImageLoader*) + 89
63 frame #13: 0x00007fff5fc0a87c dyld`dlopen + 581
64 frame #14: 0x00007fff952cfdd8 libdyld.dylib`dlopen + 57
65 frame #15: 0x000000010124b319
libgmodule-2.0.0.dylib`g_module_open + 1382
66 frame #16: 0x00000001011fc6ca
libgegl-0.2.0.dylib`gegl_module_open + 20
67 frame #17: 0x00000001011fc2c6
libgegl-0.2.0.dylib`gegl_module_load + 84
68 frame #18: 0x00000001011fc231
libgegl-0.2.0.dylib`gegl_module_new + 152
69 frame #19: 0x00000001011fcf57
libgegl-0.2.0.dylib`gegl_module_db_module_initialize + 157
70 frame #20: 0x00000001011fbf5f
libgegl-0.2.0.dylib`gegl_datafiles_read_directories + 653
71 frame #21: 0x00000001011df7c3
libgegl-0.2.0.dylib`gegl_post_parse_hook + 587
72 frame #22: 0x000000010149166e
libglib-2.0.0.dylib`g_option_context_parse + 2092
73 frame #23: 0x0000000101492076
libglib-2.0.0.dylib`g_option_context_parse_strv + 52
74 frame #24: 0x000000010000fde8 gimp`main + 529
75 frame #25: 0x00007fff952d07e1 libdyld.dylib`start + 1
}}}
It is being called by one of the initializers due to the dlopen().
I suspect that something later dlclose()d that library leaving us with a
dead pointer.
Perhaps you can break on dlclose() after that pthread_atfork to see if my
hunch is correct.
--
Ticket URL: <https://trac.macports.org/ticket/45309#comment:45>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list