Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Субплагин FarHints::Folders вызывает AV в ProcessSynchroEventW() #48

Open
VictorVG opened this issue Feb 18, 2018 · 1 comment

Comments

@VictorVG
Copy link

VictorVG commented Feb 18, 2018

Victor_VG, Отправлено:13:25 17-01-2018

При наличии субплагина FarHints::Filders при дисковых операциях возникает AV в ProcessSynchroEventW() на b5128 x64 под Win7 SP1:

Исключительная ситуация

Исключение: 0xC0000005 - EXCEPTION_ACCESS_VIOLATION
Подробности: Memory at 0000000000000008 could not be read
Адрес: 0x0000000003733338 - ProcessSynchroEventW
Источник:
Функция: FarUnhandledExceptionFilter
Модуль: Far.exe

стек

0x0000000003733338 ProcessSynchroEventW
0x000000000373A758 ProcessSynchroEventW
0x000000000373E2A0 ProcessSynchroEventW
0x000000000373C723 ProcessSynchroEventW
0x00000000041C7BFD _dbk_fcall_wrapper
0x000000000373A951 ProcessSynchroEventW
0x000000000373AAF3 ProcessSynchroEventW
0x000000000373ACD8 ProcessSynchroEventW
0x000000000372F040 _dbk_fcall_wrapper
0x0000000003724D0D
0x0000000076FE59CD BaseThreadInitThunk
0x000000007721A561 RtlUserThreadStart[/i]

виноват модуль Folders, но при его удалении зависания в FarHints.dll фиксируемые по статистике использования времени ЦП выводимой Process Hacker - тред FarHinst в таких ситуациях всегда использует на два - три порядка циклов ЦП чем все остальные треды вместе взятые, стали редкостью. Типовое значение ~ 1700000 циклов ЦП использует FarHinmts.dll и <= 12000 циклов ЦП остальные треды которых может быть до 20 шт. Предполагаю, что простая рекомпиляция плагина в очередной версии Дельфи не поможет - надо исправлять логику получения хинтов каталогов - похоже причина сбоев лежит в ней.

Ошибка воспроизводится в т.ч. в версии 1.22, например если на одной панели открыть каталог с файлами в MP4, на другой AVI и попробовать прочитать плагином MediaInfo данные потоков, то в значительном числе случаев при возврате из другого плагина получим зависание. Аналогичный эффект иногда возникает при вызове графического EMenu.

@VictorVG
Copy link
Author

VictorVG commented Feb 22, 2018

Смотрю по старым записям - а корни проблемы тянутся ещё с этого периода - #46 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant