ChatGPT解决这个技术问题 Extra ChatGPT

Reloading Flash 17 times causes error #2046 and requires a browser restart

I am encountering some very strange behaviour with a Flex 4.1 app I am writing which gets in the way of testing. It seems that I can reload the app 16 times and then on the 17th, the loading process fails with

Error #2046: The loaded file did not have a valid signature

It seems to be consistently happening on the 17th reload on both Firefox 5.0 and Chrome 12. I am not sure if it's relevant, but I am running Flash Player v10.2.159.1 (also happens with 10.3.181.34) on Ubuntu 10.04. Happens with both regular and debugger versions of the player. When I run the app on Windows FF5, it doesn't seem to happen. Closing the current browser window does not seem to fix it. The only way around it is to completely close all browser windows and restart the browser. And then again after 16 successful loads, the 17th fails.

At this point I'm thinking of chalking it as a Linux Flash bug but I'd like to make sure and check if anyone knows if there's something I should be doing to prevent this.

The user from this post seems to have had the same problem but I guess he didn't notice the pattern I have.

Any help will be greatly appreciated. Ruy

== UPDATE ==

I just realized that after my app starts throwing the 2046 error, trying to load any other Flash that uses signed RSLs also shows the 2046 error (e.g. this app), which means the problem is not specific to my app and most likely related to the Flash cache or something of the sort.

By the way, this issue seems to have been asked about on the Adobe forums without a satisfactory response (forums.adobe.com/message/2920142#2920142)
+1 for noticing the 17th refresh pattern. Actually I would give you +100 if I could.
You may want to file a bug report, or add some existing information, over at bugs.adobe.com/jira/secure/IssueNavigator.jspa. Query for "2046" and you'll see a history of the bug, most labelled "Cannot Reproduce". Perhaps your discovery can help them on their way.
Flash on Linux has always been very unreliable and unstable. In my eyes, Adobe does not care about this issue, since there are way to few Linux users out there. This is propably also the reason why they cancelled Linux support for Air. Therefore, to create cross-platform-webapps which also run reliably on Linux, I would not use Flash anymore and instead use HTML5/Javascript. Although that is not always possible, unfortunately...

s
starmole

Disclosure: I am a Flash Player Developer at Adobe. This is unlikely to get much attention as it is Linux only and kind of an edge case: Probably annoying during dev work but very few users will reload the same page more than 16 times. It might also be a browser issue. But it is probably us :) I will look at the jira tomorrow and see if I can bump it up a bit, but I'll be honest in that it is really an edge case and unlikely to get much love. If you want to increase your chances make sure to add the most simple .swf test case you can make to the bug. Also please double check if it still happens with the latest beta. I also just took a look at the earlier bug reports and forum posts, you probably should post this as a Flash Player bug, not as Flex.


According to the comments in the parent, it also happens on windows machines.
J
JTtheGeek

Long shot guess, but it sounds similar to a problem we had.... in the project properties - Flex Build Path - Framework Linkage - change to "merged into code". This fixes a problem very similar to what you are describing, though I wish I knew exactly what the cause is. Good luck!


I did a first trial with this and it worked... will test some more and then come back to post the results... might be a good workaround
A
Alok

tl;dr: No idea on the cause, posting random possibility in hope it might give someone else an idea or two for testing.

Considering that it seems to be an unresolved bug in Adobe issue tracker, its unlikely that you will get any definitive answer here. Considering it occurs on both Firefox & Chrome, let's rule out browser bugs and assume it is in either some common library (Flash) or OS API (Linux kernel implementation). A comment in one of the jira issues specifically mentions killing Flash process fixes it, so its a Flash issue and not OS bug.

The most interesting thing I can see here is your observation that it succeeds for exactly 16 times before failing to load. Time for some speculation here, from someone who's never worked on kernel or crypto dev:

With a 2048 bit RSA key and 32k cache for storing them, 16 keys would fit before adding another one fails - so one conjecture is that each time this file is loaded, Flash is caching the signed value (possibly a hashed version) for some reason - maybe to keep track of allowed & used security permissions etc.? If this entry is not removed, then once it is full all file loads will fail if caching the signature is part of checking it.

Things you can experiment with:

Reduce size of app to see if page can be reloaded more often (as suggested by stackfish)

Count number of signed RSLs used and if its a power/multiple of 2 (maybe others get the error after 32 page loads if they use half the no. of signed libs?)

Check if Linux Flash plugin has some option to increase credentials cache or something (or decrease it, just to see if it impacts the no. of loads - if so, could be related to the problem)

I expect that to actually find a solution, you'd have to dive into the library loading code and look at all constants related to loading signed libs that are 4, 16, or a multiple of 16 to see if they might be responsible - in short, unlikely to be soluble by others outside of Flash dev team imho :/


s
stackfish

This behavior could be related to a memory leak caused either by the Flex implementation, or the browser plugin. Firefox is notorious for not cleaning up memory anyway and the footprint will continue to grow the longer you have the same browser window open.

If you reduce the size of your flex app to produce something very tiny, does the number of times you can reload the page go up?


J
Johan

Error #2046 on win vista, 64 bit machine wit 1000 mb ati radeon videocard problem occurs only in msn video sofar


郭浩东

I meet a same problem when I use ppt on icourse163.org . when I open the course site, I can't see the ppt but I use chrome can do it .there are the same flash version(32.0.0.344),and Then ,I copy the tar.gz file that downloaded from adobe. usr/* to /usr.I solved it.wish can help you .


Hi @郭浩东, I fail to see how your answer solves this 8 years old question. Could you edit your answer to make it a bit clearer or perhaps even move it to the comment if you are in fact reporting a recurrence of the issue?
when you download the flash player . extract it ,you can see the LGPL usr libflashplayer.so license.pdf and readme .I mean ,according to the readme ,you must copy usr to your /usr dir .and libflashplayer.so to firefox dir. I use firefox on manjaro.
you should check that are you allow flash-store meanwhile.
@llan.K ,when I only move the .so file to firefox , I can play flash videos , but I can't play the ppt that our teacher posted. and then ,mv usr extracted to /usr and overwrited .I can play the ppt.wish I can help you.

关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now