[MacPorts] #45309: gimp2 @2.8.14 on 10.9 - doesn't load plug-ins
MacPorts
noreply at macports.org
Sun Oct 12 18:15:32 PDT 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 macports@…):
I ran into this same problem on Mavericks. After spending a while trying
reactivating older ports (eg, older gtk2, older glib2 2.40) -- which
didn't seem to solve the problem, and involved lots of rebuilding things
depending on them, I started looking at the glib2 source.
In particular the verbose error output says:
{{{
Error spawning command line `launchctl getenv
DBUS_LAUNCHD_SESSION_BUS_SOCKET': Child process killed by signal 11
Dynamic session lookup supported but failed: launchctl terminated
abnormally without any error message
Not enough memory
}}}
which implies that maybe it's a memory allocation being failed. So I
started following the glib2 call chain for running a process, from the
launchctl example above (seemed easier than trying to find where the
plugins get loaded, since I imagine they're going through a common glib2
function.
The call path seems to be:
0. g_spawn_command_line_sync()
0. g_spawn_sync()
0. fork_exec_with_pipes()
0. do_exec()
0. Optionally: (* child_setup)(user_data)
0. g_execute()
and AFAICT in g_execute() (in glib/gspawn.c) it looks like there is a
memory allocation performed if the thing being run does not have a full
path (around line 1721, glib 2.42):
{{{
freeme = name = g_malloc (pathlen + len + 1);
}}}
which is consistent with the command line printed out (running bare
launchctl).
Memory allocations are one of those things which are typically on the "do
not do between fork() and exec()." Although sometimes the rules for
single threaded and multi-threaded applications are different about some
of these things. (Hard to be sure if that will allocate memory or not,
since it goes through all the glib2 memory wrappers too.)
So just as another option to consider for, eg, pthread atfork related
things.
Possibly if someone figures out when it last worked (which is why I was
trying downgrading glib2/gtk2/etc) then it'll be more obvious why it has
stopped working.
Ewen
--
Ticket URL: <https://trac.macports.org/ticket/45309#comment:8>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list