After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 613428 - Crash with signal 11
Crash with signal 11
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
2.29.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2010-03-20 19:00 UTC by António Lima
Modified: 2010-04-08 18:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Backtrace (24.99 KB, text/plain)
2010-03-21 02:27 UTC, António Lima
  Details
Complete backtrace (31.14 KB, text/plain)
2010-03-21 22:47 UTC, António Lima
  Details
Add shell_global_get_pointer(), fix warnings in overview with XKB (7.56 KB, patch)
2010-03-26 20:41 UTC, Dan Winship
accepted-commit_now Details | Review

Description António Lima 2010-03-20 19:00:44 UTC
I'm having frequent crashes since 2010-03-18 usually when moving windows around.

Here's the console output.

(mutter:27780): Clutter-WARNING **: The actor 'ShellGenericContainer' is currently inside an allocation cycle; calling clutter_actor_queue_relayout() is not recommended

(mutter:27780): Clutter-WARNING **: The actor 'StBoxLayout' is currently inside an allocation cycle; calling clutter_actor_queue_relayout() is not recommended
Shell killed with signal 11
Comment 1 Owen Taylor 2010-03-20 22:59:24 UTC
Warnings are unrelated. Can you ssh into your computer from a different computer? If so, run gnome-shell from the ssh session with the -g flag:

 gnome-shell --replace -g
 (gdb) run
 <... reproduce crash ...>
 (gdb) bt

And attach the backtrace here.
Comment 2 António Lima 2010-03-21 02:27:32 UTC
Created attachment 156659 [details]
Backtrace

Here is the backtrace. This time it crashed while moving the pointer to the activities button.
Comment 3 Dan Winship 2010-03-21 21:31:03 UTC
you need to type "bt" when it crashes, to get the full backtrace of what it was doing when it crashed.

also, not sure if it's related, but:

        JS ERROR: !!!     stack = 'Error("0x2010 is not a valid value for flags GdkModifierType")@:0
    ("0x2010 is not a valid value for flags GdkModifierType")@gjs_throw:0
    @:0
    ([object Object])@/home/amrlima/gnome-shell/source/gnome-shell/js/ui/workspace.js:488

workspace.js:448 is:

        let [child, x, y, mask] = Gdk.Screen.get_default().get_root_window().get_pointer();

I don't think there's an equivalent in either gdk or clutter that doesn't include a mask value so we'll need a shell wrapper.
Comment 4 António Lima 2010-03-21 22:47:18 UTC
Created attachment 156691 [details]
Complete backtrace

Here goes the backtrace, this time (hopefully) complete. I noticed that I only managed to crash gnome-shell with openoffice running and I thing I started to notice the crashes while I was using eclipse...
Comment 5 Dan Winship 2010-03-26 20:41:57 UTC
Created attachment 157222 [details] [review]
Add shell_global_get_pointer(), fix warnings in overview with XKB

This fixes the warning I pointed out. I don't have any reason to believe
it also fixes the crash, though it's possible that the crash was caused
by some sort of "can't happen" state caused by one of these methods
throwing an error halfway though, in which case this patch would fix it
Comment 6 Owen Taylor 2010-04-08 18:01:12 UTC
Review of attachment 157222 [details] [review]:

The get_pointer() changes look good. The has_pointer changes it's hard to tell, since we've at various times inserted workarounds for clutter not-repicking on scene graph changes. I don't see anything obviously wrong, so if it passes some testing - if the state of the window controls looks good after zooming, after dropping successfully, after drop snap-backs, then it's probably good. And simpler is better than undocumented or faultily documented workarounds that we no longer understand.

::: js/ui/workspace.js
@@ -306,3 @@
-        // better to have the label mysteriously missing than
-        // mysteriously present
-        this._havePointer = false;

By removing this, you've removed a workaround for the described symptoms - the reason for 'not cause a leave-event' is not the grab, but rather the lack of repicking on scene graph changes. The label is no longer shown/hidden on enter leave, but you should check if  you can get a stuck close button (if we hide the close button when dragging anyways, then it doesn't matter.)

@@ +426,2 @@
     show: function() {
+        if (this._windowClone.actor.has_pointer) {

This is subtly different from the previous code, because it's checking whether the clone had the point at last motion event, rather than now. So any intermediate scene changes (from animations or whatever) won't be taken into account.

Not sure if this matters - it's a pervasive problem in any Clutter program.
Comment 7 Dan Winship 2010-04-08 18:30:27 UTC
(In reply to comment #6)
> -        this._havePointer = false;
> 
> By removing this, you've removed a workaround for the described symptoms

No, it was dead code. All of the code that actually looked at the value of _havePointer got removed in some earlier rewrite, so we were just tracking it for no reason now.
Comment 8 Dan Winship 2010-04-08 18:54:10 UTC
committed, with the dead-code-removal part separate, and without the
has_pointer changes, which did break show-close-after-snapback.
("without the has_pointer changes" meaning I just made those parts use
global.get_pointer() instead of gdk_window_get_pointer(), and left the
picking in.)
Comment 9 Dan Winship 2010-04-08 18:55:00 UTC
oops, I shouldn't have marked this FIXED... but let's hope it did fix the bug and leave it that way. :) reopen it if it didn't