2 случая с логами описаны в рамках другой заявки https://turboconf.ru/Tasks/9028
Свежий случай при вызове команды "Процедуры и функции"
Ссылка скрыта
Также замечал такое при вызове команды "Служебные сообщения".
Кажется это начало происходить недавно.
#1, 25 февраля 2024 14:02
Я ничего не менял, связанного с этим. Вот предыдущая версия 6.0.8805.32566, проверь будет ли возникать на ней.
https://disk.yandex.ru/d/ay0Wg6IBTsxSxg
#2, 25 февраля 2024 20:37
Снова случилось при вызове команды "Процедуры и функции"
Ссылка скрыта
#3, 25 февраля 2024 21:24
(2) tormozit, версия новая, нужно проверить на предыдущей 6.0.8805.32566, на которой предположительно проблем не было.
#4, 25 февраля 2024 21:32
Также в логе отсутствует информация по вызову команды "Процедуры и функции".
#5, 25 февраля 2024 21:55
(4) bolsun, тогда ищи вызов команды "Служебные сообщения"
#6, ред. 25 февраля 2024 22:35
Единственная зацепка, которую я пока заметил - это перед каждым подвисанием выполняется Alt+S, и СохранитьМодульВФайл, возможно как-то связано с этим. Возможно были какие-то правки в этих местах, еще раз я ничего такого не менял несколько недель. В последней версии не было никах изменений, которые могли повлиять.
Нужно тестировать на предыдущей версии, если в ней возникнет подвисание, значит - причина не в версии ТК, а внешняя.
P.S. еще в логах после Alt+S заметил нажатие Ctrl+Shif+R. Обрати внимание в следующий раз нажимал ли такие комбинации.
#7, 25 февраля 2024 22:38
Еще в одном логе видел закрытие DDE Server Window, но в других вроде не было.
Может как-то связано с обработкой этого окна, но не похоже.
#8, ред. 25 февраля 2024 22:56
Добавил предшествующие логи сразу после такого же события из соседней темы
Ссылка скрыта
Ссылка скрыта
(7) bolsun, С закрытием этого окна врядли связано, т.к. проблема возникала только с родными командами Турбокноф - открытие окон "Служебные сообщения" и "Процедуры и функции" Т.е. мой скрипт по логике там вообще не участвовал.
Кстати я за сегодня не видел уведомления про закрытие окна DDE и самого окна тоже. Вероятно как я уже неоднократно предполагал, иногда Турбоконф перестает показывать уведомления. И вот это возможно связано с рассматриваемой здесь задержкой, т.к. по крайней мере для окна "Служебные сообщения" она выглядит так:
#9, ред. 25 февраля 2024 23:12
(6) bolsun, Alt+S я нажимаю только в базе редактора скрипта. Поэтому с этим не может быть связано. Ctrl+Shif+R умышленно я не нажимал во всех случаях (разве что где то один раз случайно нажал).
#10, ред. 25 февраля 2024 23:09
(8) tormozit, с самим закрытием может и не связано, а с уведомлением о его закрытии вполне может быть связано.
В двух логах из четырех, зависанию предшествовало закрытие окна DDE.
Затем следовала ошибка
[25.02.24 10:01:23:451] Закрыто окно DDE Server Window
[25.02.24 10:01:23:451] Warning: TurboConf: Закрыто окно DDE Server Window
[25.02.24 10:01:32:264] System.Runtime.InteropServices.COMException (0x80131505): Время ожидания операции истекло. (Исключение из HRESULT: 0x80131505)
в UIAutomationClient.IUIAutomation.GetFocusedElementBuildCache(IUIAutomationCacheRequest cacheRequest)
в TurboConf.Core.TurboAPI.TurboApi.GetUIAutomationCachedInfo(IntPtr fg, IUIAutomationElement elem, UIAutoFlags flags)
Кстати затем долгая вставка.
[25.02.24 10:01:33:502] Paste time overall: 5266ms
[25.02.24 10:01:33:503] Вставка блока 5267мс
#11, ред. 25 февраля 2024 23:10
Либо все таки связано именно с закрытием окна, а не с уведомлением.
Это единственная правка в ядре в новой версии.
#12, 25 февраля 2024 23:11
Сделаю версию без уведомления, но с закрытием DDE. событие будет писаться в окно служебных сообщений.
#13, 25 февраля 2024 23:14
Интересно еще, закрытие DDE возможно фокус перехватывает и помещает из конфигуратора куда-то (может в уведомление, или в клиентское приложение). Тоже один из вариантов
#14, ред. 25 февраля 2024 23:23
(12) bolsun, да, это уведомление же нужно было только, чтобы понять что ловушка DDE окна срабатывает. Я уже подтвердил ее срабатывание. С момента ее активации я не видел DDE окна, хотя работал с со скриптом достаточно активно.
Еще заметил, что пока я передавал PID в оба метода Турбоконфа (ЗавершитьВызовВнешнегоОкнаАсинх() и НачатьВызовВнешнегоОкнаАсинх()), я видел окно уведомление. Но затем я в целях эксперимента отключил его передачу в ЗавершитьВызовВнешнегоОкнаАсинх(). Кажется после этого я не видел окна этого уведомления. Но в логе после этого изменения есть как минимум 2 срабатывания ловушки.
#15, 25 февраля 2024 23:24
(14) tormozit, pid обязательно нужно передавать.
Есть еще у меня гипотеза, что окно DDE не закрывается сразу, а ТК продолжает его обнаруживать и продолжает слать уведомления о закрытии, чем переполняет очередь уведомлений. Т.к. закрытие происходит в цикле, хоть и с задержкой.
Но это так, запись мыслей для дальнейшего анализа.
#16, 25 февраля 2024 23:28
Если pid не передать, метод поиска и закрытия DDE вызван не будет.
#17, 25 февраля 2024 23:29
(16) bolsun, ну я этого и хотел. Проверить что достаточно только в первый метод передать. Пока получается что результат - да.
#18, 25 февраля 2024 23:31
https://disk.yandex.ru/d/XKCz9ijzgtoO1w
версия без всплывающего уведомления о закрытии DDE
#19, 25 февраля 2024 23:35
Версию с уведомлением оставлю пока в релизе, проверим как раз, будут ли такие проблемы у пользователей ИР Адаптера на новой версии.
#20, 26 февраля 2024 17:05
(18) bolsun, на этой версии задержка больше не возникает?
#21, 26 февраля 2024 22:37
Появился новый подозреваемый в этих задержках. У меня была запущена программа Inspect Object (Microsoft) https://turboconf.ru/Tasks/9222
#22, 26 февраля 2024 22:43
(21) tormozit, это вполне объясняет эти задержки, с полным отсутствием в логе информациии на время подвисания на 20 секунд (скорее всего таймаут установленный в Inspect).
#23, 26 февраля 2024 22:48
Да. Достаточно вероятно что причина в этом. Поэтому закрываю заявку.
tormozit изменил статус на Закрыто
#24, 26 февраля 2024 22:49
Рекомендую проверять наличие этой программы и сообщать о ней в логе при регистрации аномально большой длительности операции.
#25, ред. 26 февраля 2024 23:12
(24) tormozit, с точки зрения ТурбоКонф не было никакой длительной операции, он просто подвис на 20 сек и продолжил работу.
Когда у меня начинает что-то глючить с ТК, я первым делом смотрю не открыт ли Inspect. Но я уже привык его сразу закрывать, как только посмотрел данные.
Вообще вероятность ее встретить была настолько низкая...
#26, ред. 26 февраля 2024 23:15
Inspect еще может подвесить напрочь платформу и без ТК на легаси системах. Т.к. он запрашивает кэшируемые данные, а платформа при этом зависает из-за бага.
#27, 26 февраля 2024 23:14
Тогда просто проверять каждые 5 минут. Думаю это не сильно засорит лог. Тем более что ею редко пользуются.
#28, 26 февраля 2024 23:17
(27) tormozit, можно проверять ее наличие при снятии лога наряду с PuntoSwitcher и т.д. Это было бы полезно.