web-dev-qa-db-ja.com

Flashを17回リロードすると、エラー#2046が発生し、ブラウザを再起動する必要があります

私が書いているFlex4.1アプリで、テストの邪魔になる非常に奇妙な動作に遭遇しています。アプリを16回リロードできるようですが、17日には、ロードプロセスが次のように失敗します。

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

Firefox5.0とChrome 12.の両方で、17回目のリロードで一貫して発生しているようです。関連性があるかどうかはわかりませんが、Flash Player v10.2.159.1を実行しています( 10.3.181.34)Ubuntu 10.04で。プレーヤーの通常バージョンとデバッガーバージョンの両方で発生します。WindowsFF5でアプリを実行すると、発生しないようです。現在のブラウザーウィンドウを閉じても、修正されないようです。これを回避するには、すべてのブラウザウィンドウを完全に閉じてブラウザを再起動します。その後、16回の読み込みが成功すると、17回目は失敗します。

この時点で、Linux Flashのバグとしてチョークで書くことを考えていますが、これを防ぐために何かすべきことがあるかどうかを誰かが知っているかどうかを確認して確認したいと思います。

この投稿 のユーザーも同じ問題を抱えているようですが、私が持っているパターンに気づかなかったと思います。

どんな助けでも大歓迎です。リュイ

==更新==

アプリが2046エラーをスローし始めた後、署名付きRSLを使用する他のFlashを読み込もうとすると、2046エラーも表示されることに気付きました(例: このアプリ )。これは、問題が自分に固有のものではないことを意味します。アプリであり、おそらくフラッシュキャッシュまたはある種のものに関連しています。

60
Ruy Diaz

開示:私はアドビのFlashPlayer開発者です。 Linuxのみであり、一種のEdgeケースであるため、これがあまり注目される可能性は低いです。開発作業中におそらく煩わしいですが、同じページを16回以上リロードするユーザーはほとんどいません。ブラウザの問題でもある可能性があります。しかし、おそらく私たちです:)明日、jiraを見て、少し上げることができるかどうかを確認しますが、それは本当にEdgeのケースであり、あまり愛される可能性が低いという点で正直になります。チャンスを増やしたい場合は、バグに作成できる最も単純な.swfテストケースを必ず追加してください。また、最新のベータ版でも引き続き発生するかどうかを再確認してください。
以前のバグレポートとフォーラムの投稿も確認しました。おそらく、これをFlexではなくFlashPlayerのバグとして投稿する必要があります。

10
starmole

tl; dr:原因についての考えはありません。他の誰かにテストのアイデアを与えることを期待して、ランダムな可能性を投稿します。

これはAdobeIssue Trackerの未解決のバグのように思われることを考えると、ここで決定的な答えが得られる可能性はほとんどありません。 FirefoxとChromeの両方で発生することを考慮して、ブラウザのバグを除外し、いくつかの共通ライブラリ(Flash)またはOS API(Linuxカーネル実装)のいずれかにあると仮定しましょう。 jiraの問題の1つにあるコメントでは、Flashプロセスを強制終了すると修正されると具体的に言及されているため、OSのバグではなくFlashの問題です。

ここで私が見ることができる最も興味深いことは、ロードに失敗する前に正確に16回成功するというあなたの観察です。カーネルや暗号開発に携わったことがない人からの憶測の時間です:

2048ビットのRSAキーとそれらを格納するための32kキャッシュを使用すると、16個のキーが収まり、別のキーを追加できなくなります。したがって、このファイルが読み込まれるたびに、Flashが何らかの理由で署名された値(おそらくハッシュバージョン)をキャッシュしていると推測されます-許可および使用されているセキュリティ権限などを追跡するためですか?このエントリが削除されていない場合、署名のキャッシュがチェックの一部であると、エントリがいっぱいになるとすべてのファイルの読み込みが失敗します。

実験できるもの:

  • アプリのサイズを小さくして、ページをより頻繁にリロードできるかどうかを確認します(stackfishの提案による)
  • 使用された署名付きRSLの数をカウントし、その累乗/倍数の場合(署名付きライブラリの数の半分を使用している場合、32ページのロード後にエラーが発生する可能性がありますか?)
  • Linux Flashプラグインに資格情報キャッシュなどを増やすオプションがあるかどうかを確認します(または、ロード数に影響するかどうかを確認するために減らすか、影響がある場合は問題に関連している可能性があります)

実際に解決策を見つけるには、ライブラリの読み込みコードに飛び込んで、4、16、または16の倍数である署名付きライブラリの読み込みに関連するすべての定数を調べて、それらが原因であるかどうかを確認する必要があると思います。短く、Flash開発チームimho以外の人が解決する可能性は低いです:/

1
Alok

ロングショットの推測ですが、プロジェクトのプロパティ-Flexビルドパス-フレームワークリンケージ-で「コードにマージ」に変更された問題に似ているように聞こえます。これはあなたが説明しているものと非常によく似た問題を修正しますが、原因が何であるかを正確に知っていればいいのですが。幸運を!

1
JTtheGeek

この動作は、Flexの実装またはブラウザプラグインのいずれかによって引き起こされたメモリリークに関連している可能性があります。 Firefoxはとにかくメモリをクリーンアップしないことで有名であり、同じブラウザウィンドウを開いている時間が長くなるほどフットプリントは拡大し続けます。

フレックスアプリのサイズを小さくして非常に小さなものを作成すると、ページをリロードできる回数が増えますか?

0
stackfish