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)

x86
All
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9.1

People

(Reporter: shrir, Assigned: peterlubczynski-bugs)

References

()

Details

(Keywords: shockwave, Whiteboard: [seeking review])

Attachments

(7 files)

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!
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
Macromedia recently released Shockwave 8.5. What version of Shockwave are you using or does it even matter?
8.0 was available from their page. Iwill try with 8.5...
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
Blocks: 35916
not sure, the error messages are differrent and yes happens on mac and windows both.
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.
*** Bug 76797 has been marked as a duplicate of this bug. ***
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)
another new error message seen during "tank wors" loading phase : "Macromedia shockwave error Script runtime error, zero parameters expected "
severity: critical since this blocks my testing on macromedia's games page( not marking blocker since workaround sometimes works)
Severity: normal → critical
Peter G: Could you shed some light about these error messages?
Status: NEW → ASSIGNED
Keywords: shockwave
Have alerted Macromedia that we need more information about their error messages. Nominating nsbeta1.
Blocks: 74980
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.
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
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).
i see a random crash too on today's build while loading a game. 77572 is the seperate bug for that.
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.
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.
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?
Depends on: 44216, 58491, 66205
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.
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.
Attached file w32 file from temp folder. (deleted) —
In my earlier comment , I meant " mpb00098.w32 file from temp folder"
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!!!
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?
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
Keywords: 4xp, patch
Blocks: 79195
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 ('*').
Whiteboard: [seeking review]
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.
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); + } +
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?
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.
verbal r= from karanze Can someone super review this?
sr=hyatt
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
This looks fixed..but taking my time to really verify/certify this fix. works great on win/mac now.
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
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: