Closed Bug 482091 Opened 15 years ago Closed 15 years ago

fennec crashes frequently while browsing, disabling shockwave flash plugin reduces the crashes

Categories

(Core Graveyard :: Plug-ins, defect)

ARM
Maemo
defect
Not set
normal

Tracking

(status1.9.2 beta1-fixed, fennec1.0+)

RESOLVED FIXED
Tracking Status
status1.9.2 --- beta1-fixed
fennec 1.0+ ---

People

(Reporter: jmaher, Assigned: jrmuizel)

References

Details

Attachments

(3 files, 3 obsolete files)

I have noticed while browsing Fennec will crash quite frequently. Initially I thought this was jit, but turning jit off didn't help.  I found out that disabling the shockwave flash plugin, I had a hard time crashing the browser.

I played around a lot with this and found that with the plugin enabled, I crash a LOT, with it disabled, very infrequently.  Others have noticed this as well.

I recommend disabling the plugin by default for beta1 to improve the user experience.  

I would recommend visiting a website that has flash (www.tokbox.com -> www.facebook.com, or aljazeera.net -> qq.com), then browsing away from it if you want to reproduce this.
whose flash library are you using?

please be nice and include a useragent and a uname when filing such bugs. and the flash plugin version for bugs about flash....
The n810's ship with a symlink in .mozilla/plugins to /usr/lib/browser/plugins/libflashplayer.so, so we end up using that, as far as I know (certainly was the case for my device).
ok, so it's the nokia flash player, and which version? (ask dpkg)

if your provide me with urls for core dumps, i can send them to the people who have symbols for flash player (note that it would be helpful if you also including a link to symbols for the corresponding xulrunner+fennec).

for whatever reason, the OS for this system was selected as 'Linux (embedded)', which means that I'm not guaranteed this is Maemo. Therefore, I kindly request that when you file bugs you actually include things like the OS (uname -a, /etc/osso_software_version) and package version info if it's relevant (dpkg...)
there is no other target to specify maemo, so I have been using linux (embedded).  Here is the specifics to the device I am using:
Nokia-N810-51-3:/media/mmc1/unittests/fennec# uname -a
Linux Nokia-N810-51-3 2.6.21-omap1 #2 Fri Dec 7 11:17:13 EET 2007 armv6l unknown
Nokia-N810-51-3:/media/mmc1/unittests/fennec# cat /etc/osso_software_version 
RX-34+RX-44_2008SE_2.2007.51-3.4.SINGTEL_PR_SI0
Nokia-N810-51-3:/media/mmc1/unittests/fennec# 

The Fennec build in use can be found here:
http://ftp.mozilla.org/pub/mozilla.org/mobile/b1rc2/

As for core dumps, I don't see any on my system.  This is a release build and not a debug build.  

The version of shockwave-flash is what is provided by default in the Maemo device that I have:
Shockwave Flash 9.0 r31

I couldn't find the package using dpkg
err, that's chinook.

please upgrade to diablo.

and as long as maemo can exist in different versions, please continue to include those details when you file bugs.

you should have at least:

RX-34+RX-44+RX-48_DIABLO_5.2008.43-7_PR_MR0
Shockwave Flash 9.0 r48
err sorry, not chinook, original shipping diablo
Do the same websites crash using microb?
I have updated my device to the latest OS2008 and reverified this issue.  My plugin in:
shockwave flash 9.0 r48

I browse to:
tokbox.com  <- verify it doesn't load because it is missing a compatible flash plugin

then browse to:
facebook.com


This results in a crash before facebook loads.  I verified this happens twice, disabled the plugin in fennec, retested and I could get to facebook.

Next I launched microb and I was able to get to facebook as expected.

So it appears this is a Fennec specific crash.
It looks like this one is my fault. I'm not sure what's going wrong yet. I've got a patch that papers over the problem.
Attached patch Bandaid over plugin problem (obsolete) — Splinter Review
This keeps facebook from crashing. I'll see if I can figure out what's going on.
This seems to work better than the previous patch and makes more sense.
Attachment #366396 - Attachment is obsolete: true
The patch above makes sure we don't try to draw windowless plugins as though they had a window and keeps us from crashing in those cases.
It also doesn't seem to help the situation on the device.
If anyone can provide a stack trace of the crash that would be very useful.
It looks like we are crashing in libdbus when handling glib events. 

lr = dbus_connection_dispatch

and the stack looks like something like:

 -- libpthread.so.0
 -- _dbus_pthread_mutex_unlock()
message_queue_dispatch()
...
g_main_context_iteration
nsAppShell::ProcessNextNativeEvent(int)
nsBaseAppShell::DoProcessNextNativeEvent(int)

So I'm not even sure that this my fault.
(In reply to comment #12)
> The patch above makes sure we don't try to draw windowless plugins as though
> they had a window and keeps us from crashing in those cases.

For the record, it turns out this patch was fixing crashes I was seeing that were caused by upgrading to flash 10 (supporting windowless mode) in my linux vm.

I can not reproduce the problem in my linux vm, even with flash 9.
(In reply to comment #15)
> It looks like we are crashing in libdbus when handling glib events. 
> 
> lr = dbus_connection_dispatch

It looks like we crash trying to call an invalid filter->function on
line 4267 of dbus-connection.c.
It looks like the problem is that libplayback adds a dbus_connection_filter when called into by flash but does not remove that filter when libplayback is unloaded.

microb likely avoids this problem by having libplayback always loaded and we could likely work around the problem the same way.
please file a bug in bugs.maemo.org, thanks.
This patch should work but I haven't been able to get it too. I'm not sure why.
Attached patch dlopen libplayback.so (obsolete) — Splinter Review
dlopening libplayback keeps us from crashing when we unload the flash plugin.
Attachment #366909 - Attachment is obsolete: true
Attachment #366931 - Flags: review?(pavlov)
This version adds a comment explaining what's going on. The dlopening could happen anywhere. I chose the current location because it's already ifdefed away and I want the dlopen to happen on plugin load and not startup.
Attachment #366931 - Attachment is obsolete: true
Attachment #366931 - Flags: review?(pavlov)
I tested this build and could not get the browser to crash.  The only odd thing I noted (which I assume isn't part of the patch) is that when hitting a site with flash, the browser is very hard to use as the response time is measure in seconds.  The memory usage of Fennec is very high then, so I am considering this a factor of plugins and streaming audio/video.

Great job on the patch making Fennec work.
Attachment #366965 - Flags: review?(pavlov)
Attachment #366965 - Flags: review?(pavlov) → review+
Comment on attachment 366965 [details] [diff] [review]
dlopen libplayback.so v2

scary, but lets go with it for now.
has this landed?
Flags: wanted-fennec1.0?
It's in trunk, I don't know about 1.9.1
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Component: General → Plug-ins
Product: Fennec → Core
QA Contact: general → plugins
Flags: wanted-fennec1.0? → wanted-fennec1.0+
Attachment #366965 - Flags: approval1.9.1.1?
tracking-fennec: --- → 1.0+
Assignee: nobody → jmuizelaar
Comment on attachment 366965 [details] [diff] [review]
dlopen libplayback.so v2

Fennec will be built off of 1.9.2, so this can wait for that branch.
Attachment #366965 - Flags: approval1.9.1.1?
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: