![]() |
Ошибка #1502 (Выполнение сценария превысило 15 секунд)
Добрый день.
Анализируя логи пользователей вижу периодически, что у людей вылазит Uncatched Error #1502 (Выполнение сценария превысило 15 секунд). Никаких бесконечных циклов вроде у меня нет. Что может быть причиной ошибки и как ее отловить? Вылазит эта ошибка буквально на пустом месте. |
Цитата:
Например кодирование/декодирование изображения. |
никаких подобных процессов в том временном интервале когда возникают такие ошибки вроде как нет. Есть ли способ конкретно выяснить какой код так долго выполняется?
|
предлагаю показать код
|
Цитата:
|
Привет, такая же проблема http://prntscr.com/6hel92 . Долго пытался бороться, но выследить так и не смог. Вознкиают иногда в функциях, в которых всего 2 строки. Есть предположение, что возникают при эмите событий в одном из хендлеров. Тоже заинтересован в разрешении проблемы.
|
Возможно рекурсия происходит, переполнение стека.
Обычно если натыкался на такие мистические проблемы, потом все равно обнаруживалось, что никакой мистики нет, и проблема в коде. Не видя кода тут больше ничего сказать нельзя |
Ошибка переполнения стека отдельная. Стек ни при чем.
|
сейчас опять попробовал проанализировать откуда может взяться эта ошибка... смотрю лог и не вижу никакого смысла в том что я вижу:
1525.399 Network game: sync passed 1525.566 Network recieved: CMD_RETRANSLATE 1525.566 MSG_WATCH 1525.566 TIMER START 1525.881 Lobby onClientCommand, 5 1526.148 Network recieved: CMD_RETRANSLATE 1526.148 MSG_SCORE 1526.148 Network: recieved CL_KICK_STARTED, 26081, 15 1526.998 Network recieved: CMD_RETRANSLATE 1526.998 MSG_CHANGE_BALL 1527.319 catched uncaught error 1527.320 SocketClient send, 255 1527.320 SocketClient send complete 1527.320 uncaught error: Error: #1502 слева это секунды с момента начала записи лога... я вижу что код выполняется.. все впорядке... 1527.320 выполнилась отправка очередного пакета по сокету и сразу после этого шибка того что некий сценарий больше 15 секунд выполняется... Какой такой сценарий мог выполняться 15 секунд если в ту же милисекунду когда выскочила ошибка выполнялся другой код и он был успешно выполнен. У кого-нибудь есть идеи? |
Цитата:
|
лично у меня эта ошибка не возникает никогда.. она возникает иногда у пользователей моего приложения, так что проверить скаутом нет возможности.
|
Присоединяюсь у вопросу.Думал такое невозможно,однако вижу, что по всему коду выскакивают такие гадости, и что характерно, выскакивают не в действительно ресурсоемких местах, а на всякой мелочевке.При этом совершенно не понятно как ведет себя флэшка.Видит ли юзер диалог с предложением грохнуть скрипт. Гневных фидбэков пока не поступало.
|
1526.998 MSG_CHANGE_BALL
1527.319 catched uncaught error 1527.320 SocketClient send, 255 1527.320 SocketClient send complete 1527.320 uncaught error: Error: #1502 тут без вариантов - проблема в коде я бы, не найдя сходу причин для #1502, попытался бы понять, что за ошибка приходит чуть раньше? может, она провоцирует #1502 |
Цитата:
1. Зависимость идет от устройства. Но последние сборки, очень редко когда вызывают какие-то накладные условия ( если брать ФлешПлеер ), скорее всего это не причина. Первоначальным этапом фикса будет, подпись на uncatcherror и удалённое логирование с информацией об ОС, плеере и т.д. Так же проверять внедрение флеша в страницу, проверку версии плеера. 2. Зависимость идет от пользователя. Так как вы говорите о фидбэках, могу предположить что апп, связывается с к какой-нить АПИ, и возможно из-за не хватки прав доступа, не поститься какая-нить синхронная "хрень" ( извините что я так о вашем ПО ). Вообще м пересмотреть все подключения, если таковы имеються Решение дописать статический класс, с статус лейблами. По типу Код AS3:
Добавлено через 6 минут Цитата:
Добавлено через 7 минут Цитата:
либо вы удаляете объект, а TweenLite его еще пытается получить. С 99% вероятностью проблема с отображением, а скорее всего с его отсутствием Добавлено через 28 минут да и возможно, так как вы работаете с SocketClient, проанализировать работу СокетМенеджера. Чё вы там получаете, каким образом устроен прием данных, конструкции типа Код AS3:
|
Цитата:
Цитата:
Цитата:
Добавлено через 2 часа 22 минуты ну это вообще ни в какие ворота: Цитата:
|
в своем случае решил пока попробовать игнорировать эту #1502 ошибку. При отлове uncaught error с этим кодом я просто его игнорирую и смотрю что будет дальше. И что удивительно - ничего наблюдаемого не происходит. Приложение продолжает работать без каких-либо сбоев.
|
Цитата:
2 illusion21,а бильярд в твоей подписи- твоя поделка? Выглядит сильно. |
Цитата:
|
вот собрал за полтора часа статистику у кого оно выскакивает:
Цитата:
Добавлено через 38 минут illusion21,мне кажется,в твоем случае ,может быть, оно выскакивает, когда юзер пытается закрыть окошко с игрой.Выскакивает алерт с подтверждением и пока юзер на нем тупит наступает таймаут(если изначально речь об этом бильярде шла).Хотя, учитывая что огонь в камине в это время продолжает гореть, нельзя сказать, что в флэшке все умерло |
Цитата:
Цитата:
|
Добавлено через 33 секунды
Цитата:
По таймингу в логах я все же не могу понять, выше писали что ошибка могла произойти раньше (да и смотреть нужно не позже 1512.320 все что позже, по действующим законам нашей планеты, не подходит под больше 15 сек). Так если бы в пределах 1512 что-то завесило бы процесс, то весь остальной код дальше бы просто не мог вообще выполняться, насколько я понимаю.. а он успешно выполнялся... Насколько я понимаю, у флэши нет многопоточности. Если какой-то процесс завис бы на 15 секунд то зависло бы все, никакие евенты не срабатывали бы, никакие функции не выполнялись на протяжении этих самых 15 секунд. Или как?[/quote] |
Нет, наглядный пример
Код AS3:
|
Цитата:
|
Цитата:
Как я уже писал Цитата:
Цитата:
Код AS3:
Код AS3:
Код AS3:
или с предварительной резервацией имён модулей Код AS3:
ну и для ленивых Код AS3:
история Код AS3:
|
извините за тупость... а что этот пример делает? Что он должен показать?
|
Вы можете отслеживать выполнился ли код, от участка
Код AS3:
Код AS3:
Цитата:
и посмотреть какие участки выполнились, а какие нет. Тем самым обнаружить, где произошло зависание. Всё прошивать я думаю, не стоит, но как минимум путём дробления на половины, можно будет найти тот кусок кода, который ушёл в бесконечность. |
уф... в проекте несколько сотен классов и несчетное количество функций.... если бы хотябы примерно знать где искать, то можно было бы и попилить, а так как ошибка эта выскакивает достаточно редко то можно до второго пришествия христа ее так вылавливать... по крайней мере в моем случае. Кому-то может и поможет.
|
| Часовой пояс GMT +4, время: 22:42. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.