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