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 106086 - Metacity dumps on multihead.
Metacity dumps on multihead.
Status: RESOLVED FIXED
Product: metacity
Classification: Other
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Metacity maintainers list
Metacity maintainers list
Depends on:
Blocks:
 
 
Reported: 2003-02-14 14:11 UTC by Arvind S N
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
nautilus patch with multihead done for preferences window. (4.34 KB, patch)
2003-02-14 14:12 UTC, Arvind S N
none Details | Review
Probable fix (2.38 KB, patch)
2003-02-20 10:03 UTC, Arvind S N
none Details | Review
another way to patch (2.06 KB, patch)
2003-02-20 19:20 UTC, Havoc Pennington
none Details | Review

Description Arvind S N 2003-02-14 14:11:40 UTC
Open the nautilus preferences on second head.
Then on metacity keeps dumping.

Havoc:
Currently the preferences window although opened in second head is shown
on the first head. I will attach the patch for nautilus with screen stuff
done.

The trace is as below.

t@1 (l@1) program terminated by signal SEGV (no mapping at the fault
address)
Current function is add_constraint
  509         if (c->above == above)
(dbx) where
current thread: t@1
=>[1] add_constraint(constraints = 0x1e7770, above = 0x1deb50, below =
0x1ed318), line 509 in "stack.c"
  [2] create_constraints(constraints = 0x1e7770, windows = 0x15f244), line
597 in "stack.c"
  [3] constrain_stacking(stack = 0x1cd390), line 788 in "stack.c"
  [4] meta_stack_ensure_sorted(stack = 0x1cd390), line 932 in "stack.c"
  [5] meta_stack_sync_to_server(stack = 0x1cd390), line 1060 in "stack.c"
  [6] meta_stack_raise(stack = 0x1cd390, window = 0x1d9488), line 153 in
"stack.c"
  [7] meta_window_raise(window = 0x1d9488), line 3255 in "window.c"
  [8] event_callback(event = 0xffbfed30, data = 0x1b9e50), line 1321 in
"display.c"
  [9] filter_func(xevent = 0xffbfed30, event = 0x1ef310, data = 0x1bff48),
line 94 in "ui.c"
dbx: warning: can't find file
"/gnome-2.9/src-2.0n-12Feb03-community/gtk+/gdk/x11/.libs/libgdk-x11.al(gdkevents-x11.lo)"dbx:
warning: see `help finding-files'
  [10] gdk_event_apply_filters(0xffbfed30, 0x1ef310, 0x15efd4, 0xfffffff8,
0x0, 0x1ef369), at 0xfeb6d98c
  [11] gdk_event_translate(0x175a60, 0x1ef310, 0xffbfed30, 0x0, 0x0,
0xffbfed80), at 0xfeb6e818
  [12] _gdk_events_queue(0x175a60, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfeb712e8
  [13] gdk_event_dispatch(0x181c40, 0x0, 0x0, 0xffbfee90, 0x0, 0x0), at
0xfeb717ac
dbx: warning: can't find file
"/gnome-2.9/src-2.0n-12Feb03-community/glib/glib/gmain.lo"
  [14] g_main_dispatch(0x15f650, 0x1f06f0, 0x1bc, 0xff1c12d4, 0xff1c12d4,
0xffbfef94), at 0xfe66168c
  [15] g_main_context_dispatch(0x15f650, 0x7fffffff, 0x1dcce8, 0x5, 0x5,
0x5), at 0xfe66363c
  [16] g_main_context_iterate(0x15f650, 0x1, 0x1, 0x15c188, 0x20, 0x0), at
0xfe663db8
  [17] g_main_loop_run(0x15bc68, 0x15c278, 0x70f80, 0x0, 0x696c6500, 0x0),
at 0xfe664dd4
  [18] main(argc = 3, argv = 0xffbff27c), line 339 in "main.c"
Comment 1 Arvind S N 2003-02-14 14:12:38 UTC
Created attachment 14320 [details] [review]
nautilus patch with multihead done for preferences window.
Comment 2 Arvind S N 2003-02-17 09:25:25 UTC
The Nautilus patch has been checked in to CVS HEAD. Approved by Campd.
Comment 3 Havoc Pennington 2003-02-18 16:16:13 UTC
I can't reproduce this, it doesn't crash for me.
Comment 4 Arvind S N 2003-02-19 12:34:10 UTC
Havoc: oops! you have to close the nautilus window after opening
the preferences window on the second head and then metacity starts
dumping.
Comment 5 Havoc Pennington 2003-02-19 20:45:08 UTC
That doesn't crash for me either ;-)
Comment 6 Arvind S N 2003-02-20 04:20:45 UTC
Need to close all the windows on both heads.
On the second head open nautilus window, invoke preferences. Close the 
nautilus window. Right click anywhere on the desktop on the second head 
and then it should dump for sure Havoc :) 
The fact that I don't use Multihead machines any regular work 
made me assume the above steps was obvious. Apologies for wasting your 
time Havoc.
Comment 7 Arvind S N 2003-02-20 10:03:50 UTC
Created attachment 14461 [details] [review]
Probable fix
Comment 8 Arvind S N 2003-02-20 10:10:42 UTC
Havoc:
The stack trace above is misleading, I got another one
where it dumped at ensure_above()
> g_assert (below->stack_position + 1 == above->stack_position);

On a multihead(2) machine we get 2 MetaStack's created.
But while stacking in create_constraints(), we get 
meta_group_list_windows() which gives windows in both the stacks,
but belonging to one group.

So, for example in the case of Nautilus, we have Desktop 1 and 
Desktop 2. Preferences window is on Desktop 2.
The Desktop 2's stack_position is 1 and Pref's stack_position is 2
(these 2 belong to same stack)
The Desktop 1's stack_position is 2 (another stack).
We have a constraint created for Pref to be on top of Desktop 1 as
well. Hence in ensure_above the stack positions of Pref and Desktop 1
are the same and we have a dump.

While creating constraints we need to filter out the windows belonging
to different stacks.
Comment 9 Havoc Pennington 2003-02-20 19:20:19 UTC
Created attachment 14478 [details] [review]
another way to patch
Comment 10 Havoc Pennington 2003-02-20 19:20:44 UTC
Thanks for tracking down this issue. Does the patch I just attached
work for you?
Comment 11 Arvind S N 2003-02-21 03:22:57 UTC
Havoc: Works fine. Thanks :)
Comment 12 Havoc Pennington 2003-02-25 23:07:48 UTC
Fixed in CVS