Re: NEWS on 1.6.0, crash fix... semi-fix (if you create and quickly delete a window sawfish will segfault)



Am Dienstag, den 06.10.2009, 01:43 +0300 schrieb Timo Korvola:
> On Sunday 04 October 2009 19:21:04 Janek Kozicki wrote:
> > I have found the bug. Exact place.
> 
> I hope it is the only place.  Wouldn't bet on it though.  There may be 
> more instances, perhaps with so narrow time windows that they have never 
> been seen.
> 
> > Problem is that in a very short piece of code sawfish does not expect
> > a newly created window to disappear. If it does - then sawfish will
> > crash.
> 
> But why, precisely?  One of the Xlib calls may have triggered 
> error_handler, which sets w->id = 0, but is that enough to cause a SEGV?  
> Is it possible that w gets garbage-collected before add_window is 
> finished?  That would explain a lot.  It seems that the garbage 
> collection would then have to occur after emit_pending_destroys.
> 
> I am not really familiar with the Librep C API and it is not too well 
> documented, thus I am guessing here.  The enclosed patch tries to 
> protect w from gc (you can also fetch branch "race" from my repository).  
> People affected by the bug might want to test it.  Being unable to 
> reproduce the bug myself, I can't say whether it helps.
> 

I tried about 25 times with your patch applied, and sawfish did not
crash. So I merged with timo/race branch (and btw with some others of
your branches, too). I also have been working under heavy loads for
about an half our (...) and sawfish did also not die.

Chris

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]