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 336264 - Tasklist code goes into infinite loop when faced with bizarre WM_TRANSIENT_FOR hints
Tasklist code goes into infinite loop when faced with bizarre WM_TRANSIENT_FO...
Status: RESOLVED DUPLICATE of bug 332493
Product: libwnck
Classification: Core
Component: tasklist
2.12.x
Other All
: Normal critical
: ---
Assigned To: libwnck maintainers
libwnck maintainers
Depends on:
Blocks:
 
 
Reported: 2006-03-27 23:44 UTC by Justin Blanchard
Modified: 2006-03-28 20:35 UTC
See Also:
GNOME target: ---
GNOME version: 2.11/2.12


Attachments
Simple C program to trigger this bug. (1018 bytes, text/plain)
2006-03-27 23:47 UTC, Justin Blanchard
Details

Description Justin Blanchard 2006-03-27 23:44:46 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.
Comment 1 Justin Blanchard 2006-03-27 23:47:59 UTC
Created attachment 62163 [details]
Simple C program to trigger this bug.
Comment 2 Elijah Newren 2006-03-28 20:35:08 UTC
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 ***