Jump to content
Korean Random
Kradar

Дублирующиеся вызовы, вылеты и зависание в процессах.

Recommended Posts

Товарищи, мне на доработку дали один препаршиво написанный мод. Мод весьма сложен - GUI в ангаре и в бою, Python, взаимодействие с серверной частью... т.е. переписать с нуля - не вариант. Нужно было просто пофиксить болячки. Часть я пофиксил, но я решительно не понимаю, что делать с основной проблемой - общей нестабильностью мода. Проявляется она в следующем:

  1. После выхода из игры WoT частенько подвисает в процессах, не оставляя в логе ничего подозрительного.
  2. Иногда, WoT падает, опять же не оставляя в логе ничего подозрительного. Обычно, это происходит при выходе из боя в ангар.
  3. Временами, когда Python вызывает какую-то Flash-функцию в GUI ангара, эта функция вызывается дважды. По крайней мере, я делаю такой вывод из лога, в котором вижу повторяющиеся записи. Как правило, это приводит к вылету из WoT, но иногда игра может выдержать 2-3 таких дублирующихся вызова.

Вы стакивались с подобным? Как решали? Известны ли какие-то типовые причины возникновения таких ситуаций или типовые решения?

Share this post


Link to post

Short link
Share on other sites

что за мод такой если не секрет? отображение в бою модулей танка?


(траи-кетчи) поставь в AS в каждой функции.


+ еще птичку дебага постав во флеше в публикации.

к слову тут ответ дождатся не от кого, сколько раз вопрос задавал все жмут делится инфой ;) это я такой добрый только.


ну вот злюки минусанули...


это AtotIK если что  минус поставил. :heh:

Edited by yaotzinv
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

У меня тоже иногда после выхода из игры процесс остаётся "висеть" в ОЗУ. Мне показалось, что такое началось, когда стал пользоваться миникартой от Локастана. Возмжно, ошибаюсь.

 

Насчёт вылетов - возожно, не убираются при выходе из боя и/или ангара созданные модом объекты, потом повторно создаются, накапливаются в памяти... А может я бред написал. :)

Share this post


Link to post

Short link
Share on other sites
(траи-кетчи) поставь в AS в каждой функции.

Пробовал. Не ловится туда ничего. Да и по логам было бы видно, если бы были какие-то необработанные исключения. А тут по логам видно только то, что...

 

когда Python вызывает какую-то Flash-функцию в GUI ангара, эта функция вызывается дважды. По крайней мере, я делаю такой вывод из лога, в котором вижу повторяющиеся записи.

И вот это волнует меня больше всего. Я решительно не понимаю как и почему это происходит.

 

сколько раз вопрос задавал все жмут делится инфой

Думаю, дело в том, что мало у кого она есть. Чем делиться, когда сам толком нифига не понимаешь?

 

возожно, не убираются при выходе из боя и/или ангара созданные модом объекты, потом повторно создаются, накапливаются в памяти... А может я бред написал.

Нет, это вполне логичное предположение. Но как его проверить? 

Edited by Kradar

Share this post


Link to post

Short link
Share on other sites

пока

try
{
....
}
 catch (err:Error)
{
   DebugUtils.LOG_ERROR("бла бла= " + err.getStackTrace());
}

не поставил и не включил дебаг во флеше кое - какие ошибки проскакивали без чего - либо в логе;)

 

----------------------

тут люди знают и молчат ;) они тут еще с 2011 года тусуются, думаете за столько лет ничего не знают? не верю.

Share this post


Link to post

Short link
Share on other sites

 

 

DebugUtils.LOG_ERROR

Это ваш логгер или есть что-то стандартное?

 

 

 

они тут еще с 2011 года тусуются, думаете за столько лет ничего не знают?

А, эти... Этим просто лень снисходить и кому-то что-то объяснять.

Share this post


Link to post

Short link
Share on other sites

оно стандартное почти в каждом файле от WG


это в AS3 а в AS2 вроде его нет или я не знаю где оно,  если у вас AS2 там какие-то заморочки чтоб что то писать в файл.

Share this post


Link to post

Short link
Share on other sites

Кстати...

 

После выхода из игры WoT частенько подвисает в процессах, не оставляя в логе ничего подозрительного.

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

Один или несколько потоков WorldOfTanks.exe ожидают завершение сетевого ввода-вывода.

А через какое-то время в логе появится строчка:

[WARNING] (scripts/client/account_helpers/CustomFilesCache.py, 33): Method "close" takes too much time 0.18799996376

...и процесс завершит работу.

 

Что бы это могло значить?

Edited by Kradar

Share this post


Link to post

Short link
Share on other sites

 

 

У меня тоже иногда после выхода из игры процесс остаётся "висеть" в ОЗУ

 

Именно так я столкнулся с висением в ОЗУ когда работал с GUI.Text и BoundingBox, я их создавал но не удалял. Как результат из игры выходишь, а процесс висит. 

 

Если еще нужна помощь, стукните в скайп: poliroid

 

Подмазывается, шпион, тс держи с ним ухо востро )))))

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Именно так я столкнулся с висением в ОЗУ когда работал с GUI.Text и BoundingBox, я их создавал но не удалял. Как результат из игры выходишь, а процесс висит.

Ну я именно GUI.Text и подозреваю. Некорректно заданными параметрами можно добиться мгновенного и бесследного схлопывания клиента при загрузке. Все моды с такими объектами (свои и чужие), которыми пользуюсь, проверил на предмет удаления. Кроме замерцованного PMOD'а, но его индикатором зума не пользуюсь. А вот миникарта от Локастана хоть и открыта, но там чёрт ногу сломит. :)

Share this post


Link to post

Short link
Share on other sites

 

 

Подмазывается, шпион, тс держи с ним ухо востро )))))

Да я понял уже. Он сегодня доступ к исходникам у меня выпытывал. :)

 

 

 

Именно так я столкнулся с висением в ОЗУ когда работал с GUI.Text и BoundingBox, я их создавал но не удалял. Как результат из игры выходишь, а процесс висит. 
 

У меня, скорее всего, открытый сокет мешается. Позже расскажу.

Share this post


Link to post

Short link
Share on other sites
Да я понял уже. Он сегодня доступ к исходникам у меня выпытывал. :)

 

Да, засранцы встречаются.... вчера с одним юзвером по его просьбе поделился модом, а он в ответ написал, а скинь мне всё что у тебя есть... )))) 

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Подмазывается, шпион, тс держи с ним ухо востро )))))

В своем уме?

Они мне никаким боком не упали =)

Больше 6 месяцев фриланс для танков, больше 10 проектов завершонных, ниодной притензии =)

Кстати твой пай-орион мне понравился, не против в ЛС отпишу, скину код обфусцированный + пару фишек мерца, хочю посмотреть на результаты разбора =)

Share this post


Link to post

Short link
Share on other sites

В своем уме?

Они мне никаким боком не упали =)

Больше 6 месяцев фриланс для танков, больше 10 проектов завершонных, ниодной притензии =)

Кстати твой пай-орион мне понравился, не против в ЛС отпишу, скину код обфусцированный + пару фишек мерца, хочю посмотреть на результаты разбора =)

 

Да шучу я видишь смайлы выше чего-ты ))))

Share this post


Link to post

Short link
Share on other sites

 

 

Если еще нужна помощь, стукните в скайп

 

Пишите тут, нам тоже интересно)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Пишите тут, нам тоже интересно)

Там все трудно =)

Проэкт закритый, надо смотретиь исходники, а заказчик не разрешит.

Share this post


Link to post

Short link
Share on other sites
Там все трудно =)

 

Ничего там трудного, кроме вашей жажды добраться до исходников.

 

Пишите тут, нам тоже интересно)

 

По порядку:

 

После выхода из игры WoT частенько подвисает в процессах, не оставляя в логе ничего подозрительного.

 

Это вызвано тем, что мод не закрывал сокет. При попытке закрыть игру, клиент какое-то время ждет закрытия всех соединений.

 

Иногда, WoT падает, опять же не оставляя в логе ничего подозрительного. Обычно, это происходит при выходе из боя в ангар.

 

В Python-коде было много неиспользуемых импортов т.е. код, который их использовал, давно закомментирован или удален, а импорты остались. Импорты в Python -штука опасная тем, что в импортируемых файлах может быть код прямого исполнения. Забудете почистить импорты - будете долго гадать о причинах всяких странностей.

 

Временами, когда Python вызывает какую-то Flash-функцию в GUI ангара, эта функция вызывается дважды. По крайней мере, я делаю такой вывод из лога, в котором вижу повторяющиеся записи. Как правило, это приводит к вылету из WoT, но иногда игра может выдержать 2-3 таких дублирующихся вызова.

 

Эта странность пропала сама и я не нашел ей объяснения. 

Edited by Kradar
  • Upvote 2
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...