From: SourceForge.net <no...@so...> - 2007-12-04 19:16:35
|
Bugs item #1789819, was opened at 2007-09-06 22:10 Message generated for change (Settings changed) made by dgp You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=1789819&group_id=12997 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 67. Unix Window Operations Group: None Status: Open Resolution: None >Priority: 8 Private: No Submitted By: Joe English (jenglish) Assigned to: Joe English (jenglish) Summary: Panic in [wm stackorder] Initial Comment: Reported on the Tcl'ers chat (GPS and stever both replicated): Running the Tk test suite under the Whim window manager causes a panic in [wm stackorder] Problem narrowed down to test wm-stackorder-5.2: ++++ wm-stackorder-4.4 PASSED ++++ wm-stackorder-5.1 PASSED num matched toplevel windows does not equal num children /bin/sh: line 1: 20192 Aborted ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2007-12-04 13:57 Message: Logged In: NO Probably should not block 8.5.0. It only affects applications that use [wm stackorder] (of which there are very few) running under window managers that use multiple VROOTs (which is very uncommon -- Whim is the only one I've found so far; Enlightenment might also but I can't confirm). ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2007-12-03 16:48 Message: Logged In: YES user_id=79902 Originator: NO If you can get anyone's effort, yes. Block for this. (The fact that overrideredirect windows might also cause problems is a key factor my opinion.) ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2007-12-03 13:45 Message: Logged In: YES user_id=80530 Originator: NO should this bug block 8.5.0 ? ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2007-10-25 11:53 Message: Logged In: YES user_id=80530 Originator: NO status? ---------------------------------------------------------------------- Comment By: Joe English (jenglish) Date: 2007-09-17 14:43 Message: Logged In: YES user_id=68433 Originator: YES More information: [wm stackorder] is computed by calling XQueryTree() on the "vroot" window, and trying to match each child of the "vroot" against the "reparent" window of all Tk toplevels. The "vroot" is either the RootWindow of the display, or the value of the __SWM_ROOT or __WM_ROOT root window property if present. The "reparent" window of a Tk toplevel is the ancestor of the client window which is a child of the "vroot", if it exists; otherwise it is the parent of the client window (where "client window" is as per the ICCCM). Both of these are computed in function "ReparentEvent", called whenever the client window gets a ReparentNotify. [wm stackorder] assumes that the "reparent" window of all mapped toplevels on the same display are children of a common "vroot", and panics if this is not the case. There are a number of ways in which this can go wrong: (1) There might not be a single virtual root (the EWMH and ICCCM allow for multiple virtual roots); (2) The virtual root might not be identified by __SWM_ROOT or __WM_ROOT (this appears to be an older, informal convention used -- presumably -- by Tom LaStrange's "swm"; the EWMH specifies that virtual roots are listed in _NET_VIRTUAL_ROOTS root window property); (3) override-redirect windows will not be descendants of any "vroot" if one is present; (4) Possible race conditions and other things I'm not clever enough to think of. #3 appears to be the cause of the panic in this particular case: wm-stackorder-5.2 creates two toplevels, one override-redirect and the other one not, then tests [wm stackorder]. The Whim window manager uses virtual roots (it uses multiple virtual roots, actually, although that does not appear to be relevant in this instance.) ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2007-09-08 02:22 Message: Logged In: NO Stack backtrace here: http://paste.tclers.tk/377 >From which you can see (window_ptr - windows) == 1, table.numEntries == 2, which triggers the panic. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=1789819&group_id=12997 |