My favorites | Sign in
Logo
                
New issue | Search
for
| Advanced search | Search tips
Issue 408: globalmenu-gnome gtk module crashes multi-thread apps on SMP systems
27 people starred this issue and may be notified of changes. Back to list
Status:  Fixed
Owner:  ----
Closed:  Sep 03
Type-Defect
Priority-Critical
Milestone-Release0.7.7


Sign in to add a comment

Blocking:
issue 420
 
Reported by jsiltala, Apr 20, 2009
I'm using 64bit Ubuntu Jaunty. I use spatial Nautilus. Sometimes Nautilus
crashes when opening a folder. I filed a bug on Launchpad, against
Nautilus. A developer found that "the crash is due to
/usr/lib/gtk-2.0/modules/libglobalmenu-gnome.so", and naturally closed the
bug because globalmenu is not in Ubuntu but in the PPA.

The bug report with strace is here:
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/362819
Comment 1 by rainwoodman, Apr 21, 2009
Is your CPU a SMP(dual core) ?
Comment 2 by jsiltala, Apr 21, 2009
Yes, it is a 3GHz Intel Core 2 Duo.
Comment 3 by rainwoodman, Apr 21, 2009
OK. I get the problem. But it is going to be very difficult to make a fix because I
don't have access to any x64 SMP machines. and debugging multithread is always a pain
in the ass..

Summary: globalmenu-gnome gtk module crashes multi-thread apps on SMP systems
Labels: -Priority-Medium Priority-Critical Milestone-Release0.7.6
Comment 4 by jsiltala, Apr 21, 2009
Ok, thanks. I'm afraid I have no idea how anything works, but if there is anything
that mortals can do to help, please let me know. :)

Unfortunately the machine with the crash is my office workstation at work, and
naturally I cannot spend very much time there doing this, but I will probably be able
to do some testing etc.
Comment 5 by rainwoodman, Apr 23, 2009
Currently the module relies on the GDK critical section for protecting global
members. It might be insufficient.

I plan to protect all global menu code with a critical section no matter if we are
within the GDK critical section or not.

I bet it will fix the problem.

Will it cause a deadlock though?
Comment 6 by rainwoodman, Apr 23, 2009
 Issue 390  has been merged into this issue.
Comment 7 by rainwoodman, Apr 23, 2009
Please test against rev 2522 where a recursive lock is used to protect the internals
of the global menu module.

No deadlock is observed on my single core laptop.

Status: Started
Comment 8 by rainwoodman, Apr 23, 2009
 Issue 401  has been merged into this issue.
Comment 9 by rainwoodman, Apr 23, 2009
 Issue 349  has been merged into this issue.
Comment 10 by rainwoodman, Apr 27, 2009
A related change is in rev 2538.
Comment 11 by deadeye2k, Apr 28, 2009
can't compile the source from svn on jaunty
and the issue still there after I installed the deb package from ppa
Comment 12 by gkulyk, Apr 28, 2009
@deadeye2k

You'll need a vala 0.6.x version to compile it on jaunty from svn, unfortunately that
means you'll need to compile vala, too. Concerning the dep-package: I've uploaded a
recent svn-snapshot to my ppa (https://launchpad.net/~gkulyk/+archive/ppa), the
results should be available soon. Please test the package and tell me, if it fixes
the issue for you, if so, I'll upload the snapshot to gnome-globalmenu-ppa, too.
Comment 13 by tomtasche, May 01, 2009
I think your PPA fixes the bug, but could be i´m a lucky boy at the moment...

I started eclipse 10 times, programmed a little bit and no crash!

Thank you!
Comment 14 by deadeye2k, May 01, 2009
I still got eclipse crashed with globalmenu 0.7.6~svn2538

Comment 15 by rainwoodman, May 05, 2009
Could you also produce a stack track for the crash with svn2538?
Comment 16 by deadeye2k, May 06, 2009
I don't know how to produce a stack track
but I got this file in my home directory
hs_err_pid6501.log
67.2 KB   Download
Comment 17 by rainwoodman, May 06, 2009
OK it is the same problem.
Would you please run eclipse with
env GLOBALMENU_GNOME_ARGS="--verbose --log-file=~/gnomenu.log"

and attach a copy of ~/gnomenu.log here(when it crashes)?


Comment 18 by deadeye2k, May 06, 2009
here you go
gnomenu.log
1.3 MB   Download
Comment 19 by rainwoodman, May 06, 2009
Do you also have the stack back trace of this crash?
Comment 20 by deadeye2k, May 06, 2009
(No comment was entered for this change.)
hs_err_pid20353.log
67.4 KB   Download
Comment 21 by kim.silkebaekken, May 23, 2009
Any progress on this issue?
Comment 22 by rainwoodman, May 23, 2009
patches are warmly welcomed but i wont have time to work on it by myself.
Comment 23 by rainwoodman, Jun 26, 2009
Slip.
0.7.6 contains several fixes regarding this.
Labels: -Milestone-Release0.7.6 Milestone-Release0.7.7
Comment 24 by cool2sv, Jul 20, 2009
I'm on Jaunty with Firefox 3.5.1 and I still got the seg fault.
I rebuilt the packages for 0.7.6 release but that didn't help in any way.

I also tried building the latest trunk, but I got some vala related error, so I stopped.

Any ideas?
Thanks.

Comment 25 by cool2sv, Jul 20, 2009
Here's my PPA:
https://edge.launchpad.net/~sushkov/+archive/personal
Comment 26 by rainwoodman, Jul 31, 2009
I think the trunk compiles with 0.7.4 now. (r2587)
Comment 27 by rainwoodman, Jul 31, 2009
 Issue 462  has been merged into this issue.
Comment 29 by kojot...@gmail.com, Aug 23, 2009
On my 64 bit Ubuntu Jaunty this problem occurs only when I start Eclipse Galileo or
Ganymede but with 3.2 it works fine. And when I try, like 5-20 times to launch
Galileo or Ganymede it works as well eventually.
Comment 30 by bmarwell, Aug 23, 2009
I had this issue on GIMP, but I'm on single core (AMD 3200+). The only thing we have
in common is the 64bits of our OS.
Comment 31 by rainwoodman, Aug 23, 2009
It might be a truncated pointer if single core is also affected.
Comment 32 by Alexandr.Domrachev, Aug 27, 2009
Confirm crushes of Firefox 3.5.2 & Gimp - Ubuntu Karmic amd64 on single core.
Comment 33 by federico.fallabrino, Aug 27, 2009
Confirmed the bug with firefox 3.5.4pre, gimp 2.6 and gimp 2.7pre, ubuntu jaunty
amd64 athlon dual core.
Comment 34 by kojot...@gmail.com, Aug 28, 2009
I think this issue could be more related to 32 vs. 64 bit binaries incompatibility
rather than SMP issue. Occasionally when launching eclipse i get the error about 32
bit incompatible library. I'll post the exact error message the next time it happens.  
Comment 35 by rainwoodman, Aug 31, 2009
Could someone with a smp/64bit platform run the crashing apps against valgrind?


Comment 36 by jo.m.berg, Aug 31, 2009
Since it's a race condition, I'm not at all convinced that will actually allow seeing
the bug, but I can try -- at least gimp is usually very easy to crash.
Comment 37 by golimpio, Sep 01, 2009
Same problem. I installed the last version from svn (2613), compiled with Vala 0.7.5.
I tested with Eclipse 3.5 64bits, my SO is Ubuntu 9.04 64bits (using the 32bits 
everything works OK)

Follow the error message and also I've attached the log.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007ff644b9c379, pid=20763, tid=140696582797648
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode linux-amd64 )
# Problematic frame:
# C  [libgobject-2.0.so.0+0xf379]  g_object_ref+0x9
#
# An error report file with more information is saved as:
# /java/eclipse/3.5/hs_err_pid20763.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

hs_err_pid20763.log
74.7 KB   Download
Comment 38 by rainwoodman, Sep 01, 2009
@36 I don't know. Since somebody suggested it might be a truncated pointer or
something too.

@37: Was the log produced from an eclipse failure at launching?
Comment 39 by golimpio, Sep 01, 2009
@38 Yes it was.
Comment 40 by golimpio, Sep 01, 2009
Sometimes Global Menu (SVN 2613) consumes all the CPU and I have to kill the process.
Comment 41 by jo.m.berg, Sep 01, 2009
I tried running gimp in valgrind but couldn't ever get it to crash.
Comment 42 by vminch, Sep 01, 2009
I guess it just crashes when it's least convenient :)

Stick in an a flashdrive, and as soon as the icon comes up - nautilus dies. Open up 
Home, nautilus dies. Open up "Computer", nautilus dies. Nautilus won't crash *every* 
time I do something like this - just often. 

I've been searching for the cause of the mysterious nautilus dying issue, and this 
seems to be it. I've running 64-bit, and it goes away when globalmenu is disabled.

That said, globalmenu rocks and I can't bring myself to disable it unless it's for 
testing purposes!

If I can help, let me know.
Comment 43 by rainwoodman, Sep 02, 2009
If anyone can help, please do the follows:

1: checkout r2635,
2: build and install
3: set env GLOBALMENU_GNOME_ARGS=--patch-only
4: launch any crashing apps and see if they still

--patch-only disables the global menu while keeping the code that intercepts GtkMenuBar.



Comment 44 by jo.m.berg, Sep 02, 2009
With GLOBALMENU_GNOME_ARGS=--patch-only I cannot make gimp crash, but obviously it
has no globalmenu then.
Comment 45 by rainwoodman, Sep 02, 2009
I spotted a suspicious code and made changes in rev2636.

Comment 46 by jo.m.berg, Sep 02, 2009
Thanks, but that didn't help. At least gimp still crashes. Here's the relevant part
of the stack trace:

#4  <signal handler called>
#5  0x00007fb343aec339 in IA__g_object_ref (_object=0x3a9c6060)
    at /tmp/buildd/glib2.0-2.21.5/gobject/gobject.c:2339
#6  0x00007fb33c8be1cd in global_menu_gtk_update_menu_context (menubar=0x30a9620) at
globalmenu.c:248
#7  0x00007fb33c8be28a in global_menu_gtk_window_realize (window=<value optimized
out>) at globalmenu.c:450
#8  0x00007fb343aea48d in IA__g_closure_invoke (closure=0x384da60, return_value=0x0,
n_param_values=1, 
    param_values=0x3862ee0, invocation_hint=0x7fff38332620) at
/tmp/buildd/glib2.0-2.21.5/gobject/gclosure.c:767
#9  0x00007fb343b00fae in signal_emit_unlocked_R (node=0x275dea0, detail=0,
instance=0x7fb33a9c6060, 
    emission_return=0x0, instance_and_params=0x3862ee0) at
/tmp/buildd/glib2.0-2.21.5/gobject/gsignal.c:3247
#10 0x00007fb343b0255f in IA__g_signal_emit_valist (instance=0x7fb33a9c6060,
signal_id=<value optimized out>, 
    detail=0, var_args=0x7fff38332800) at
/tmp/buildd/glib2.0-2.21.5/gobject/gsignal.c:2980
#11 0x00007fb343b02a63 in IA__g_signal_emit (instance=0x3a9c6060, signal_id=0,
detail=1135461384)
    at /tmp/buildd/glib2.0-2.21.5/gobject/gsignal.c:3037
#12 0x00007fb34646e7bb in IA__gtk_widget_realize (widget=0x7fb33a9c6060)
    at /tmp/buildd/gtk+2.0-2.17.9/gtk/gtkwidget.c:3347
#13 0x00007fb3464817a8 in gtk_window_show (widget=0x7fb33a9c6060)
    at /tmp/buildd/gtk+2.0-2.17.9/gtk/gtkwindow.c:4487
#14 0x00007fb343aea48d in IA__g_closure_invoke (closure=0x275d9f0, return_value=0x0,
n_param_values=1, 
    param_values=0x3875a00, invocation_hint=0x7fff38332af0) at
/tmp/buildd/glib2.0-2.21.5/gobject/gclosure.c:767
#15 0x00007fb343b008a5 in signal_emit_unlocked_R (node=0x275da80, detail=0,
instance=0x7fb33a9c6060, 
    emission_return=0x0, instance_and_params=0x3875a00) at
/tmp/buildd/glib2.0-2.21.5/gobject/gsignal.c:3177
#16 0x00007fb343b0255f in IA__g_signal_emit_valist (instance=0x7fb33a9c6060,
signal_id=<value optimized out>, 
    detail=0, var_args=0x7fff38332cd0) at
/tmp/buildd/glib2.0-2.21.5/gobject/gsignal.c:2980
#17 0x00007fb343b02a63 in IA__g_signal_emit (instance=0x3a9c6060, signal_id=0,
detail=1135461384)
    at /tmp/buildd/glib2.0-2.21.5/gobject/gsignal.c:3037
#18 0x00007fb34646fa1b in IA__gtk_widget_show (widget=0x7fb33a9c6060)
    at /tmp/buildd/gtk+2.0-2.17.9/gtk/gtkwidget.c:3031
#19 0x00000000004b3e13 in gimp_display_new (gimp=0x27980e0, image=0x0,
unit=GIMP_UNIT_PIXEL, scale=1, 
    menu_factory=0x2918280, popup_manager=0x31dda40, display_factory=0x2b23d70)
    at /usr/src/debian/work/build-area/gimp-2.6.7/./app/display/gimpdisplay.c:387
#20 0x00000000004751e4 in gui_display_create (gimp=0x27980e0, image=0x0,
unit=GIMP_UNIT_PIXEL, scale=1)
    at /usr/src/debian/work/build-area/gimp-2.6.7/./app/gui/gui-vtable.c:343

Comment 47 by rainwoodman, Sep 02, 2009
Can you run against 3637 and see if there is any critcals before the crash?

run with 
env GLOBALMENU_GNOME_ARGS=--verbose

Comment 48 by golimpio, Sep 02, 2009
Eclipse runs OK with "GLOBALMENU_GNOME_ARGS=--patch-only"
But it still crashing if I don't disable the global menu.
Comment 49 by jo.m.berg, Sep 02, 2009
No output before the crash at all on my terminal.
Comment 50 by jo.m.berg, Sep 02, 2009
Ohh! Your truncated pointer comment made me look, and I seem to have fixed it.
Comment 51 by jo.m.berg, Sep 02, 2009
Patch to include dyn patch prototypes.

Without this, we get the following warnings from gcc:

globalmenu.c: In function ‘global_menu_gtk_uninit’:
globalmenu.c:124: warning: cast to pointer from integer of different size
globalmenu.c: In function ‘global_menu_gtk_update_menu_context’:
globalmenu.c:248: warning: assignment makes pointer from integer without a cast
globalmenu.c: In function ‘global_menu_gtk_window_realize’:
globalmenu.c:448: warning: assignment makes pointer from integer without a cast
globalmenu.c:451: warning: assignment makes pointer from integer without a cast
globalmenu.c: In function ‘global_menu_gtk_lookup_item’:
globalmenu.c:468: warning: assignment makes pointer from integer without a cast

of which at least the first one is very bad for 64-bit machines.
dyn-patch-proto.patch
1.2 KB   Download
Comment 52 by rainwoodman, Sep 02, 2009
Many Thanks!

Patch is submitted in rev 2639. 

We may wait for some confirmation from others as well before closing the bug.


Comment 53 by jo.m.berg, Sep 02, 2009
Agreed. Those with eclipse problems please try the latest revision, I don't have
eclipse, only gimp, evolution and nautilus crash frequently for me (well, not any more!)
Comment 54 by golimpio, Sep 02, 2009
Eclipse seems to work with rev 2640. I'm running for a few minutes with no problems.
Thanks for the patch.
Comment 55 by bmarwell, Sep 02, 2009
Linked launchpad bug to this one. 
@rainwoodman might one of the patches affect single core, too?
@all did it fix firefox 3.5? I'll try soon.

Regards & thanks in advance.
Comment 56 by jo.m.berg, Sep 02, 2009
Yes, it would affect single core too, the issue is only 64-bit specific.
Comment 57 by golimpio, Sep 02, 2009
Eclipse is running for more the two hour without problems.

Probably it's not related to this task (and for sure it's not related to the last 
patch, because it's occurring since rev.2613), but Global Menu Applet is still 
consuming lots of CPU after running for a while (+/- 1.5 hours).

Anyone else have this issue ?
Comment 58 by rainwoodman, Sep 02, 2009
@57 golimpio, would you please file another issue against the problem you are
experiencing? And please also mention the rev that was not affected, if you know one.

Comment 59 by golimpio, Sep 03, 2009
@58 It's already reported by jo.m.berg
see: http://code.google.com/p/gnome2-globalmenu/issues/detail?id=484

Comment 60 by rainwoodman, Sep 03, 2009
I am closing this issue.
Thank everyone, again.
Status: Fixed
Comment 61 by rainwoodman, Sep 04, 2009
 Issue 486  has been merged into this issue.
Comment 62 by cool2sv, Sep 06, 2009
Please reopen.

I tested 0.7.7 build from this PPA:
https://edge.launchpad.net/~matthaeus123/+archive/ppa

Firefox 3.5.2 fails to run.
---
$ uname -a ; apt-cache policy firefox-3.5 | head -3; apt-cache policy gnome-
globalmenu | head -3; firefox-3.5; echo $GLOBALMENU_GNOME_ARGS
Linux rivalry 2.6.30-02063003-generic #02063003 SMP Sat Jul 25 10:17:07 UTC 2009 
x86_64 GNU/Linux
firefox-3.5:
  Installed: 3.5.2+nobinonly-0ubuntu0.9.04.1
  Candidate: 3.5.2+nobinonly-0ubuntu0.9.04.1
gnome-globalmenu:
  Installed: 0.7.7-0~ppa2009090301~kk
  Candidate: 0.7.7-0~ppa2009090301~kk
/usr/share/themes/eGTK/gtk-2.0/gtkrc:387: error: invalid string constant "panel", 
expected valid string constant
FoxyProxy settingsDir = /home/stas/.mozilla/firefox-3.5/pko7xxy8.default
zsh: segmentation fault  firefox-3.5
--patch-only

---
Comment 63 by rainwoodman, Sep 06, 2009
GEEEEEEEEEE.

Any programs other than firefox is affected?

Can you produce a backtrace?
Comment 64 by cool2sv, Sep 07, 2009
My bad, I checked again and the problem was that libglobalmenu was not updated from 
Matt's PPA. So I rebuild the package for Jaunty (Karmic package had uninstallable 
dependencies).

Jaunty package is available in my PPA:
https://edge.launchpad.net/~sushkov/+archive/personal

Now Firefox 3.5 works, I can confirm 0.7.7 solves the issue.
You can close it.
Thank you and sorry again for brainfucking :)
Comment 65 by cool2sv, Sep 07, 2009
I'm closing it also in launchpad.
Comment 66 by rainwoodman, Sep 10, 2009
 Issue 467  has been merged into this issue.
Comment 67 by rainwoodman, Sep 17, 2009
 Issue 441  has been merged into this issue.
Comment 68 by psyphre, Sep 17, 2009
I used to have toubles (creator of  issue 467 ), but since using cool2sv's PPA it works
perfect without a single crash for a week now.

Thanks to everyone who helped with this.
Comment 69 by cool2sv, Sep 17, 2009
Great thanks to rainwoodman.
:)
Sign in to add a comment

Hosted by Google Code