Plugin hangs browser

Bug #583102 reported by Nathan
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Lightspark
Fix Released
Medium
Alessandro Pignotti

Bug Description

When I install the lightpsark-mozilla-plugin firefox hangs on loading a lot of sites. Even ones without a flash applet. (planet.gnome.org is one exampe)

Note: Firefox doesnt crash, it just doesnt response to anything anymore. When I kill the browser and retries it happens consistently again. Uninstalling the plugin makes firefox usable again...

I'm using Firefox 3.6.3 from normal ubuntu lucid release

[Edit: This is only with flashblock installed]

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

Hi,

are you running a 32 bit or 64 bit distribution?

Revision history for this message
Nathan (nathansamson) wrote :

64

Changed in lightspark:
milestone: none → lightspark-0.4.0
importance: Undecided → Medium
Revision history for this message
Nathan (nathansamson) wrote :

I ran firefox in debug mode, and then loaded planet.gnome.org

It hangs (as expected), and then I ran a bt

[New Thread 0x7fffc69f9710 (LWP 3602)]
INFO: Creating input thread
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7bba03d in pthread_join (threadid=140736525735696,
    thread_return=0x0) at pthread_join.c:89
89 pthread_join.c: Bestand of map bestaat niet.
 in pthread_join.c
(gdb) bt
#0 0x00007ffff7bba03d in pthread_join (threadid=140736525735696,
    thread_return=0x0) at pthread_join.c:89
#1 0x00007fffcfac0e14 in lightspark::RenderThread::wait() ()
   from /usr/lib/mozilla/plugins/liblightsparkplugin.so
#2 0x00007fffcfbaff9d in nsPluginInstance::~nsPluginInstance() ()
   from /usr/lib/mozilla/plugins/liblightsparkplugin.so
#3 0x00007fffcfbaf076 in NPP_Destroy ()
   from /usr/lib/mozilla/plugins/liblightsparkplugin.so
#4 0x00007ffff7157975 in ?? () from /usr/lib/firefox-3.6.3/libxul.so
... Much of the same in libxul

(89 pthread_join.c: Bestand of map bestaat niet.) It says: "File or directory doesn't exists."

When I continued, and ran a bt once again a few seconds later it gave the same result.

It seems to be a race-condition (that happens always on my computer?)

Still I don't get why lightspark plugin would want to render something on planet.gnome since it doens't contain any flash?

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

lightspark, as any plugin is loaded by the browser when the corresponding mimetype is found. And although planet gnome does not use any flash content, aggregated blogs may. I've just now found a youtube video on planet gnome main page. This may be a race condition triggered by the plugin instance being created and destroyed too fast. Could you please attach the whole log using last version? (0.3.5)

Changed in lightspark:
status: New → Confirmed
assignee: nobody → Alessandro Pignotti (a-pignotti)
Revision history for this message
Nathan (nathansamson) wrote :
Download full text (6.2 KiB)

I've found the cause of the problem: I've flashblock installed. When I disable it, firefox doesn't hang anymore, it just plain old crashes. (I'll post another bug report for that one)

Complete log (i think?):

(gdb) run
Starting program: /usr/lib/firefox-3.6.3/firefox-bin
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffe6edc710 (LWP 4771)]
[New Thread 0x7fffe66db710 (LWP 4772)]
[New Thread 0x7fffe5cff710 (LWP 4773)]
[New Thread 0x7fffe52f4710 (LWP 4774)]
[New Thread 0x7fffe31ff710 (LWP 4775)]
[Thread 0x7fffe31ff710 (LWP 4775) exited]
[New Thread 0x7fffe31ff710 (LWP 4776)]
[New Thread 0x7fffe0ed4710 (LWP 4777)]
[New Thread 0x7fffe02ff710 (LWP 4786)]
[Thread 0x7fffe31ff710 (LWP 4776) exited]
[New Thread 0x7fffe31ff710 (LWP 4787)]
[New Thread 0x7fffdbebd710 (LWP 4788)]
[New Thread 0x7fffdafff710 (LWP 4789)]
[New Thread 0x7fffda1ff710 (LWP 4790)]
[New Thread 0x7fffd99fe710 (LWP 4791)]
[Thread 0x7fffda1ff710 (LWP 4790) exited]
[Thread 0x7fffd99fe710 (LWP 4791) exited]
5/20/2010 12:34:35 DEBUG: checking init
5/20/2010 12:34:35 DEBUG: starting inbox checking
5/20/2010 12:34:35 DEBUG: trying to login
5/20/2010 12:34:35 DEBUG: set timeout 30000(ms) id 9 for https://www.google.com/accounts/ClientLogin
5/20/2010 12:34:36 DEBUG: parsing login
5/20/2010 12:34:36 DEBUG: cleared timeout id 9
5/20/2010 12:34:36 DEBUG: successfully logged in
5/20/2010 12:34:36 DEBUG: retrieving inbox
5/20/2010 12:34:36 DEBUG: set timeout 30000(ms) id 20 for https://wave.google.com/wave/
[New Thread 0x7fffd99fe710 (LWP 4793)]
5/20/2010 12:34:38 DEBUG: parsing inbox
5/20/2010 12:34:38 DEBUG: cleared timeout id 20
5/20/2010 12:34:38 DEBUG: setting tooltip
5/20/2010 12:34:38 DEBUG: finished checking
[New Thread 0x7fffda1ff710 (LWP 4794)]
[New Thread 0x7fffd52bb710 (LWP 4799)]
[New Thread 0x7fffd4aba710 (LWP 4800)]
[New Thread 0x7fffd42b9710 (LWP 4801)]
[New Thread 0x7fffcc8ff710 (LWP 4802)]
[New Thread 0x7fffcc0fe710 (LWP 4803)]
[New Thread 0x7fffcb8fd710 (LWP 4804)]
[New Thread 0x7fffcb0fc710 (LWP 4805)]
[New Thread 0x7fffca8fb710 (LWP 4806)]
[New Thread 0x7fffca0fa710 (LWP 4807)]
INFO: RenderThread this=0x7fffd35a8d20
[New Thread 0x7fffc98f9710 (LWP 4808)]
INFO: Creating input thread
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7bba03d in pthread_join (threadid=140736575018768,
    thread_return=0x0) at pthread_join.c:89
89 pthread_join.c: Bestand of map bestaat niet.
 in pthread_join.c
(gdb) bt
#0 0x00007ffff7bba03d in pthread_join (threadid=140736575018768,
    thread_return=0x0) at pthread_join.c:89
#1 0x00007fffd29c0e14 in lightspark::RenderThread::wait() ()
   from /usr/lib/mozilla/plugins/liblightsparkplugin.so
#2 0x00007fffd2aaff9d in nsPluginInstance::~nsPluginInstance() ()
   from /usr/lib/mozilla/plugins/liblightsparkplugin.so
#3 0x00007fffd2aaf076 in NPP_Destroy ()
   from /usr/lib/mozilla/plugins/liblightsparkplugin.so
#4 0x00007ffff7157975 in ?? () from /usr/lib/firefox-3.6.3/libxul.so
#5 0x00007ffff6c3d35d in ?? () from /usr/lib/firefox-3.6.3/libxul.so
#6 0x00007ffff6c3d487 in ?? () from /usr/lib/firefox-3.6.3/libxul.so
#7 0x00007ffff6c3d4fc in ?? () from /usr/lib/firefox-3.6.3/libxul.so
#8 0x00007ffff6c3e10a in ?? () from...

Read more...

description: updated
Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

I have not managed to reproduce this on my lucid box. To understand what is going on I have to ask you the backtrace for each thread (use the 'info threads' command to see threads and the 'thread' command to switch thread ). Only those blocked on sem_wait or pthread_join are interesting. Thanks a lot.

Revision history for this message
Nathan (nathansamson) wrote :
Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

Ok, the log contains enough information to debug the issue. Please try version 0.3.7 (to be released later today). It contains some added logging to confirm my hypothesis.

Revision history for this message
Nathan (nathansamson) wrote :

I tried the 0.3.7. It has the same issue (but that seems to be expected), but I dont see any logging happening (I dont see the log entry you added i n the source about the deadlock).

But maybe I have to do something special to see this logging?

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

Please post the whole log, my hypothesis is that there is a race condition when the browser terminate the main stream too early. The logging I've added is in the plugin specific code.

Revision history for this message
Nathan (nathansamson) wrote :
Download full text (5.4 KiB)

(gdb) r
Starting program: /usr/lib/firefox-3.6.3/firefox-bin -P
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffe76ff710 (LWP 16515)]
[New Thread 0x7fffe6efe710 (LWP 16516)]
[New Thread 0x7fffe66fd710 (LWP 16517)]
[New Thread 0x7fffe42df710 (LWP 16518)]
[New Thread 0x7fffe36ff710 (LWP 16519)]
[New Thread 0x7fffe2efe710 (LWP 16520)]
[Thread 0x7fffe36ff710 (LWP 16519) exited]
[Thread 0x7fffe66fd710 (LWP 16517) exited]
[Thread 0x7fffe2efe710 (LWP 16520) exited]
[Thread 0x7fffe42df710 (LWP 16518) exited]
[Thread 0x7fffe6efe710 (LWP 16516) exited]
[Thread 0x7fffe76ff710 (LWP 16515) exited]
process 16514 is executing new program: /usr/lib/firefox-3.6.3/firefox-bin
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffe75f1710 (LWP 16521)]
[New Thread 0x7fffe6be6710 (LWP 16522)]
[New Thread 0x7fffe63e5710 (LWP 16523)]
[New Thread 0x7fffe54ff710 (LWP 16524)]
[New Thread 0x7fffe44ca710 (LWP 16525)]
[Thread 0x7fffe44ca710 (LWP 16525) exited]
[New Thread 0x7fffe44ca710 (LWP 16526)]
[New Thread 0x7fffe34ff710 (LWP 16527)]
[Thread 0x7fffe44ca710 (LWP 16526) exited]
[New Thread 0x7fffe44ca710 (LWP 16528)]
[Thread 0x7fffe44ca710 (LWP 16528) exited]
[New Thread 0x7fffe44ca710 (LWP 16530)]
[New Thread 0x7fffde2bd710 (LWP 16531)]
[New Thread 0x7fffddabc710 (LWP 16532)]
[New Thread 0x7fffdd0ff710 (LWP 16533)]
[New Thread 0x7fffdc6ff710 (LWP 16534)]
[New Thread 0x7fffdbaf5710 (LWP 16535)]
[Thread 0x7fffdbaf5710 (LWP 16535) exited]
[New Thread 0x7fffdbaf5710 (LWP 16536)]
[Thread 0x7fffdbaf5710 (LWP 16536) exited]
[New Thread 0x7fffdbaf5710 (LWP 16537)]
[New Thread 0x7fffd9bff710 (LWP 16538)]
[New Thread 0x7fffd93fe710 (LWP 16539)]
[New Thread 0x7fffd8bfd710 (LWP 16540)]
[Thread 0x7fffe34ff710 (LWP 16527) exited]
[New Thread 0x7fffe34ff710 (LWP 16541)]
[Thread 0x7fffe34ff710 (LWP 16541) exited]
[New Thread 0x7fffe34ff710 (LWP 16542)]
[New Thread 0x7fffd18ff710 (LWP 16543)]
[New Thread 0x7fffd10fe710 (LWP 16544)]
[New Thread 0x7fffd08fd710 (LWP 16545)]
[New Thread 0x7fffd00fc710 (LWP 16546)]
[New Thread 0x7fffcf8fb710 (LWP 16547)]
INFO: RenderThread this=0x7fffd9dacae0
[New Thread 0x7fffcf0fa710 (LWP 16548)]
INFO: Creating input thread
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7bba03d in pthread_join (threadid=140736667297552,
    thread_return=0x0) at pthread_join.c:89
89 pthread_join.c: Bestand of map bestaat niet.
 in pthread_join.c
(gdb) info thread
  34 Thread 0x7fffcf0fa710 (LWP 16548) sem_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
  33 Thread 0x7fffcf8fb710 (LWP 16547) sem_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
  32 Thread 0x7fffd00fc710 (LWP 16546) sem_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
  31 Thread 0x7fffd08fd710 (LWP 16545) sem_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
  30 Thread 0x7fffd10fe710 (LWP 16544) sem_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
  29 Thread 0x7fffd18ff710 (LWP 16543) sem_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
  28 Thread 0x7fffe34ff710 (LWP 16542) sem_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
 ...

Read more...

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

Try release 0.3.8, this issue should be fixed

Changed in lightspark:
status: Confirmed → Fix Committed
Revision history for this message
Nathan (nathansamson) wrote :

Confirmed, its fixed...

Changed in lightspark:
status: Fix Committed → Fix Released
Revision history for this message
Jacopo Corbetta (jacopo-arc) wrote :

I'm afraid that still happens.

Go to http://www.corriere.it and try opening any article. Full GDB log attached.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.