GNOME Bugzilla – Bug 336264
Tasklist code goes into infinite loop when faced with bizarre WM_TRANSIENT_FOR hints
Last modified: 2006-03-28 20:35:08 UTC
Steps to reproduce: In practice: 1. Add a tasklist (wnck-applet) to the panel. 2. Open Mathematica. Result: window list becomes unresponsive and wnck-applet consumes 100% of CPU. Since developers may not have access to a copy of Mathematica, I will attach a short C program which has the same effect. Having traced wnck-applet with gdb, I believe this program triggers the same bug as Mathematica. Stack trace: Not applicable; this isn't exactly a crash. (It is in spirit, since the user is forced to kill the applet.) However, the problem is occuring at libwnck/tasklist.c: 1930 (as of version 2.12.3): /* FIXME: check for group modal window */ for (active_window = wnck_screen_get_active_window (screen); active_window && !active_task; active_window = wnck_window_get_transient(active_window)) active_task = g_hash_table_lookup (tasklist->priv->win_hash, active_window); Both Mathematica's splash screen and the test program's window set their WM_TRANSIENT_FOR hint to point to themselves, so this loop never terminates. Other information: References to the Mathematica problems: http://forums.wolfram.com/student-support/topics/10215 http://www.ubuntuforums.org/archive/index.php/t-76347.html In particular, there's a workaround for now.
Created attachment 62163 [details] Simple C program to trigger this bug.
Patch in bug 332493 will fix this if it's just a self-transiency problem. But, we should also worry about the transient-cycle problem with cycle length greater than 1 as well. I'm going to mark as a dupe, but make note of the test program as those tend to be very helpful. Also, see bug 316096 about the Mathematica issue in particular; however, someone claims it was fixed in 2.14 which doesn't make much sense if this is the self-transiency issue (unless someone applied Dan's patch in the distro Andreas is using). *** This bug has been marked as a duplicate of 332493 ***