Перезагрузка Flash 17 раз вызывает ошибку # 2046 и требует перезапуска браузера

Я встречаю очень странное поведение с приложением Flex 4.1, которое я пишу, которое мешает тестированию. Кажется, что я могу перезагрузить приложение 16 раз, а затем 17-го, процесс загрузки завершился неудачей с помощью

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

Кажется, что это происходит на 17-й перезагрузке как на Firefox 5.0, так и на Chrome 12. Я не уверен, что это актуально, но я запускаю Flash Player v10.2.159.1 (также происходит с 10.3.181.34) на Ubuntu 10,04. Бывает как с обычными, так и с отладчиками. Когда я запускаю приложение в Windows FF5, похоже, что это не происходит. Закрытие текущего окна браузера, похоже, не исправляет его. Единственный способ - полностью закрыть все окна браузера и перезапустить браузер. И снова после 16 успешных нагрузок 17-я неудача.

В этот момент я думаю о том, чтобы помечать его как ошибку Linux Flash, но я хотел бы убедиться и проверить, знает ли кто-нибудь, есть ли что-то, что я должен был сделать, чтобы предотвратить это.

Пользователь из этого сообщения, похоже, имел ту же проблему, но, я думаю, он не заметил шаблон, который у меня есть.

Любая помощь будет принята с благодарностью. Рюи

== UPDATE ==

Я просто понял, что после того, как мое приложение начнет метать ошибку 2046, попытка загрузить любую другую Flash, которая использует подписанные RSL, также показывает ошибку 2046 (например, this приложение), что означает, что проблема не специфична для моего приложения и, скорее всего, связана с флеш-кешем или чем-то вроде этого.

Ответ 1

Раскрытие информации: Я разработчик Flash Player в Adobe. Это вряд ли привлечет большое внимание, так как это только Linux и что-то вроде края: возможно, раздражает во время работы dev, но очень немногие пользователи перезагружают одну и ту же страницу более 16 раз. Это может быть проблема с браузером. Но это, наверное, мы:) Я завтра посмотрю на джиру и посмотрю, смогу ли я немного поднять ее, но я буду честен в том, что это действительно крайний случай и вряд ли получит большую любовь. Если вы хотите увеличить свои шансы, обязательно добавьте самый простой тестовый пример .swf, который вы можете внести в ошибку. Также, пожалуйста, дважды проверьте, все ли происходит с последней бета-версией.
Я также просто посмотрел на более ранние сообщения об ошибках и сообщениях на форуме, вероятно, вы должны опубликовать это как ошибку Flash Player, а не как Flex.

Ответ 2

Угадайте длинный снимок, но он похож на проблему, которая была у нас.... в свойствах проекта - Flex Build Path - Framework Linkage - изменение на "объединено в код". Это фиксирует проблему, очень похожую на то, что вы описываете, хотя мне жаль, что я точно не знаю, в чем причина. Удачи!

Ответ 3

tl; dr: Не знаю причины, отправляя случайную возможность в надежде, что это может дать кому-то еще идею или две для тестирования.

Учитывая, что это, по-видимому, неразрешенная ошибка в программе отслеживания ошибок Adobe, маловероятно, что вы получите окончательный ответ здесь. Учитывая, что это происходит как в Firefox, так и в Chrome, разрешите исключить ошибки браузера и предположите, что это либо какая-то общая библиотека (Flash), либо OS API (реализация ядра Linux). Комментарий в одном из вопросов о jira специально упоминает об убийстве Flash-процесса, исправляет его, поэтому его проблема с Flash, а не ошибка ОС.

Самое интересное, что я вижу здесь, - это ваше наблюдение, что он успевает ровно 16 раз, прежде чем не загрузится. Время для некоторых спекуляций здесь, от кого-то, кто никогда не работал на ядре или криптоваторе:

С 2048-битным ключом RSA и кешем 32k для их хранения 16 ключей будут соответствовать до того, как произойдет сбой другого, поэтому одна гипотеза заключается в том, что каждый раз, когда этот файл загружается, Flash кэширует знаковое значение (возможно, хешированную версию) по какой-то причине - возможно, отслеживать разрешенные и используемые разрешения безопасности и т.д.? Если эта запись не удалена, то, как только она будет заполнена, все загрузки файлов не удастся, если кеширование подписи является частью проверки.

Вещи, которые вы можете поэкспериментировать с:

  • Уменьшить размер приложения, чтобы увидеть, можно ли перезагружать страницу чаще (как предложено stackfish)
  • Подсчитайте количество подписанных RSL и если оно имеет мощность/кратное 2 (возможно, другие получают ошибку после загрузки 32 страниц, если они используют половину числа подписанных libs?)
  • Убедитесь, что плагин Linux Flash имеет некоторую возможность увеличить кэш учетных данных или что-то (или уменьшить его, просто чтобы увидеть, влияет ли оно на количество загрузок - если это так, может быть связано с проблемой).

Я ожидаю, что на самом деле найти решение, вам нужно будет погрузиться в код загрузки библиотеки и посмотреть на все константы, связанные с загрузкой подписанных libs, которые составляют 4, 16 или несколько из 16, чтобы увидеть, могут ли они быть ответственный - короче говоря, вряд ли будет разрешен другими людьми вне команды Flash dev imho:/

Ответ 4

Такое поведение может быть связано с утечкой памяти, вызванной либо реализацией Flex, либо плагином браузера. Firefox, как известно, не очищает память в любом случае, а след будет продолжать расти, чем дольше вы откроете окно браузера.

Если вы уменьшите размер своего приложения flex, чтобы создать что-то очень маленькое, количество раз, когда вы можете перезагрузить страницу, увеличивается?

Ответ 5

Ошибка # 2046 на win vista, 64-битная машина с 1000 МБ ati radeon videocard проблема возникает только в msn video sofar