Bug#572162: Iceweasel may fall into busy loop on exit, depending on theme

Duncan Gibb Duncan.Gibb at SiriusIT.co.uk
Mon Apr 12 16:51:28 UTC 2010


Hello

I can reproduce this on my amd64 laptop (prefers testing) which has

  iceweasel                            3.5.8-1
  iceweasel-l10n-en-gb                 1:3.5.8+debian-1
  gtk-qt-engine                        1:1.1+svn5-4
  gtk2-engines-qtcurve                 1.2.0-1
  kde-config-gtk-style                 1:1.1+svn5-4

It appears the firefox-bin process continuously poll()s fd 3 after the
fd has been closed.  Looks like fd 3 is the socket used to talk to X;
strace says:

[... during startup ...]

socket(PF_FILE, SOCK_STREAM, 0) = 3
connect(3, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, 20) = 0

[... during buggy shutdown ...]

poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3,
revents=POLLOUT}])


writev(3,
[{"<\2\2\0=\0\340\2<\4\2\0\232\0\340\2<\4\2\0\226\0\340\2<\4\2\0\7\1\340\2"...,
1044}, {NULL, 0}, {"", 0}], 3) = 1044

poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])


read(3,
"\1\1\257:\0\0\0\0\35\0\240\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
4096) = 32

read(3, 0x7ff4f3d91074, 4096)           = -1 EAGAIN (Resource
temporarily unavailable)

close(3)                                = 0


close(26)                               = 0


poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3,
revents=POLLNVAL}])


poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3,
revents=POLLNVAL}])


poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3,
revents=POLLNVAL}])


I have my gtk themes config set to "use my KDE styles".  Of the
available widget themes on this machine, I can reproduce the bug using:

 Cleanlooks
 Oxygen (the default)
 GTK+
 Phase

but *not* when I use:

 CDE
 QTcurve
 Motif
 Plastique

Hope that's useful info to someone.


Cheers


Duncan

-- 
Duncan Gibb - Technical Director
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk/ || t: +44 870 608 0063
Debian Cyrus Team - https://alioth.debian.org/projects/pkg-cyrus-imapd/





More information about the pkg-mozilla-maintainers mailing list