[Trac #1105] trapped in gnash (matchbox/sugar/browser bugs?)

Zarro Boogs per Child bugtracker at laptop.org
Tue Mar 27 23:13:49 EDT 2007


#1105: trapped in gnash (matchbox/sugar/browser bugs?)
---------------------------+------------------------------------------------
 Reporter:  AlbertCahalan  |        Owner:  rsavoye
     Type:  defect         |       Status:  new    
 Priority:  high           |    Milestone:  Trial-1
Component:  distro         |   Resolution:         
 Keywords:                 |  
---------------------------+------------------------------------------------
Comment (by AlbertCahalan):

 I got trapped in gnash, but I'm not so sure gnash is fully or even mostly
 at fault. (thus the title)

 Things that gnash could do better:

 a. Gnash has no way to leave the preferences dialog. Maybe there is a
 button that didn't fit on the screen.

 b. Maybe gnash should have an exit or quit button too, but Sugar or
 matchbox is supposed to handle that.

 c. A browser-embedded gnash should exit when it is no longer embedded in
 the browser. X might provide a reparenting-related event for this.

 d. A browser-started gnash should exit when the browser dies. You can use
 the prctl() system call with PRCTL_SET_PDEATHSIG to specify a signal. It's
 like SIGCHLD, but backwards and you get to choose the signal. (beware
 though: the "parent" here is the thread that started you) SIGKILL might do
 nicely.

 e. There is a decent likelyhood that gnash is causing the browser to die
 via some sort of failure to correctly implement the browser's plug-in
 interface. I suspect this because I've seen gnash destabilize the browser
 on non-OLPC systems as well. One could argue that the browser should be
 tolerant of badly behaving plug-ins though.

 Other than that though (which is more than I thought, now that I've
 written it all down) it's not gnash:

 f. The browser shouldn't die, even if a plug-in misbehaves. (remember,
 this was NOT an OOM)

 g. Sugar and/or matchbox should be aware of everything connected to the X
 server. The use of DBUS as a substitute for normal window management
 leaves Sugar/matchbox unable to handle the situation. There needs to be a
 way to cause the X server to drop the connection to an app. Old-style
 window managers did this with a "destroy" or "kill" menu and a skull-and-
 crossbones cursor. I think the newer non-Sugar desktop environments
 initially insist on a polite disconnect, then get violent after a timeout
 has passed.

 h. Sugar probably should call kill(-pgrp,SIGKILL) on children which go
 without X server connections for more than a minute. Unfortunately the
 activities are getting reparented to init, and I think they were even
 forked from some dbus thing. Sugar needs that SIGCHLD to know when an
 activity has truly died.

 i. The activity shouldn't get into a half-dead state. AFAIK the activity
 is a Python wrapper around Firefox; some part of the wrapper seems to be
 clueless about things failing. Judging by the zombie process, the wrapper
 doesn't notice when a child process has died.

-- 
Ticket URL: <http://dev.laptop.org/ticket/1105#comment:7>
One Laptop Per Child <http://laptop.org/>



More information about the Bugs mailing list