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



Am Mittwoch, den 07.10.2009, 15:27 +0200 schrieb Christopher Roy
Bratusek:
> 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

Timo, would you mind writing some docstrings for man/news.texi and/or
man/sawfish.texi for your changes? If not, I'll do it, but I've thought
it would be better to let those add docstrings who actually made the
changes.

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]