Closed
Bug 634534
Opened 13 years ago
Closed 13 years ago
Firefox 4 crash Silverlight video [@ mozalloc_abort(char const* const) | mozcrt19.dll@0x1327f | mozilla::plugins::PluginModuleParent::StreamCast(_NPP*, _NPStream*) ][@ mozalloc_abort(char const* const) | NS_DebugBreak_P ]
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(blocking2.0 final+)
RESOLVED
FIXED
mozilla2.0
Tracking | Status | |
---|---|---|
blocking2.0 | --- | final+ |
People
(Reporter: morid_rhosard, Assigned: benjamin)
References
()
Details
(Keywords: crash, reproducible, Whiteboard: [hardblocker])
Crash Data
Attachments
(3 files, 3 obsolete files)
257.95 KB,
text/plain
|
Details | |
4.95 KB,
patch
|
Details | Diff | Splinter Review | |
6.60 KB,
patch
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b12pre) Gecko/20110215 Firefox/4.0b12pre Build Identifier: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b12pre) Gecko/20110215 Firefox/4.0b12pre This bug is strange and need some patience to reproduce, tried with other browsers such as Opera and Chrome, but I could not reproduce. It is also reproducible in safe-mode using Silverlight Version: 4.0.51204.0 and 4.0.60129.0 Reproducible: Always Steps to Reproduce: 1. Open http://www.silverlight.net/learn/videos/all/access-web-camera-microphone/ and click on play. 2. While video is buffering move time bar forward, example 2:30 and click on pause and play very fast. 3. While video is buffering move time bar backward, example 00:15 and click on pause and play very fast. 4. Repeat step 2 and 3 continuously fast until Firefox crash. bp-5ab3d656-b956-4bed-80fe-744d92110215
Comment 1•13 years ago
|
||
I can confirm the issue on Mac 10.6.6 and Silverlight 4.0.60129.0. The whole browser crashed.
Status: UNCONFIRMED → NEW
blocking2.0: --- → ?
Ever confirmed: true
OS: Windows 7 → All
Updated•13 years ago
|
Keywords: crash,
reproducible
Assignee | ||
Updated•13 years ago
|
Assignee: nobody → benjamin
blocking2.0: ? → final+
Whiteboard: [hardblocker]
Assignee | ||
Comment 3•13 years ago
|
||
(gdb) p *sp $2 = { <mozilla::plugins::PBrowserStreamParent> = { <mozilla::ipc::RPCChannel::RPCListener> = { <mozilla::ipc::SyncChannel::SyncListener> = { <mozilla::ipc::AsyncChannel::AsyncListener> = { <> = {<No data fields>}, members of mozilla::ipc::AsyncChannel::AsyncListener: _vptr$AsyncListener = 0x1b9a494d }, <No data fields>}, <No data fields>}, <mozilla::ipc::IProtocolManager<mozilla::ipc::RPCChannel::RPCListener>> = { _vptr$IProtocolManager = 0x1f7976e3 }, members of mozilla::plugins::PBrowserStreamParent: mChannel = 0x5000003, mId = 69859783, mManager = 0x0, mState = 1141932032 }, <mozilla::plugins::AStream> = { _vptr$AStream = 0x43eb8000 }, members of mozilla::plugins::BrowserStreamParent: mNPP = 0x0, mStream = 0x1, mState = mozilla::plugins::BrowserStreamParent::DYING } DYING is quite suspicious, but this really looks like a garbage pointer of some sort: mNPP is *never* null in this code.
Comment 4•13 years ago
|
||
Seems to have regressed sometime in the last 6 months.
Assignee | ||
Comment 5•13 years ago
|
||
printfs show the plugin host definitely calling NPP_WriteReady on a stream where NPP_Destroy was called a long time ago. This log clearly shows us calling NPP_DestroyStream for stream 0x50a4fa0 and then calling NPP_WriteReady on it later. I'm still investigating whether intervening calls from the plugin are causing the plugin host to do bad stuff, although nothing obvious is jumping out from the IPC log.
Comment 6•13 years ago
|
||
Having trouble reproducing this; never mind comment #4.
Assignee | ||
Comment 7•13 years ago
|
||
A new log shows that the nsNPAPIPluginStreamListener is receiving: OnStartBinding(this=0x1f894560, stream=0x1f894584) BrowserStreamParent(this=0x208ee860, mNPP=0x1eedeb70, stream=0x1f894584) OnDataAvailable(this=0x1f894560, stream=0x1f894584) OnStopBinding(this=0x1f894560, stream=0x1f894584) CleanUpStream(this=0x1f894560, reason=1, stream=0x1f894584, mStreamCleanedUp=0) ~BrowserStreamParent(this=0x208ee860, stream=0x1f894584) OnDataAvailable(this=0x1f894560, stream=0x1f894584) So it's receiving OnDataAvailable after OnStopBinding...
Assignee | ||
Comment 8•13 years ago
|
||
Assignee | ||
Comment 9•13 years ago
|
||
The only thing I'm really worried about here is perhaps introducing some sort of cycle between nsPluginStreamListenerPeer and the channel objects. But AFAICT that would have already existed.
Attachment #513253 -
Flags: superreview?(bzbarsky)
Attachment #513253 -
Flags: review?(joshmoz)
Assignee | ||
Comment 10•13 years ago
|
||
Turns out this is not hard to reproduce with the testplugin, once we figured out what was happening.
Assignee | ||
Updated•13 years ago
|
Whiteboard: [hardblocker] → [hardblocker] has patch, needs review josh/bz
Comment 11•13 years ago
|
||
Comment on attachment 513253 [details] [diff] [review] Cache all pending requests, rev. 1 >+ // Copy the array to avoid modification during the loop. Cancel() should be fully async, but I guess it's better to not rely on that for extension-implemented stuff. If you really wanted to, you could use nsTObserverArray here to handle (some) modifications. The other thing we could do if we care about making this fast is use nsTArray<nsCOMPtr<nsIRequest> > and swap. But it likely doesn't matter; I doubt we have many requests here. The asserts in nsPluginStreamListenerPeer::OnStartRequest/OnDataAvailable/OnStopRequest don't look right. In particular, in the cases when we go through nsPluginByteRangeStreamListener it will instantiate a multipart decode, which will deliver a start+stop for each part to the nsPluginStreamListenerPeer, passing synthetic requests it makes up for each part. We could change the asserts to skip these synthetic requests (which we can detect by QIing to nsIMultiPartChannel) or assert about their underlying channel instead. We could also do various other stuff here, but that seems like the simplest way to get sane assertions. We should try to create some tests for this multi-range stuff... The asserts (and behavior in general) are also wrong in the face of redirects, I think. We need to observe those on all the channels we start ourselves and update our pointers accordingly. Yes, that's really annoying. :( The cycle thing should not be a problem; channels should be guaranteeing OnStopRequest, and we drop the refs there. Furthermore, all our internal channels drop their refs to their listeners after firing OnStopRequest.
Attachment #513253 -
Flags: superreview?(bzbarsky) → superreview-
Attachment #513253 -
Flags: review?(joshmoz)
Comment 12•13 years ago
|
||
One other thought. If we're guaranteed that after canceling new channels won't be opened, we could just set a flag and throw from OnStartRequest instead of observing redirects so we can cancel properly.... I'm not sure whether we have that guarantee here.
Assignee | ||
Comment 13•13 years ago
|
||
Like this? I managed to get a multipart range test going on a local server and this fixes the assertions and still appears to work correctly.
Attachment #513568 -
Flags: review?(bzbarsky)
Comment 14•13 years ago
|
||
Comment on attachment 513568 [details] [diff] [review] Fix assertions, rev. 1 This will never remove the multipart request itself from mRequests, since you never get an OnStopRequest for it, right? And this still has the "not canceling the right thing" issue for redirects...
Attachment #513568 -
Flags: review?(bzbarsky) → review-
Assignee | ||
Comment 15•13 years ago
|
||
nsPluginByteRangeStreamListener::OnStopRequest removes the request, I think that part is correct. Yeah, I may still need to deal with redirects. I keep thinking that the channel stays the same over redirects. When a redirect happens, is OnStartRequest called before AsyncOnChannelRedirect?
Comment 16•13 years ago
|
||
> nsPluginByteRangeStreamListener::OnStopRequest removes the request, I think > that part is correct. Oh, right. OK, good. > When a redirect happens, is OnStartRequest called before AsyncOnChannelRedirect? No.
Updated•13 years ago
|
Whiteboard: [hardblocker] has patch, needs review josh/bz → [hardblocker] needs review josh/bz
Whiteboard: [hardblocker] needs review josh/bz → [hardblocker]
Assignee | ||
Comment 18•13 years ago
|
||
This fixes the assertions, handles redirects correctly, and handles redirects on multipart streams correctly as well.
Attachment #513253 -
Attachment is obsolete: true
Attachment #513568 -
Attachment is obsolete: true
Attachment #514290 -
Flags: review?(bzbarsky)
Updated•13 years ago
|
Summary: Firefox 4 crash Silverlight video [@ mozalloc_abort(char const* const) | mozcrt19.dll@0x1327f | mozilla::plugins::PluginModuleParent::StreamCast(_NPP*, _NPStream*) ] → Firefox 4 crash Silverlight video [@ mozalloc_abort(char const* const) | mozcrt19.dll@0x1327f | mozilla::plugins::PluginModuleParent::StreamCast(_NPP*, _NPStream*) ][@ mozalloc_abort(char const* const) | NS_DebugBreak_P ]
Comment 19•13 years ago
|
||
Comment on attachment 514290 [details] [diff] [review] Rollup patch, rev. 1 r=me. Thank you!
Attachment #514290 -
Flags: review?(bzbarsky) → review+
Whiteboard: [hardblocker] → [hardblocker][has patch][needs landing]
Assignee | ||
Updated•13 years ago
|
Attachment #514290 -
Flags: review?(joshmoz)
Attachment #514290 -
Flags: review?(joshmoz) → review+
Whiteboard: [hardblocker][has patch][needs landing] → [hardblocker][needs new patch]
Assignee | ||
Comment 20•13 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/72cfb06dc8bc (code) http://hg.mozilla.org/mozilla-central/rev/865a1e5b97a1 (tests) I had to change the code thusly to get GCC to compile correctly: instead of return base.forget(); I had to explicitly construct: return already_AddRefed<nsIRequest>(base.forget());
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.0
Assignee | ||
Comment 21•13 years ago
|
||
Backed out due to test failures. test_visibility.html was timing out pretty regularly, which I thought was a known-random but it's not. And there were a couple other "interesting" things: http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1298491869.1298492588.1496.gz 97030 INFO TEST-START | /tests/modules/plugin/test/test_pluginstream_src.html NPP_Destroy NPP_NewStream NPP_WriteReady NPP_DestroyStream NPP_Destroy NPP_NewStream NPP_WriteReady NPP_DestroyStream 97031 INFO TEST-PASS | /tests/modules/plugin/test/test_pluginstream_src.html | bad XMLHttpRequest status - 200 should equal 200 NEXT ERROR 97032 ERROR TEST-UNEXPECTED-FAIL | /tests/modules/plugin/test/test_pluginstream_src.html | content doesn't match - got "Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... Hello... ", expected "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\n\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\n\nUt wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\n\nNam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\n\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut laboreet dolore magna aliquyam erat.\n\nConsetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. " 97033 INFO TEST-PASS | /tests/modules/plugin/test/test_pluginstream_src.html | plugin reported error - "pass" should equal "pass" 97034 INFO TEST-END | /tests/modules/plugin/test/test_pluginstream_src.html | finished in 172ms The Hello... repeated is neverending.sjs, which is only used in test_streamatclose.html. But test_pluginstream_src happens *before* test_streamatclose.html. I'm completely puzzled. It also happens that other mochitest runs start warning about focus errors after loading test_streamatclose: 97069 INFO TEST-START | /tests/modules/plugin/test/test_streamatclose.html 97070 INFO Error: Unable to restore focus, expect failures and timeouts. NPP_Destroy 97071 INFO TEST-PASS | /tests/modules/plugin/test/test_streamatclose.html | neverending.sjs started successfully NPP_NewStream NPP_WriteReady NPP_DestroyStream NPP_URLNotify called 97072 INFO TEST-PASS | /tests/modules/plugin/test/test_streamatclose.html | Stream should have failed - 2 should equal 2 During that test. So I suspect that a channel is not being cancelled properly, and then something really bad is happening.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Whiteboard: [hardblocker][needs new patch] → [hardblocker] bounced, needs investigation
Assignee | ||
Comment 22•13 years ago
|
||
It appears that the failures only happen in opt builds... I'm going to try some of those, and maybe valgrind.
Attachment #514290 -
Attachment is obsolete: true
Comment 23•13 years ago
|
||
Hi guys, i'm not sure how it did crash or why, i'm really new at bugzilla so i hope to not say anything wrong. Why i do know is: I'm using Firefox 4.0b11 x86 pt_br version Silverlight 4.0.51204.0 I have about 75 tabs opened in which are split in 3 windows. i did try to reproduce the bug and clicked like 20 times on forward and backward, pause/play, repeatedly, and this is what happens: 1) Silverlight seems to crash then after a few seconds, 2s or 3s, pops up a message to me saying that silverlight tried to get full screen, the plugin itself do crash. 2 and 3 happen simultaneously. 2) I choose to not show the message on this session anymore, and to allow fullscreen. 3) A message pops up saying to me that i do have to close firefox, but i didn't closed. 4) On the website with plugin crashed i refresh the page. 5) No errors ever again on that video at least(10 minutos trying).
Comment 24•13 years ago
|
||
Forgot to mention that i'm using windows 7 sp1 installed.
Comment 25•13 years ago
|
||
This appears to have landed with further fixes, at least to one test, and stuck. http://hg.mozilla.org/mozilla-central/rev/25e1f247b7c2 http://hg.mozilla.org/mozilla-central/rev/4806e2c8554e
Status: REOPENED → RESOLVED
Closed: 13 years ago → 13 years ago
Resolution: --- → FIXED
Whiteboard: [hardblocker] bounced, needs investigation → [hardblocker]
Assignee | ||
Comment 26•13 years ago
|
||
Yeah, the new test had an onload handler which was firing twice, which it didn't expect. I fixed it to ignore the first onload and everything appears to be fine.
Updated•13 years ago
|
Crash Signature: [@ mozalloc_abort(char const* const) | mozcrt19.dll@0x1327f | mozilla::plugins::PluginModuleParent::StreamCast(_NPP*, _NPStream*) ]
[@ mozalloc_abort(char const* const) | NS_DebugBreak_P ]
Updated•2 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•