[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