Closed
Bug 76771
Opened 24 years ago
Closed 24 years ago
Shockwave 3D Goove engine fails to install, gives error initially, game works after reloading frame(number of times)
Categories
(Core Graveyard :: Plug-ins, defect, P1)
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla0.9.1
People
(Reporter: shrir, Assigned: peterlubczynski-bugs)
References
()
Details
(Keywords: shockwave, Whiteboard: [seeking review])
Attachments
(7 files)
457.64 KB,
application/octet-stream
|
Details | |
457.64 KB,
text/plain
|
Details | |
5.22 KB,
patch
|
Details | Diff | Splinter Review | |
336.07 KB,
application/octet-stream
|
Details | |
5.44 KB,
patch
|
Details | Diff | Splinter Review | |
4.88 KB,
patch
|
Details | Diff | Splinter Review | |
124.49 KB,
text/html
|
Details |
have seen this error on shockwave games page for deer hunter, inklink ,alien x
steps:
Copy the 4.x shockwave plugin to 6.x folder
go to shockwave.com site
click on Deer Hunter in the games panel top 5 list on the right
The game loads 100% and then a error message dialog appears saying
"Sorry, the movie is damaged member 13 Player -cast2 is corrupted"
Pressing OK in this dialog and reloading the frame actually loads the game again
and works fine..strange!
Reporter | ||
Comment 1•24 years ago
|
||
on windows, the error message that pops up is "Script Error. Continue?" .
Clicking YES does not do anything and the dialog continues to come up. Clicking
NO closes the dialog .Reloading the frame makes the game work fine..
OS: Mac System 9.x → All
Assignee | ||
Comment 2•24 years ago
|
||
Macromedia recently released Shockwave 8.5. What version of Shockwave are you
using or does it even matter?
Reporter | ||
Comment 3•24 years ago
|
||
8.0 was available from their page. Iwill try with 8.5...
Assignee | ||
Comment 4•24 years ago
|
||
Shrir,
Is this the SAME as [Bug 76797] New: Shockwave 3D Goove engine fails to install
or is this a different issue. Looks like a slightly different error message and
this happens on all platforms?
Meredith,
Can you point out what causes this error message:
"Sorry, the movie is damaged member 13 Player -cast2 is corrupted"
Do you know what the bug is in our browser?
Thanks!
Setting to P1.
Priority: -- → P1
Reporter | ||
Comment 5•24 years ago
|
||
not sure, the error messages are differrent and yes happens on mac and windows
both.
Reporter | ||
Comment 6•24 years ago
|
||
tried with 8.5 on both platforms and this problem is seen sometimes (sometimes a
game works, "photo hunt"). I have to reload or start again from the beginnig to
get it working when it gives the error message.
Reporter | ||
Comment 8•24 years ago
|
||
rephrasing summary
Summary: director player gives error initially, game works after reloading frame → Shockwave 3D Goove engine fails to install, gives error initially, game works after reloading frame(number of times)
Reporter | ||
Comment 9•24 years ago
|
||
another new error message seen during "tank wors" loading phase :
"Macromedia shockwave error Script runtime error, zero parameters expected "
Reporter | ||
Comment 10•24 years ago
|
||
severity: critical since this blocks my testing on macromedia's games page( not
marking blocker since workaround sometimes works)
Severity: normal → critical
Assignee | ||
Comment 11•24 years ago
|
||
Peter G:
Could you shed some light about these error messages?
Status: NEW → ASSIGNED
Keywords: shockwave
Comment 12•24 years ago
|
||
Have alerted Macromedia that we need more information about their error messages.
Nominating nsbeta1.
Keywords: mozilla0.9.1,
nsbeta1
Comment 13•24 years ago
|
||
Using mozilla build 2001050104 and the public shockwave 8.5 (downloaded from
shockwave.com today), with Tank Wars, I get to the screen which
says "Downloading 3D Groove", and an alert with the message "Xtra package
download error 125" appears. If I reload, I then get to the same point and a
verisign dialog for the xtras being downloaded appears. It then seems to hang,
but if I reload again, it works, and the game can be played.
Not very useful info, so I deleted the folder of c:\winnt\system32
\macromed\shockwave 8\xtras\download (where download xtras end up), and tried
again with a debug version of shockwave. The final step of verisigning the file
is filing. My best guess is we are processing the file as complete before the
final bits of it have been written. Peter L tells me there's a newer build
fixing some other problems, so I'll try getting it before going further.
Assignee | ||
Comment 14•24 years ago
|
||
Peter G:
Eww...this problem wouldn't be fixed in this morning's build.
What's makes your "guess is we are processing the file as complete before the
final bits of it have been written"?
Target Milestone: --- → mozilla0.9.1
Comment 15•24 years ago
|
||
Comment 16•24 years ago
|
||
My best guess in an earlier comment today was wrong. NPN_GetUrlNotify
(instance, "http://download.shockwave.com/pub/shockwave/xtras/3DGroove/3DGroove1
7.w32", NULL, notifyData) is used to download the verisigned package contains
the 3D Groove Xtras. The stream spawned from the request downloads the correct
number of bytes (468,623), but the data is corrupted (and hence, verisign-ing
the file fails). I've attached the correct version of the file (downloaded
using NS4.7, and then IE5.5, gave files which are identical).
Reporter | ||
Comment 17•24 years ago
|
||
i see a random crash too on today's build while loading a game. 77572 is the
seperate bug for that.
Assignee | ||
Comment 18•24 years ago
|
||
Per a converation in e-mail with our QA and Macromedia QA: Macromedia says their
server isn't handing back the correct certificate for Netscape 6 so that is why
the verisign is failing and probably the cause of the other "random" errors
shockwave gives. Let's make sure the server is handing us back the right data
first.
Comment 19•24 years ago
|
||
Verisign-ing is not the problem with Tank Wars.
As I said in my comment of 2001-05-01 17:58, if the groove xtras are not
installed, shockwave will download a verisigned package from
http://download.shockwave.com/pub/shockwave/xtras/3DGroove/3DGroove17.w32. The
temp file created by this download (look for c:\temp\*.w32) is not the same
file (I've attached a correct version of the file, but you can also navigate to
the url with mozilla, and then choose 'Save As ...' from the menu). As mozilla
can correctly download the file, I presume something is wrong with the NPP_Write
() code.
Assignee | ||
Comment 20•24 years ago
|
||
I think I may have found the problem. Check out:
bug 66205
bug 44216
bug 58491
They are probably all dups of each other and probably all the ROOT cause of this
bug.
However, I tried looking at the *.w32 file(s) downloaded to %TEMP% before
signing and they match your attched file according to Windiff. In fact, I tried
downloading directly via the link and with IE and they ALL produced the SAME
file probably because this isn't failing.
In order for me to fix this, I need to be able to reproduce it or the problem in
the other bugs.
Looks like michaelp and av were in that code last. Can you comment?
Assignee | ||
Comment 21•24 years ago
|
||
Shrir, can you try to reproduce THIS bug on 3D groove install? Try on Mac too.
Tankwars should install 3D groove. It seems to be WFM in today's pull & build
but that doesn't mean the problem is solved. I think the NPP_Write() issue is
the larger problem at hand. If "3D groove" install does fail for you please
attach to this bug the *.w32 file found in your %TEMP% folder, if any.
I relaize there may be other errors like the ones in bug 77572. I looking for a
reproducable testcase.
Reporter | ||
Comment 22•24 years ago
|
||
Deleted the contents from "GrooveAlliance" folder under Win32 system folder.
Then tried the following:
Loaded tank wars
3D Groove installation "progress bar" went to 80%, then I got a Script error
dialog. I clicked 'NO'Am attaching the mpb00098.w32 file (458kb) from under my
win32 box.and closed it.
The page blanks out and no movie loads.
However, after hitting RELOAD, the game loaded and worked fine (that means 3d
groove installed properly?)
Am attaching the mpb00098.w32 file (458kb) from under my win32 box system
folder.
will try on mac and comment.
Reporter | ||
Comment 23•24 years ago
|
||
Reporter | ||
Comment 24•24 years ago
|
||
In my earlier comment , I meant " mpb00098.w32 file from temp folder"
Assignee | ||
Comment 25•24 years ago
|
||
Ahh..Shrirang.....I think your attched file shows exactly the symptoms Peter G
describes. Perhaps this is another issue only showing up in optimized builds. I
will build an optmized build and try this again. Thanks!!!
Assignee | ||
Comment 26•24 years ago
|
||
Ahh...I think I have found it, BUT, I ***really*** need a simplified testcase
that requests to read chunks that are larger than necko hands off in one
OnDataAvaiable. See bug 66205 as that's the real bug here and this bug is just
describing it's manisfistations.
Here's the problem, I think. |buffer| is a local variable to
ns4xPluginStreamListener::OnDataAvailable (in ns4xPluginInstance.cpp). The
plugin expects the same buffer on subsequent Write() calls. Well, we blow away
the buffer on each call because it's local. This should be a member variable and
accumulate.
Question: how big of a buffer to make? cc:ing Brian Nesse. How did 4.x handle
this?
For large buffers this can be HUGE. Do we really need to allocate all of
this in the heap? Isn't there any way I can get a pointer to the begining of the
whole data stream that directly feeds OnDataAvailable? Darin?
Assignee | ||
Comment 27•24 years ago
|
||
Assignee | ||
Comment 28•24 years ago
|
||
Okay, here's the problem and a possible solution. First, use this URL to get
behind Shockwave.com Netscape 6 blockage:
http://www.shockwave.com/bin/shockwave/entry.jsp?skip=net6
Try this patch out. It seemed to have resolved ALL the errors on the Shockwave
site and 3D Groove downloaded and installed correctly on the first try.
The problem here (and elsewhere, with other plugins, I think) was that the
buffer pointer we were passing to the plugin was changing between calls to
Write(). Instead of re-using, we were re-allocating. Strictly looking at the API
docs, I couldn't find anything that said the buffer must be always at the same
address. However, I bet it's a peformance improvement not to malloc on
every burst of data (however, I don't notice on my P4). Shockwave, however, and
I think other plugins as well, REQUIRE that the buffer always point to the same
place, just as in 4.x. This causes a problem when the buffer is larger than one
that can fit in one call to OnDataAvailable. This is probably why it was hard to
reproduce on my comptuer at home as it's much faster than the one at work.
So, instead of allocating memory in OnDataAvail(), I do it when the stream is
created, unless it gets called before OnStartBinding(). Here's my problem: I'm
currently hard-coding this "buffer" size at 100,000 which probably isn't the
best of things. I think I need to know what's the maximum (length) of data that
OnDataAvailable can possibly return so I don't get a buffer overrun. Gagan?
If that's not possible, perhaps I can break up the input->Read calls in chunks
by using a loop and sort of pre-buffer. Still a question, how large of a buffer
to make?
The second attachment is a copy of npspy.dll which was useful in debugging. The
log output of 4.x to the output of Mozilla is the same with my patch applied
when visiting:
http://poppy.macromedia.com/netlanski/files/Movie/bigstreamdcrDoc.html
...because it returned a BIG stream that would need to be broken up.
Andrei wrote npspy.dll. To use it, rename it to npnull32.dll and rename the
plugin you want to spy on with two zero's in front: npdsw32.dll -> 00npdsw32.dll
Assignee | ||
Comment 29•24 years ago
|
||
Comment 30•24 years ago
|
||
No need to rename the spy plugin, just get rid of npnull32.dll to avoid
conflicts as the spy plugin reports the same mime type ('*').
Assignee | ||
Comment 31•24 years ago
|
||
Assignee | ||
Updated•24 years ago
|
Whiteboard: [seeking review]
Assignee | ||
Comment 32•24 years ago
|
||
Left my printf in there. I'll take it out. I found that OnDataAvail doesn't
usually get a length larger than 16k in almost every case. So, that's what I
made the buffer and then used simple recursion to ensure we didn't do a overrun.
Seeking reviews for this latest patch which should completely fix this and maybe
some of the dependants.
Assignee | ||
Comment 33•24 years ago
|
||
Eek! That may leak for large buffers. Move this below the FREE's:
+ if (lefttoread > 0) // if we have more to read in this pass, do it
+ {
+ OnDataAvailable(pluginInfo, input, lefttoread);
+ }
+
Comment 34•24 years ago
|
||
This is a great thing to do, Peter. Will probably cause a chain reaction of
WFMs. I'll take a closer look tomorrow, but now -- why did you split
if(!mInst || !mInst->IsStarted()) ? For ability to put a breakpoint?
Assignee | ||
Comment 35•24 years ago
|
||
I'm sorry, I knew that was going to raise questions. I was working on puttingin
ASSERTIONS and that as one of the places I needed set a breakpoint. It turned
out to be a red hering so it doesn't if that last IF is split up or combined.
Sorry for the confusion. I'll attached a clean up up patch for approval to
check-in as soon as possible as I feel same as Andrei, this will convert a bunch
of WFM bugs.
Assignee | ||
Comment 36•24 years ago
|
||
Assignee | ||
Comment 37•24 years ago
|
||
Assignee | ||
Comment 38•24 years ago
|
||
verbal r= from karanze
Can someone super review this?
Comment 39•24 years ago
|
||
sr=hyatt
Assignee | ||
Comment 40•24 years ago
|
||
Patch checked in, marking FIXED.
/cvsroot/mozilla/modules/plugin/nglsrc/ns4xPluginInstance.cpp,v <--
ns4xPluginInstance.cpp
new revision: 1.50; previous revision: 1.49
Please re-test all dups, blockers as I feel this may have fixed them somewhat.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 41•24 years ago
|
||
This looks fixed..but taking my time to really verify/certify this fix. works
great on win/mac now.
Reporter | ||
Comment 42•24 years ago
|
||
marking this verified. 3D groove gets downlaoded fine on win/mac trunk. Isee no
crashers testing dcr;swf movies on shockwave.com site.
Status: RESOLVED → VERIFIED
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
•