Перезагрузка 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, попытка загрузить любую другую вспышку, которая использует подписанные RSLs, также показывает ошибку 2046 (например,приложение), что означает, что проблема не относится к моему приложению и, скорее всего связано с флэш-кэшем или что-то в этом роде.
5 ответов:
раскрытие информации: я разработчик Flash Player в Adobe. Это вряд ли привлечет много внимания, поскольку это только Linux и своего рода крайний случай: вероятно, раздражает во время работы dev, но очень немногие пользователи будут перезагружать одну и ту же страницу более 16 раз. Это также может быть проблема браузера. Но это, вероятно, мы:) я посмотрю на jira завтра и посмотрю, смогу ли я немного поднять его, но я буду честен в том, что это действительно крайний случай и вряд ли получу много любви. Если вы хотите увеличить свои шансы обязательно добавьте самое простое .swf тестовый случай, который вы можете сделать с ошибкой. Также, пожалуйста, дважды проверьте, если это все еще происходит с последней бета-версии.
Я также просто взглянул на более ранние сообщения об ошибках и сообщения на форуме, вы, вероятно, должны опубликовать это как ошибку Flash Player, а не как Flex.
долго думаю, но это звучит похоже на проблему у нас.... в свойствах проекта-Flex Build Path-Framework Linkage-изменить на "слияние в код". Это устраняет проблему, очень похожую на то, что вы описываете, хотя я хотел бы точно знать, в чем причина. Удачи вам!
tl; dr: нет идеи о причине, отправляя случайную возможность в надежде, что это может дать кому-то еще идею или два для тестирования.
учитывая, что это, кажется, нерешенная ошибка в Adobe issue tracker, маловероятно, что вы получите какой-либо окончательный ответ здесь. Учитывая, что это происходит как в Firefox, так и в Chrome, давайте исключим Ошибки браузера и предположим, что это либо в какой-то общей библиотеке (Flash), либо в OS API (реализация ядра Linux). Комментарий в одном из jira проблемы конкретно упоминает убийство Флэш-процесс исправляет его, так что его Флэш-проблема, а не ошибка ОС.
самое интересное, что я вижу здесь, это ваше наблюдение, что он преуспевает ровно в 16 раз, прежде чем не загружается. Время для некоторых спекуляций здесь, от кого-то, кто никогда не работал над ядром или crypto dev:
с 2048-битным ключом RSA и 32K cache для их хранения, 16 ключей будут соответствовать, прежде чем добавлять еще один сбой - поэтому одна гипотеза заключается в том, что каждый раз этот файл загружается, Flash кэширует подписанное значение (возможно, хэшированную версию) по какой - то причине-возможно, чтобы отслеживать разрешенные и используемые разрешения безопасности и т. д.? Если эта запись не удалена, то после ее заполнения все загрузки файлов завершатся ошибкой, если кэширование подписи является частью ее проверки.
вещи, с которыми вы можете экспериментировать:
- уменьшить размер приложения, чтобы увидеть, если страница может быть перезагружена чаще (как предложено stackfish)
- количество используемых подписанных RSLs и если его мощность / кратна 2 (возможно, другие получают ошибку после загрузки 32 страниц, если они используют половину no. подписанных библиотек?)
- проверьте, есть ли у плагина Linux Flash возможность увеличить кэш учетных данных или что-то еще (или уменьшить его, просто чтобы увидеть, влияет ли он на нет. нагрузок-если это так, может быть связано с проблемой)
Я ожидаю, что на самом деле найти решение, вам придется погрузиться в код загрузки библиотеки и посмотреть на все константы, связанные с загрузкой подписанные библиотеки, которые являются 4, 16 или кратными 16, чтобы увидеть, могут ли они быть ответственными - короче говоря, вряд ли будут разрешимы другими за пределами Flash dev team imho :/
Это поведение может быть связано с утечкой памяти, вызванной либо реализацией Flex, либо плагином браузера. Firefox печально известен тем, что не очищает память в любом случае, и след будет продолжать расти, чем дольше у вас открыто одно и то же окно браузера.
Если вы уменьшите размер вашего приложения flex, чтобы создать что-то очень маленькое, количество раз, когда вы можете перезагрузить страницу, увеличивается?