Core dump when moving editors (solved)

Core dump when moving editors (solved)

5

    Mar 08, 2012#1

    I've already reported this as a bug but the error couldn't be reproduced. I'd appreciate if a few other users could try this to see if it's reproducible in other environments or if it's a problem specific to my system.

    Steps to reproduce:
    1. open a terminal window and start UltraEdit from the command line
      a. Support had me move the ~/.idm directory before launching the program so that the UI was restored to its default layout but that didn't make a difference for me so I don't think that's a critical pre-step.
    2. within UltraEdit, open two editors using Ctrl+N or File->New File
    3. Left-click on one of the editor tabs and drag it off the horizontal plane and down to the bottom of the editor window (as if you were going to set-up the edit area to view both editors simultaneously, one on top of the other).
      a. Every now and then I get lucky and this will succeed but 9/10 times uex crashes.
    Here is the error message I encounter:

    Code: Select all

    Gdk-ERROR **: The program 'uex' received an X Window System error.
    This probably reflects a bug in the program.
    The error was 'BadWindow (invalid Window parameter)'.
      (Details: serial 13996 error_code 3 request_code 18 minor_code 0)
      (Note to programmers: normally, X errors are reported asynchronously;
       that is, you will receive the error a while after causing it.
       To debug your program, run it with the --sync command line
       option to change this behavior. You can then get a meaningful
       backtrace from your debugger if you break on the gdk_x_error() function.)
    I can't reproduce the error if I run with the --sync command line option so I'm assuming it's a race condition or similar asynchronous problem of some sort.

    I'm on 64 bit Fedora 16. I'm using FCEX at the moment but I'll try a different desktop environment in a bit. The potentially interesting twist is that this is a VM.

    I'd appreciate ldd output [ldd `which uex`] from someone else's system for which this is working. Fedora 16 would be great but I'll take what I can get.

    Here is the ldd output from my system:

    Code: Select all

    linux-vdso.so.1 =>  (0x00007ffffaae5000)
    libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x00000031d5200000)
    libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00000031d0600000)
    libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00000031cbe00000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00000031c9200000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00000031c9600000)
    libicui18n.so.46 => /usr/lib64/libicui18n.so.46 (0x00000031eb600000)
    libicuuc.so.46 => /usr/lib64/libicuuc.so.46 (0x00000031e7200000)
    libm.so.6 => /lib64/libm.so.6 (0x00000031c9e00000)
    libboost_regex-mt.so.1.47.0 => /usr/lib64/libboost_regex-mt.so.1.47.0 (0x00007ff62ed29000)
    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00000031d2a00000)
    libnspr4.so => /lib64/libnspr4.so (0x00000031d7200000)
    libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x00000031d4e00000)
    libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00000031d2200000)
    libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00000031d1a00000)
    libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00000031cfa00000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00000031cb600000)
    librt.so.1 => /lib64/librt.so.1 (0x00000031c9a00000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00000031cae00000)
    libX11.so.6 => /usr/lib64/libX11.so.6 (0x00000031cd200000)
    libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00000031cde00000)
    libz.so.1 => /lib64/libz.so.1 (0x00000031ca200000)
    libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00000031dca00000)
    libtiff.so.3 => /usr/lib64/libtiff.so.3 (0x00000031d2e00000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000031d3600000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000031ca600000)
    libc.so.6 => /lib64/libc.so.6 (0x00000031c8e00000)
    libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00000031d0200000)
    libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00000031d1e00000)
    libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00000031cc600000)
    libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00000031cfe00000)
    libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00000031cf200000)
    libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00000031cc200000)
    libffi.so.5 => /usr/lib64/libffi.so.5 (0x00000031cba00000)
    /lib64/ld-linux-x86-64.so.2 (0x00000031c8a00000)
    libicudata.so.46 => /usr/lib64/libicudata.so.46 (0x00000031e7600000)
    libXext.so.6 => /usr/lib64/libXext.so.6 (0x00000031cda00000)
    libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00000031cee00000)
    libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00000031d0e00000)
    libXi.so.6 => /usr/lib64/libXi.so.6 (0x00000031cea00000)
    libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00000031d1600000)
    libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00000031d1200000)
    libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00000031d2600000)
    libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00000031cf600000)
    libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00000031ce600000)
    libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00000031d0a00000)
    libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00000031cca00000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00000031caa00000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00000031cb200000)
    libexpat.so.1 => /lib64/libexpat.so.1 (0x00000031ce200000)
    libXau.so.6 => /usr/lib64/libXau.so.6 (0x00000031cce00000)
    Here's the output from gdb:

    Code: Select all

    (gdb) bt
    #0  0x00000031cae4d313 in g_logv () from /lib64/libglib-2.0.so.0
    #1  0x00000031cae4d6a2 in g_log () from /lib64/libglib-2.0.so.0
    #2  0x00000031d4e6ab2b in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
    #3  0x00000031cd24810f in _XError () from /usr/lib64/libX11.so.6
    #4  0x00000031cd244f91 in ?? () from /usr/lib64/libX11.so.6
    #5  0x00000031cd244fd5 in ?? () from /usr/lib64/libX11.so.6
    #6  0x00000031cd245de0 in _XReply () from /usr/lib64/libX11.so.6
    #7  0x00000031cd2415a3 in XSync () from /usr/lib64/libX11.so.6
    #8  0x0000000000ea5589 in wxTopLevelWindowGTK::SetTransparent(unsigned char) ()
    #9  0x0000000001078270 in wxAuiManager::HideHint() ()
    #10 0x0000000001081441 in wxAuiManager::DrawHintRect(wxWindow*, wxPoint const&, wxPoint const&) ()
    #11 0x00000000010a0b4d in wxAuiNotebook::OnTabDragMotion(wxAuiNotebookEvent&)()
    #12 0x0000000000d945ae in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const ()
    #13 0x0000000000e70b9e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
    #14 0x0000000000e70cfc in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) ()
    #15 0x0000000000e70db3 in wxEvtHandler::DoTryChain(wxEvent&) ()
    #16 0x0000000000e71381 in wxEvtHandler::ProcessEvent(wxEvent&) ()
    #17 0x0000000000fcc5d3 in wxWindowBase::TryAfter(wxEvent&) ()
    #18 0x000000000109ecc6 in wxAuiTabCtrl::OnMotion(wxMouseEvent&) ()
    #19 0x0000000000d945ae in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const ()
    #20 0x0000000000e70b9e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
    #21 0x0000000000e70cfc in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) ()
    #22 0x0000000000e71303 in wxEvtHandler::ProcessEventLocally(wxEvent&) ()
    #23 0x0000000000e71381 in wxEvtHandler::ProcessEvent(wxEvent&) ()
    #24 0x0000000000e70e07 in wxEvtHandler::SafelyProcessEvent(wxEvent&) ()
    #25 0x0000000000eb00a0 in gtk_window_motion_notify_callback ()
    #26 0x00000031d534ed03 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
    #27 0x00000031cbe0ea24 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
    #28 0x00000031cbe20d17 in ?? () from /lib64/libgobject-2.0.so.0
    #29 0x00000031cbe29f13 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
    #30 0x00000031cbe2a2e2 in g_signal_emit () from /lib64/libgobject-2.0.so.0
    #31 0x00000031d5483f41 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
    #32 0x00000031d534c823 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0
    #33 0x00000031d534cb8b in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0
    #34 0x00000031d4e6207c in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
    #35 0x00000031cae44acd in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
    #36 0x00000031cae452c8 in ?? () from /lib64/libglib-2.0.so.0
    #37 0x00000031cae45815 in g_main_loop_run () from /lib64/libglib-2.0.so.0
    #38 0x00000031d534bbb7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
    #39 0x0000000000ea0727 in wxGUIEventLoop::Run() ()
    #40 0x0000000000d951e1 in wxAppConsoleBase::MainLoop() ()
    #41 0x0000000000dfe4e4 in wxEntry(int&, wchar_t**) ()
    #42 0x0000000000437892 in main ()

      Mar 08, 2012#2

      I didn't see the problem in a basic Gnome environment. Looks like the error is something specific to Fcex (or related option).

        Mar 08, 2012#3

        The core dump is related to the 'Enable display compositing' option on the Compositor tab of Window Manager Tweaks. I can't reproduce the core dump if that option is unchecked.