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