tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: firefox crash, was Re: Status of revivesa

On Mon, Sep 29, 2008 at 04:11:41PM -0700, Bill Stouder-Studenmund wrote:
> On Mon, Sep 29, 2008 at 08:47:56PM +0200, Manuel Bouyer wrote:
> > On Mon, Sep 29, 2008 at 11:27:56AM -0700, Bill Stouder-Studenmund wrote:
> > > How much of a pain would it be to get me this firefox and needed pkgs? 
> > 
> > I can do a tar of /usr and /lib of this box; but I can't make it available
> > for ftp before tomorow morning (MET). My DSL upload is only 128kb/s.
> > 
> > Sure, I'll send you a .tgz, with the output of ktrace, and the
> > associated kdump result (to not spam the list with a 1.1MB attachement).
> Ok, I'll look at this more tonight. Just from skimming the three logs you 
> sent me off-list, I see the crash looks something like this:
>    476      2 firefox-bin CALL  getcontext(0xb87ff918)
>    476      2 firefox-bin RET   getcontext 0
>    476      3 firefox-bin SAU   blocked, event=[<ctx=0xb87ffcf8, id=3, cpu=0>]
>    476      4 firefox-bin SAU   blocked, event=[<ctx=0xb89ffcf8, id=4, cpu=0>]
>    476      4 firefox-bin CALL  sa_yield
>    476      4 firefox-bin SAU   unblocked, event=[<ctx=0xb89ffcf8, id4, 
> cpu=0>, <ctx=0xbfbfdc80, id=2, cpu=0>], intr=[<ctx=0xb87ff9b0, id=3, cpu=0>]
>    476      4 firefox-bin RET   sa_yield JUSTRETURN
>    476      4 firefox-bin CALL  write(2,0xb87ff864,0xa7)
> In two of the crashes, the second "event" context is one that has NEVER 
> blocked (at least in the ktrace info), and in the other one it is one that 
> unblocked recently. So the problem is somewhere in the "second and later" 
> upcall specification code. :-)

I forgot to mention that this was the first time that two unblocked 
upcalls were ever delivered at once in the log. Thus my belief that it's 
the issue.

Unfortunately I can't see anything substative that looks different about 
how they're handled. It could be a typo I missed...

Unfortunately the test case I wrote doesn't work right. I tried creating a 
set of pipes and having three threads select on different ones. There was 
thread 1, 2, and 4, and pipes 1 -> 7. Each thread read-selected the pipes 
whose number intersected the thread number. So thread 1 selected all the 
odd-numbered ones, thread 2 "2, 3, 6, 7" and so on.

The idea was one main thread could write something to a pipe, say pipe 7, 
and multiple threads in select would get woken at once, resulting in 
multiple unblocked upcalls getting delivered at once.

Sadly, I get three unblocked events in a row, not one event with multiple 
targets. Both under 4.0 UP and 5.0 SMP.

Anyone have any thoughts on how to get multiple threads to unblock very 

Take care,


Attachment: pgp9K7Nc_JZrS.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index