Bug#504384: epiphany-browser hangs indefinitely in select() with single fd while npviewer.bin has 100% CPU
Enrique Perez-Terron
enrio at online.no
Mon Nov 3 10:24:55 UTC 2008
Package: epiphany-browser
Version: 2.22.3-4
Severity: important
Strace shows epiphany-browser waiting in select() like this:
select(57, [56], NULL, NULL, {30, 0}^C <unfinished ...>
At the same time, npviewer.bin, from nspluginwrapper package, 32-bit ELF (I am on
a 64-bit system, and epiphany-browser is 64-bit) is consuming 100% CPU according to
top. Strace shows no system calls from npviewer.bin.
lsof reports on the file descriptor in question like this:
epiphany- 30598 theuser 43u unix 0xffff81002db07140 579491 socket
This appears to happen every 10-20 minutes when browsing sites like nytimes.com
(New York Times). Of course, it is not really prdictable, but I have had it
every day several times per sitting in the last two weeks or so.
The problem appears to have begun about two weeks ago.
Sometimes the hang is not forever. However, even waiting 30 seconds makes no sense
for an interactive browser. I cannot scroll down the page to read the rest of the
page, I cannot switch to another tab...
The only solution found so far is to kill -15 npviewer.bin process. I am not aware
of any adverse effects of doing so, but then I am not usually interested in the
animated ads. By the way, it is not like no animations work. There appears to
be animated ads on all or most pages on newsmedia sites.
Additional info:
I have now been more persisting doing strace of the epiphany process, and seen that
the select sometimes appear in this context:
open("/usr/share/epiphany-browser/components/xpti.dat.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES (Permission denied)
gettimeofday({1225707003, 445183}, NULL) = 0
select(44, [43], NULL, NULL, {0, 0}) = 0 (Timeout)
sendto(43, "\377\377\364H\0\0\0\23\377\377\364F"..., 12, 0, NULL, 0) = 12
recvfrom(43, 0x7fff13c2a84c, 4, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
select(44, [43], NULL, NULL, {30, 0}
Upon timeout, there is another bout of strace output, ending in another select with the
same file descriptor and the same 30 seconds timeout. Yet, there is no preceding atempt
to open xpti.dat.tmp for write in a systewide installation directory.
Another 30 seconds later, the context is again like shown here.
After several 30-second timeouts, the pattern changes, like this:
read(47, 0x3efc794, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=20, events=POLLIN}, {fd=16, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=14, events=POLLIN}, {fd=43, events=POLLIN}, {fd=47, events=POLLIN}], 13, 0) = 0 (Timeout)
gettimeofday({1225707163, 747941}, NULL) = 0
select(44, [43], NULL, NULL, {0, 0}) = 0 (Timeout)
gettimeofday({1225707163, 748035}, NULL) = 0
read(3, 0xbb95c4, 4096) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1225707163, 748117}, NULL) = 0
read(47, 0x3efc794, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=20, events=POLLIN}, {fd=16, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=14, events=POLLIN}, {fd=43, events=POLLIN}, {fd=47, events=POLLIN}], 13, 0) = 0 (Timeout)
gettimeofday({1225707163, 748275}, NULL) = 0
select(44, [43], NULL, NULL, {0, 0}) = 0 (Timeout)
read(3, 0xbb95c4, 4096) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1225707163, 748411}, NULL) = 0
read(47, 0x3efc794, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=20, events=POLLIN}, {fd=16, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=14, events=POLLIN}, {fd=43, events=POLLIN}, {fd=22, events=POLLIN}, {fd=47, events=POLLIN}], 14, 11^C <unfinished ...>
Process 30598 detached
I have added a few blank lines to indicate the pauses.
The npviewer.bin process is still running at 100% CPU after half an hour or so;
yet, at the moment epiphany is repsonsive.
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.25-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages epiphany-browser depends on:
ii epiphany-gecko 2.22.3-4+b1 Intuitive GNOME web browser - Geck
epiphany-browser recommends no packages.
epiphany-browser suggests no packages.
Versions of packages epiphany-gecko depends on:
ii dbus-x11 1.2.1-4 simple interprocess messaging syst
ii epiphany-browser-data 2.22.3-4 Data files for the GNOME web brows
ii gnome-icon-theme 2.22.0-1 GNOME Desktop icon theme
ii iso-codes 3.3-1 ISO language, territory, currency,
ii libart-2.0-2 2.3.20-2 Library of functions for 2D graphi
ii libatk1.0-0 1.22.0-1 The ATK accessibility toolkit
ii libavahi-client3 0.6.23-2 Avahi client library
ii libavahi-common3 0.6.23-2 Avahi common library
ii libavahi-gobject0 0.6.22-3 Avahi GObject library
ii libbonobo2-0 2.22.0-1 Bonobo CORBA interfaces library
ii libbonoboui2-0 2.22.0-1 The Bonobo UI library
ii libc6 2.7-15 GNU C Library: Shared libraries
ii libcairo2 1.6.4-6.1 The Cairo 2D vector graphics libra
ii libdbus-1-3 1.2.1-4 simple interprocess messaging syst
ii libdbus-glib-1-2 0.76-1 simple interprocess messaging syst
ii libenchant1c2a 1.4.2-3.3 a wrapper library for various spel
ii libfontconfig1 2.6.0-1 generic font configuration library
ii libfreetype6 2.3.7-2 FreeType 2 font engine, shared lib
ii libgcc1 1:4.3.2-1 GCC support library
ii libgconf2-4 2.22.0-1 GNOME configuration database syste
ii libglade2-0 1:2.6.2-1 library to load .glade files at ru
ii libglib2.0-0 2.16.6-1 The GLib library of C routines
ii libgnome-desktop-2 2.22.3-2 Utility library for loading .deskt
ii libgnome2-0 2.20.1.1-1 The GNOME 2 library - runtime file
ii libgnomecanvas2-0 2.20.1.1-1 A powerful object-oriented display
ii libgnomeui-0 2.20.1.1-2 The GNOME 2 libraries (User Interf
ii libgnomevfs2-0 1:2.22.0-5 GNOME Virtual File System (runtime
ii libgtk2.0-0 2.12.11-4 The GTK+ graphical user interface
ii libice6 2:1.0.4-1 X11 Inter-Client Exchange library
ii libnotify1 [libnotify1 0.4.4-3 sends desktop notifications to a n
ii libnspr4-0d 4.7.1-4 NetScape Portable Runtime Library
ii liborbit2 1:2.14.13-0.1 libraries for ORBit2 - a CORBA ORB
ii libpango1.0-0 1.20.5-3 Layout and rendering of internatio
ii libpixman-1-0 0.10.0-2 pixel-manipulation library for X a
ii libpng12-0 1.2.27-2 PNG library - runtime
ii libpopt0 1.14-4 lib for parsing cmdline parameters
ii libsm6 2:1.0.3-2 X11 Session Management library
ii libstartup-notificatio 0.9-1 library for program launch feedbac
ii libstdc++6 4.3.2-1 The GNU Standard C++ Library v3
ii libx11-6 2:1.1.5-2 X11 client-side library
ii libxcb-render-util0 0.2.1+git1-1 utility libraries for X C Binding
ii libxcb-render0 1.1-1.1 X C Binding, render extension
ii libxcb1 1.1-1.1 X C Binding
ii libxcursor1 1:1.1.9-1 X cursor management library
ii libxext6 2:1.0.4-1 X11 miscellaneous extension librar
ii libxfixes3 1:4.0.3-2 X11 miscellaneous 'fixes' extensio
ii libxi6 2:1.1.3-1 X11 Input extension library
ii libxinerama1 2:1.0.3-2 X11 Xinerama extension library
ii libxml2 2.6.32.dfsg-4 GNOME XML library
ii libxrandr2 2:1.2.3-1 X11 RandR extension library
ii libxrender1 1:0.9.4-2 X Rendering Extension client libra
ii libxslt1.1 1.1.24-2 XSLT processing library - runtime
ii python2.5 2.5.2-11.1 An interactive high-level object-o
ii xulrunner-1.9 1.9.0.3-1 XUL + XPCOM application runner
ii xulrunner-1.9-gnome-su 1.9.0.3-1 Support for GNOME in xulrunner app
ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime
-- no debconf information
More information about the pkg-gnome-maintainers
mailing list