Gnome pausing forever if restarted too soon?

Maxim Vetrov muxas at mail.ru
Tue Apr 8 12:38:22 UTC 2008


Joe Marcus Clarke пишет:
> On Mon, 2008-04-07 at 11:01 +0400, Yar Tikhiy wrote:
>   
>> Hi all,
>>
>> Today I've got enough motivation to ask about a problem I've saw since
>> my first days with Gnome in FreeBSD. When I quit my current Gnome
>> session and start a new one in a moment, e.g., to test some new
>> settings, Gnome won't fully start: It will show the initial logo, load
>> some components, hide the logo, and then just pause with the empty
>> desktop. It doesn't seem to matter if I use gdm or startx. The
>> workaround I found is to kill Gnome-related processes left running
>> after I quit Gnome, but doing so each time is a bit annoying. Is it a
>> known issue? Sorry, I failed to find any references to it in the FAQs.
>>     
>
> The issue is with bonobo-activation-server.  If it remains running
> (i.e. some of its clients keep it running), GNOME will not restart.  If
> it alone is killed, GNOME will start right up.  I haven't yet looked
> into why these clients are not dying.
>
> Joe
>
>   
You're right, it's bonobo-activation-server but all components are dead, 
bonobo-slay -l says there is only b-a-s (or its threads?). I've never 
tried to dig into gnome/freebsd internals, so excuse me if use some 
boken logic, I'm just ordinary user :-)

I ran ktrace on b-a-s (session logout) several times.
The last 80 lines when b-a-s quited sucessfully look like:
*********************************************************************************
  1082 bonobo-activation-s RET   _umtx_op 0
  1082 bonobo-activation-s CALL  poll(0x29620060,0x3,0xffffffff)
  1082 bonobo-activation-s CALL  write(0x2,0xbfbfe050,0x21)
  1082 bonobo-activation-s GIO   fd 2 wrote 33 bytes
       "thread 0x295060a0 take guard [1]
       "
  1082 bonobo-activation-s RET   write 33/0x21
  1082 bonobo-activation-s CALL  gettimeofday(0xbfbfd5a8,0)
  1082 bonobo-activation-s RET   gettimeofday 0
  1082 bonobo-activation-s CALL  sendto(0xe,0xbfbfd5ee,0x4b,0,0,0)
  1082 bonobo-activation-s GIO   fd 14 wrote 75 bytes
       "<12>Apr  8 22:05:33 bonobo-activation-server (muxas-1082): All 
clients dead"
  1082 bonobo-activation-s RET   sendto 75/0x4b
  1082 bonobo-activation-s CALL  gettimeofday(0xbfbfe6b8,0)
  1082 bonobo-activation-s RET   gettimeofday 0
  1082 bonobo-activation-s CALL  gettimeofday(0xbfbfe738,0)
  1082 bonobo-activation-s RET   gettimeofday 0
  1082 bonobo-activation-s CALL  write(0x2,0xbfbfe050,0x24)
  1082 bonobo-activation-s GIO   fd 2 wrote 36 bytes
       "thread 0x295060a0 release guard [1]
       "
  1082 bonobo-activation-s RET   write 36/0x24
  1082 bonobo-activation-s CALL  gettimeofday(0xbfbfe7b8,0)
  1082 bonobo-activation-s RET   gettimeofday 0
  1082 bonobo-activation-s CALL  poll(0x295934c0,0x2,0x3e8)
  1082 bonobo-activation-s RET   _umtx_op -1 errno 60 Operation timed out
  1082 bonobo-activation-s CALL  gettimeofday(0xbf1b5df8,0)
  1082 bonobo-activation-s RET   gettimeofday 0
  1082 bonobo-activation-s CALL  thr_exit(0x2960c300)
  1082 bonobo-activation-s RET   poll 0
  1082 bonobo-activation-s CALL  gettimeofday(0xbfbfe7c8,0)
  1082 bonobo-activation-s RET   gettimeofday 0
  1082 bonobo-activation-s CALL  gettimeofday(0xbfbfd5f8,0)
  1082 bonobo-activation-s RET   gettimeofday 0
  1082 bonobo-activation-s CALL  sendto(0xe,0xbfbfd63e,0x48,0,0,0)
  1082 bonobo-activation-s GIO   fd 14 wrote 72 bytes
       "<12>Apr  8 22:05:34 bonobo-activation-server (muxas-1082): Quit 
server !"
  1082 bonobo-activation-s RET   sendto 72/0x48
  1082 bonobo-activation-s CALL  write(0x2,0xbfbfe1e0,0x21)
  1082 bonobo-activation-s GIO   fd 2 wrote 33 bytes
       "thread 0x295060a0 take guard [1]
       "
  1082 bonobo-activation-s RET   write 33/0x21
  1082 bonobo-activation-s CALL  close(0xe)
  1082 bonobo-activation-s RET   close 0
  1082 bonobo-activation-s CALL  write(0x2,0xbfbfe1e0,0x24)
  1082 bonobo-activation-s GIO   fd 2 wrote 36 bytes
       "thread 0x295060a0 release guard [1]
       "
  1082 bonobo-activation-s RET   write 36/0x24
  1082 bonobo-activation-s CALL  getpid
  1082 bonobo-activation-s RET   getpid 1082/0x43a
  1082 bonobo-activation-s CALL  write(0x2,0x2954ac80,0x64)
  1082 bonobo-activation-s GIO   fd 2 wrote 100 bytes
       "
    (bonobo-activation-server:1082): Bonobo-WARNING **: Leaked a total 
of 1 refs to 1 bonobo object(s)
       "
  1082 bonobo-activation-s RET   write 100/0x64
  1082 bonobo-activation-s CALL  close(0x9)
  1082 bonobo-activation-s RET   close 0
  1082 bonobo-activation-s CALL  close(0x8)
  1082 bonobo-activation-s RET   close 0
  1082 bonobo-activation-s CALL  write(0xb,0x28217966,0x1)
  1082 bonobo-activation-s GIO   fd 11 wrote 1 byte
       "A"
  1082 bonobo-activation-s RET   poll 1
  1082 bonobo-activation-s RET   write 1
  1082 bonobo-activation-s CALL  _umtx_op(0x29550200,0x5,0,0,0)
  1082 bonobo-activation-s RET   _umtx_op 0
  1082 bonobo-activation-s CALL  read(0xa,0xbf9feecb,0x1)
  1082 bonobo-activation-s GIO   fd 10 read 1 byte
       "A"
  1082 bonobo-activation-s RET   read 1
  1082 bonobo-activation-s CALL  poll(0x29620060,0x2,0xffffffff)
  1082 bonobo-activation-s CALL  unlink(0x295625e0)
  1082 bonobo-activation-s NAMI  
"/var/tmp/orbit-muxas/linc-43a-0-731d5d5f7ce7b"
  1082 bonobo-activation-s RET   unlink 0
  1082 bonobo-activation-s CALL  close(0xf)
  1082 bonobo-activation-s RET   close 0
  1082 bonobo-activation-s CALL  exit(0)
*********************************************************************************

The last 80 lines when b-a-s hung:
*********************************************************************************
  3649 bonobo-activation-s RET   write 59/0x3b
  3649 bonobo-activation-s CALL  write(0x2,0xbf9fe0c0,0x41)
  3649 bonobo-activation-s GIO   fd 2 wrote 65 bytes
       "IID 'OAFIID:Bonobo_CosNaming_NamingContext' (0x2954cdc0), alive
       "
  3649 bonobo-activation-s RET   write 65/0x41
  3649 bonobo-activation-s CALL  gettimeofday(0xbf9fd688,0)
  3649 bonobo-activation-s RET   gettimeofday 0
  3649 bonobo-activation-s CALL  sendto(0xe,0xbf9fd6ce,0x56,0,0,0)
  3649 bonobo-activation-s GIO   fd 14 wrote 86 bytes
       "<12>Apr  8 22:26:12 bonobo-activation-server (muxas-3649): After 
prune: 1 live servers"
  3649 bonobo-activation-s RET   sendto 86/0x56
  3649 bonobo-activation-s CALL  gettimeofday(0xbf9fe818,0)
  3649 bonobo-activation-s RET   gettimeofday 0
  3649 bonobo-activation-s CALL  write(0x2,0xbf9fe130,0x24)
  3649 bonobo-activation-s GIO   fd 2 wrote 36 bytes
       "thread 0x2954ca90 release guard [1]
       "
  3649 bonobo-activation-s RET   write 36/0x24
  3649 bonobo-activation-s CALL  read(0x3,0x2961e080,0xc)
  3649 bonobo-activation-s RET   read -1 errno 53 Software caused 
connection abort
  3649 bonobo-activation-s CALL  close(0x3)
  3649 bonobo-activation-s RET   close 0
  3649 bonobo-activation-s CALL  write(0x2,0xbf9fe130,0x21)
  3649 bonobo-activation-s GIO   fd 2 wrote 33 bytes
       "thread 0x2954ca90 take guard [1]
       "
  3649 bonobo-activation-s RET   write 33/0x21
  3649 bonobo-activation-s CALL  write(0x2,0xbf9fe0c0,0x40)
  3649 bonobo-activation-s GIO   fd 2 wrote 64 bytes
       "IID 'OAFIID:Bonobo_Activation_EventSource' (0x2954cbe0), alive
       "
  3649 bonobo-activation-s RET   write 64/0x40
  3649 bonobo-activation-s CALL  _umtx_op(0x29505920,0x8,0x1,0x29505900,0)
  3649 bonobo-activation-s RET   _umtx_op 0
  3649 bonobo-activation-s CALL  _umtx_op(0x29505920,0xa,0,0,0)
  3649 bonobo-activation-s RET   _umtx_op 0
  3649 bonobo-activation-s CALL  _umtx_op(0x29550380,0x5,0,0,0)
  3649 bonobo-activation-s RET   _umtx_op 0
  3649 bonobo-activation-s CALL  socket(PF_LOCAL,SOCK_STREAM,0)
  3649 bonobo-activation-s RET   socket 3
  3649 bonobo-activation-s CALL  fcntl(0x3,F_SETFL,O_NONBLOCK)
  3649 bonobo-activation-s RET   fcntl 0
  3649 bonobo-activation-s CALL  fcntl(0x3,F_SETFD,FD_CLOEXEC)
  3649 bonobo-activation-s RET   fcntl 0
  3649 bonobo-activation-s CALL  connect(0x3,0x2961e080,0x2f)
  3649 bonobo-activation-s NAMI  
"/var/tmp/orbit-muxas/linc-e65-0-221f433de006"
  3649 bonobo-activation-s RET   connect -1 errno 2 No such file or 
directory
  3649 bonobo-activation-s CALL  close(0x3)
  3649 bonobo-activation-s RET   close 0
  3649 bonobo-activation-s CALL  write(0x2,0xbf9fe0c0,0x3f)
  3649 bonobo-activation-s GIO   fd 2 wrote 63 bytes
       "IID 'OAFIID:GNOME_NetstatusApplet_Factory' (0x29e0b100), dead
       "
  3649 bonobo-activation-s RET   write 63/0x3f
  3649 bonobo-activation-s CALL  write(0x2,0xbf9fe0c0,0x41)
  3649 bonobo-activation-s GIO   fd 2 wrote 65 bytes
       "IID 'OAFIID:Bonobo_CosNaming_NamingContext' (0x2954cdc0), alive
       "
  3649 bonobo-activation-s RET   write 65/0x41
  3649 bonobo-activation-s CALL  gettimeofday(0xbf9fd688,0)
  3649 bonobo-activation-s RET   gettimeofday 0
  3649 bonobo-activation-s CALL  sendto(0xe,0xbf9fd6ce,0x56,0,0,0)
  3649 bonobo-activation-s GIO   fd 14 wrote 86 bytes
       "<12>Apr  8 22:26:12 bonobo-activation-server (muxas-3649): After 
prune: 0 live servers"
  3649 bonobo-activation-s RET   sendto 86/0x56
  3649 bonobo-activation-s CALL  socket(PF_LOCAL,SOCK_STREAM,0)
  3649 bonobo-activation-s RET   socket 3
  3649 bonobo-activation-s CALL  fcntl(0x3,F_SETFL,O_NONBLOCK)
  3649 bonobo-activation-s RET   fcntl 0
  3649 bonobo-activation-s CALL  fcntl(0x3,F_SETFD,FD_CLOEXEC)
  3649 bonobo-activation-s RET   fcntl 0
  3649 bonobo-activation-s CALL  connect(0x3,0x2961e080,0x2f)
  3649 bonobo-activation-s NAMI  
"/var/tmp/orbit-muxas/linc-e65-0-221f433de006"
  3649 bonobo-activation-s RET   connect -1 errno 2 No such file or 
directory
  3649 bonobo-activation-s CALL  close(0x3)
  3649 bonobo-activation-s RET   close 0
  3649 bonobo-activation-s CALL  _umtx_op(0x29505920,0x8,0x1,0x29505900,0)
  3649 bonobo-activation-s RET   _umtx_op -1 errno 60 Operation timed out
  3649 bonobo-activation-s CALL  thr_exit(0x2960c400)
*********************************************************************************

ps -H output showed that b-a-s waited for mutex to release (until I 
killed -s TERM it):
MWCHAN USER    PID  PPID  PGID   SID JOBC STAT  TT  COMMAND
ucond  muxas  3649     1  3649  3649    0 Is    ??  
/usr/local/libexec/bonobo-activation-server --ac-activate --ior-output-fd=16
umtxn  muxas  3649     1  3649  3649    0 Is    ??  
/usr/local/libexec/bonobo-activation-server --ac-activate --ior-output-fd=16

How can I find what blocks b-a-s?

Regards,
Vetrov Maxim


More information about the freebsd-gnome mailing list