Package: libgtk2.0-0 Version: 2.19.7-1 Severity: normal
I've been getting '.xsession-errors' files growing to tens of MBs in size, with hundreds of thousands of lines with the "XID collision" warning for many months now. This greatly interferes with obtaining meaningful error messages from that file when other software is having problems! I grew tired of waiting for the (long-awaited) GTK+ pixbuf fix, and modified the gtk+2.0 sources with a workaround that decreases the spam to '.xsession-errors' to once every thousand triggers. I've asked 'reportbug' to attach a patch (using the "-A" option), but if that fails I'll try posting the patch again with a followup message. This patch is NOT a bug fix; it is only a melioration of a kind of denial-of-service attack against .xsession-errors. -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (990, 'unstable'), (350, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.34-rc1-git.100315.desktop.kms (SMP w/4 CPU cores; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash
--- gtk+2.0-2.19.7/gdk/x11/gdkxid.c 2009-12-18 21:54:50.000000000 -0500 +++ gtk+2.0-2.19.7/gdk/x11/gdkxid.c 2010-03-15 23:31:57.000000000 -0400 @@ -58,7 +58,15 @@ (GEqualFunc) gdk_xid_equal); if (g_hash_table_lookup (display_x11->xid_ht, xid)) - g_warning ("XID collision, trouble ahead"); + { + static unsigned long int dw_num_collisions = 0; + + if (dw_num_collisions++ % 1000 == 0) + { + unsigned long int num_thousands = (int) (dw_num_collisions / 1000); + g_warning ("XID collisions: %lu thousands", num_thousands); + } + } g_hash_table_insert (display_x11->xid_ht, xid, data); }