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

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

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, но я хотел бы убедиться и проверить, знает ли кто-нибудь, есть ли что-то, что я должен делать, чтобы предотвратить этот.

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

любая помощь будет высоко оценили. Руй!--2-->

= = UPDATE ==

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

5 ответов


раскрытие информации: я разработчик Flash Player в Adobe. Это вряд ли привлечет много внимания, поскольку это только Linux и вид edge: вероятно, раздражает во время работы 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 раз, прежде чем не загрузиться. Время для некоторых спекуляций здесь, от кого-то, кто никогда не работал над kernel или crypto dev:

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

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

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

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


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

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


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