[MacPorts] #17950: dbus patched with launchd support and version dump
MacPorts
noreply at macports.org
Wed Jan 14 02:27:28 PST 2009
#17950: dbus patched with launchd support and version dump
---------------------------------+------------------------------------------
Reporter: jonas.baehr@… | Owner: macports-tickets@…
Type: enhancement | Status: reopened
Priority: Normal | Milestone: Port Enhancements
Component: ports | Version: 1.7.0
Resolution: | Keywords: launchd kde4 x11
Port: dbus |
---------------------------------+------------------------------------------
Comment(by jonas.baehr@…):
Replying to [comment:33 mta@…]:
> Replying to [comment:27 jonas.baehr@…]:
> > I've got the impression that the problem is autolaunching gconfd-2
(which may be related to this dbus patch but is not necessarily a dbus
bug). How do I enable gconf logging?
>
> You enable gconf logging by setting GCONF_DEBUG_OUTPUT. If you also set
DBUS_VERBOSE you'll get log output like I quoted above.
Thanks, I found only GCONF_DEBUG_TRACE_CLIENT. However, I get an other
output. Here dbus nicely gets the socket from launchd as expected:
{{{
3673: Filling in system bus address...
3673: used default system bus
"unix:path=/opt/local/var/run/dbus/system_bus_socket"
3673: Filling in session bus address...
3674: /dev/null fd 7 opened
3673: "unix:path=/tmp/launch-63l6Gx/session"
3673: Filling in activation bus address...
3673: "none set"
3673: opening shared connection to: unix:path=/tmp/launch-63l6Gx/session
3673: checking for existing connection
3673: creating shared_connections hash table
3673: successfully created shared_connections
3673: connecting to unix socket /tmp/launch-63l6Gx/session abstract=0
3673: socket fd 3 opened
3673: Successfully connected to unix socket /tmp/launch-63l6Gx/session
[...]
}}}
}}}
> > gconf-editor (I did not test gnucash, but it should be the same) can't
autostart gconfd-2. It works flawless if I start gconfd-2 manually by
executing `/opt/local/libexec/gconfd-2` and then launching `gconf-editor`
in an other terminal. So if gconfd is running, dbus is absolutely no
problem.
>
> Isn't it dbus that starts gconfd-2? gconf-editor contacts dbus to talk
to gconfd. If it isn't running dbus starts it and initiates communication
between it and gconf-editor. It looks to me like the problem is that the
copy of gconfd-2 started by dbus can't find the dbus session that started
it.
Yes, gconfd-2 should be started by the dbus server, so I think now too
that there is nothing wrong with gconf. My impression is that dbus-deamon
can't start gconfd-2, but I haven't figured out why...
The message "Launch helper exited with unknown return code 1" commes from
the dbus error.
> To verify this, I stepped through the code a bit in gdb and it is clear
that _dbus_transport_open is being called in the gconfd-2 process which is
the grandchild of the dbus process. Since it is being called with a
launchd: address and none of the functions in open_funcs can handle such
an address it fails. I set a breakpoint in _dbus_transport_open in the
gconfd-2 process and watched it fail. I also stepped through the code
that forked this process so I know it's the process created by dbus. This
sure looks like a dbus bug to me.
Yes, it looks like. But the question is: why every dbus-app can find the
bus via launchd, expect gconfd-2 ''if stated by dbus-deamon''. If it's
stated manually, it works too.
--
Ticket URL: <http://trac.macports.org/ticket/17950#comment:34>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list