Last Comment Bug 728645 - 2nd xulrunner 10.0.2 segfault under hulahop / pyxpcom (related to mouse events)
: 2nd xulrunner 10.0.2 segfault under hulahop / pyxpcom (related to mouse events)
Status: UNCONFIRMED
:
Product: Core
Classification: Components
Component: General (show other bugs)
: Trunk
: x86_64 Linux
: -- normal (vote)
: ---
Assigned To: Nobody; OK to take it and work on it
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-02-18 22:38 PST by lkcl
Modified: 2012-02-25 02:35 PST (History)
2 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments

Description lkcl 2012-02-18 22:38:17 PST
User Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.19) Gecko/20110430 Iceweasel/3.5.9 (like Firefox/3.5.9)
Build ID: 20100414091236

Steps to reproduce:

moved mouse into pyjamas-desktop application, which requires hulahop which
requires pyxpcom which requires xpcom which requires xulrunner.


Actual results:


Program received signal SIGSEGV, Segmentation fault.
0x00007fffed0ecc9c in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
(gdb) where
#0  0x00007fffed0ecc9c in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#1  0x00007fffed3ccdad in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#2  0x00007fffed3ccfc9 in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#3  0x00007fffed3d0503 in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#4  0x00007fffed3d0ea0 in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#5  0x00007fffed70799d in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#6  0x00007fffed707ead in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#7  0x00007fffed831038 in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#8  0x00007fffed835988 in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#9  0x00007fffed8359ed in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#10 0x00007fffed835a23 in ?? () from /usr/local/lib/xulrunner-10.0.2/libxul.so
#11 0x00007ffff484a1a8 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#12 0x00007ffff61b3e7e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff61c58d7 in ?? () from /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff61ceaa5 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#15 0x00007ffff61ceed3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#16 0x00007ffff4963051 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#17 0x00007ffff496fc41 in gtk_widget_send_focus_change ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#18 0x00007ffff496fe72 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#19 0x00007ffff497a66b in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#20 0x00007ffff497a867 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 0x00007ffff484a1a8 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#22 0x00007ffff61b3e7e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#23 0x00007ffff61c56e8 in ?? () from /usr/lib/libgobject-2.0.so.0
#24 0x00007ffff61ceaa5 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#25 0x00007ffff61ceed3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#26 0x00007ffff4963051 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#27 0x00007ffff48488fb in gtk_main_do_event ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#28 0x00007ffff44b41dc in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#29 0x00007ffff5aec4a3 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x00007ffff5aecc80 in ?? () from /lib/libglib-2.0.so.0
#31 0x00007ffff5aecf1d in g_main_context_iteration ()
   from /lib/libglib-2.0.so.0
#32 0x00007ffff484797d in gtk_main_iteration_do ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#33 0x00007ffff4ef0327 in ?? ()
   from /usr/lib/python2.7/dist-packages/gtk-2.0/gtk/_gtk.so
#34 0x00000000004b9589 in PyEval_EvalFrameEx ()
#35 0x00000000004bfccd in PyEval_EvalCodeEx ()
#36 0x000000000044b658 in ?? ()
#37 0x000000000041d42a in PyObject_Call ()
#38 0x00000000004bb1db in PyEval_EvalFrameEx ()
#39 0x00000000004bfccd in PyEval_EvalCodeEx ()
#40 0x00000000004b9a5b in PyEval_EvalFrameEx ()
#41 0x00000000004bfccd in PyEval_EvalCodeEx ()
#42 0x00000000004c07a2 in PyEval_EvalCode ()
#43 0x00000000004dfa02 in ?? ()
#44 0x00000000004e0594 in PyRun_FileExFlags ()
#45 0x00000000004e109e in PyRun_SimpleFileExFlags ()
#46 0x00000000004f10ed in Py_Main ()
#47 0x00007ffff69a3ead in __libc_start_main ()
   from /lib/x86_64-linux-gnu/libc.so.6
#48 0x000000000041f269 in _start ()
(gdb) ^CQuit
(gdb) quit
A debugging session is active.




Expected results:

none of these errors occurred with xulrunner 9.0.
#728500 is the previous bug which must also be fixed in order
to get to this point (compile with --disable-jealloc is a temporary workaround)
Comment 1 Josh Matthews [:jdm] 2012-02-18 22:41:22 PST
If you could install the debug symbols package, that would make the backtrace a lot more useful.
Comment 2 lkcl 2012-02-18 22:53:48 PST
ok turns out that i've got a debug build already so was able to drop libxul.so into /usr/local/xulrunner-10.0.2/lib, and this is what i get:

#0  0x00007fffed05ff12 in nsCOMPtr (this=<value optimized out>, aRawPtr=
    0x1000000) at ../../../dist/include/nsCOMPtr.h:607
#1  0x00007fffed3ccfd8 in nsFocusManager::AdjustWindowFocus (this=0x10af8b0, 
    aWindow=0x1000000, aCheckPermission=false)
    at /home/lkcl/oe/src/iceweasel/dom/base/nsFocusManager.cpp:1338
#2  0x00007fffed3d0503 in nsFocusManager::Focus (this=0x10af8b0, aWindow=
    0x1000000, aContent=0x0, aFlags=0, aIsNewDocument=true, 
    aFocusChanged=false, aWindowRaised=true, aAdjustWidgets=true)
    at /home/lkcl/oe/src/iceweasel/dom/base/nsFocusManager.cpp:1693
#3  0x00007fffed3d0ea0 in nsFocusManager::WindowRaised (this=0x10af8b0, 
    aWindow=<value optimized out>)
    at /home/lkcl/oe/src/iceweasel/dom/base/nsFocusManager.cpp:735
#4  0x00007fffed70799d in nsWebBrowser::Activate (this=0x1445e40)
    at /home/lkcl/oe/src/iceweasel/embedding/browser/webBrowser/nsWebBrowser.cpp:1785
#5  0x00007fffed707ead in nsWebBrowser::HandleEvent (aEvent=0x7fffffffd030)
    at /home/lkcl/oe/src/iceweasel/embedding/browser/webBrowser/nsWebBrowser.cpp:1731
#6  0x00007fffed831038 in nsWindow::DispatchEvent (this=<value optimized out>, 
    aEvent=<value optimized out>, aStatus=@0x7fffffffd08c)
    at /home/lkcl/oe/src/iceweasel/widget/src/gtk2/nsWindow.cpp:613
#7  0x00007fffed835988 in nsWindow::DispatchActivateEvent (this=0x148c9b0)
    at /home/lkcl/oe/src/iceweasel/widget/src/gtk2/nsWindow.cpp:584
#8  0x00007fffed8359ed in nsWindow::OnContainerFocusInEvent (this=0x148c9b0, 
    aWidget=<value optimized out>, aEvent=<value optimized out>)
    at /home/lkcl/oe/src/iceweasel/widget/src/gtk2/nsWindow.cpp:2948
#9  0x00007fffed835a23 in focus_in_event_cb (widget=0xc94490, event=0x14eaaa0)
    at /home/lkcl/oe/src/iceweasel/widget/src/gtk2/nsWindow.cpp:5862
#10 0x00007ffff484a1a8 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#11 0x00007ffff61b3e7e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff61c58d7 in ?? () from /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff61ceaa5 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff61ceed3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#15 0x00007ffff4963051 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#16 0x00007ffff496fc41 in gtk_widget_send_focus_change ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#17 0x00007ffff496fe72 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#18 0x00007ffff497a66b in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#19 0x00007ffff497a867 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#20 0x00007ffff484a1a8 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 0x00007ffff61b3e7e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#22 0x00007ffff61c56e8 in ?? () from /usr/lib/libgobject-2.0.so.0
#23 0x00007ffff61ceaa5 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#24 0x00007ffff61ceed3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#25 0x00007ffff4963051 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#26 0x00007ffff48488fb in gtk_main_do_event ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#27 0x00007ffff44b41dc in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#28 0x00007ffff5aec4a3 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#29 0x00007ffff5aecc80 in ?? () from /lib/libglib-2.0.so.0
#30 0x00007ffff5aecf1d in g_main_context_iteration ()
   from /lib/libglib-2.0.so.0
#31 0x00007ffff484797d in gtk_main_iteration_do ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#32 0x00007ffff4ef0327 in ?? ()
   from /usr/lib/python2.7/dist-packages/gtk-2.0/gtk/_gtk.so
#33 0x00000000004b9589 in PyEval_EvalFrameEx ()
#34 0x00000000004bfccd in PyEval_EvalCodeEx ()
#35 0x000000000044b658 in ?? ()
#36 0x000000000041d42a in PyObject_Call ()
#37 0x00000000004bb1db in PyEval_EvalFrameEx ()
#38 0x00000000004bfccd in PyEval_EvalCodeEx ()
#39 0x00000000004b9a5b in PyEval_EvalFrameEx ()
#40 0x00000000004bfccd in PyEval_EvalCodeEx ()
#41 0x00000000004c07a2 in PyEval_EvalCode ()
#42 0x00000000004dfa02 in ?? ()
#43 0x00000000004e0594 in PyRun_FileExFlags ()
#44 0x00000000004e109e in PyRun_SimpleFileExFlags ()
#45 0x00000000004f10ed in Py_Main ()
---Type <return> to continue, or q <return> to quit---
#46 0x00007ffff69a3ead in __libc_start_main ()
   from /lib/x86_64-linux-gnu/libc.so.6
#47 0x000000000041f269 in _start ()
(gdb)
Comment 3 lkcl 2012-02-18 22:56:23 PST
ah bit of crossover there, josh :)

hmmm, that's worthwhile just looking in the logs to see what if anything's been changed in the culprit files, nsFocusManager.cpp etc.

please ignore the fact that it says "iceweasel", that's because i did a git clone of debian's git repository and then checked out the upstream 10.0.2 tag but then built with --enable-application=xulrunner.
Comment 4 lkcl 2012-02-18 23:09:14 PST
http://hg.mozilla.org/mozilla-central/log/4d47329bb02e/dom/base/nsFocusManager.cpp

ok, it looks like someone knows that something's up with focus stuff.
olli's added a "test mode":

http://hg.mozilla.org/mozilla-central/rev/742d5f9f284d
Comment 5 Mike Hommey [:glandium] 2012-02-25 01:43:50 PST
(In reply to lkcl from comment #4)
> http://hg.mozilla.org/mozilla-central/log/4d47329bb02e/dom/base/
> nsFocusManager.cpp
> 
> ok, it looks like someone knows that something's up with focus stuff.
> olli's added a "test mode":
> 
> http://hg.mozilla.org/mozilla-central/rev/742d5f9f284d

That's for automated testing, not because "something's up".
I wouldn't be surprised if hulahop and/or pyxpcom is involved in your problem.
Comment 6 lkcl 2012-02-25 01:49:12 PST
(In reply to Mike Hommey [:glandium] from comment #5)
> (In reply to lkcl from comment #4)
> > http://hg.mozilla.org/mozilla-central/log/4d47329bb02e/dom/base/
> > nsFocusManager.cpp
> > 
> > ok, it looks like someone knows that something's up with focus stuff.
> > olli's added a "test mode":
> > 
> > http://hg.mozilla.org/mozilla-central/rev/742d5f9f284d
> 
> That's for automated testing, not because "something's up".

 ahh ok.

> I wouldn't be surprised if hulahop and/or pyxpcom is involved in your
> problem.

 well i would agree with you there... *if* there had actually been any changes made to the source code.  however, merely compiling and linking against xulrunner 10 instead of xulrunner 9 results in a segfault.

 to repeat: the exact same hulahop and xpcom code works absolutely fine with xulrunner 9.
Comment 7 Mike Hommey [:glandium] 2012-02-25 02:15:23 PST
(In reply to lkcl from comment #6)
>  to repeat: the exact same hulahop and xpcom code works absolutely fine with
> xulrunner 9.

That doesn't mean anything.
Comment 8 lkcl 2012-02-25 02:35:26 PST
(In reply to Mike Hommey [:glandium] from comment #7)
> (In reply to lkcl from comment #6)
> >  to repeat: the exact same hulahop and xpcom code works absolutely fine with
> > xulrunner 9.
> 
> That doesn't mean anything.

 yeah, i'm aware of that.  but who within the mozilla foundation is going to tackle this?  i can't.  i haven't the time or resources.  i'd normally deploy a binary bisect on the commits in order to find the one that broke things, but looking at mozilla-central i simply can't find *any* relationship between the mozilla-central commits and the xulrunner-7/8/9/10/12/1551122/999999123123213213 releases, because they go via some silly disconnected multi-stage cascading release structure.  and i looked for about 2 days.

 this is another reason why i'm advocating that someone within the mozilla foundation adopt hulahop as a first-priority project [preferably to be added to the mozilla-central repository].

 the people with the expertise and knowledge of how to set up xulrunner gtk embedded applications are within the mozilla foundation and funded _by_ the mozilla foundation.

 the changes required to get hulahop at least functional with xulrunner 9 were the removal of [undocumented] registry calls.  documentation on what - if anything - _replaces_ those calls is simply... unavailable / impossible to find.

 where is the documentation which describes what _other_ changes may have been made which will impact the stability of the hulahop code??  it's hard enough to find the document that describes the changes to the XPCOM API (which were made nearly 2 years ago) even if you know that they exist!

Note You need to log in before you can comment on or make changes to this bug.