[Libreoffice] [REVIEWED 3-4] application crash on exit

Michael Meeks michael.meeks at suse.com
Sat Nov 12 04:45:10 PST 2011


Hi Noel,

On Sat, 2011-11-12 at 09:49 +0000, Noel Power wrote:
> We have an internal bug that happens when closing the application where 
> there is a legacy format document ( e.g. something.sdd ) already open

	Thanks for looking at this :-)

> ==23824== Invalid read of size 8
> ==23824==    at 0x10C543A0: GtkSalDisplay::EventGuardAcquire() 
> (gtkdata.hxx:83)

	So - your fix seems reasonable enough but:

> ==23824==    by 0x10C53633: GtkXLib::userEventFn(void*) (gtkdata.cxx:800)
> ==23824==    by 0x10C535D4: call_userEventFn (gtkdata.cxx:789)
> ==23824==    by 0x13538BD2: g_main_context_dispatch (in 
> /lib64/libglib-2.0.so.0.2800.0)

	This processing of events during the GtkXLib destructor is a bit
surprising I suppose. I would be inclined as a belt + braces to add:

    if (m_pUserEvent)
    {
        g_source_destroy (m_pUserEvent);
        g_source_unref (m_pUserEvent);
        m_pUserEvent = NULL;
    }

	At the end of ~GtkXLib as well. The hard-coded:

            int nMaxEvents = bHandleAllCurrentEvents ? 100 : 1;

	in the original code is particularly horrible but ... ;-)

> I had a patch ( that just returned immediately from GtkXLib::userEventFn 
> while GtkXLib was destructing ) However now I see that this doesn't 
> happen on master so after looking there I rewrote the patch be more like 
> ( albeit simpler ) the solution there ( which seems to be part of some 
> bigger rework, for gtk3 ? )

	Right - there are some rather substantial changes there. Then again - I
havn't seen my TESTME: warning on shutdown on master so perhaps that
isn't getting exercised much.

> since I know approximately zero about gtk stuff, appreciate wiser heads 
> having a look

	Looks fine for the branch for me - any chance you could cherry-pick
it ?

	Thanks !

		Michael.

-- 
michael.meeks at suse.com  <><, Pseudo Engineer, itinerant idiot



More information about the LibreOffice mailing list