Hi Alex, On Fri, 2011-03-25 at 12:28 +0100, Alexander Larsson wrote: > I had a look, and its not true that none take the lock, they just call > gdk_threads_enter() directly, not the GDK_THREADS_ENTER macro. However, > there were quite a few places that had it missing. Ah - fair enough; I wasn't looking for that - glad its not quite as bad as expected. I did some spot checks on directory monitoring as well (which is ultimately what this is about) and didn't see much there. > I'm attaching patches for Gtk+ 2 and 3 (bugzilla is down atm). These are > kinda tricky as its hard to really test them. Would be nice with some > more review of them. Right - it is a pain to test; so for me I can crash this repeatably 100% of the time; simply run the attached "Libreoffice compilation simulator". Then launch Libreoffice, and do File->Save As [ just gives you a file-selector ], browse to /tmp - do a bit of file-name typeahead for good measure, then scroll to the bottom of the list of files in /tmp [ I have around ~1200 files in /tmp as a matter of course ], and start scrolling up - after a few seconds of fiddling there I get this assert failure. I'll build a package to test your patch in a second too. Interestingly, my Evolution (which regularly is used to save to /tmp) but which had no file selector open got some impressive memory corruption (around the file-selector, sudden loss of all its bookmarks, partial tree, broken file-selector behaviour), just running on another desktop and not being interacted with by running this ;-) [ I really think we leak / have some notification still active when the file-selector is closed FWIW, possibly an evo bug - not cleaning up the widget properly ]. Anyhow - thanks so much for having a look & patching it :-) ATB, Michael. -- michael meeks novell com <><, Pseudo Engineer, itinerant idiot
Attachment:
thrash.pl
Description: Perl program