Far иногда падает при извлечении образов

Здесь можно сообщить о найденных багах в Far.
Post Reply
skipik
Posts: 132
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 15 times
Been thanked: 12 times

Far иногда падает при извлечении образов

Post by skipik » Fri 16 Aug, 2019 16:28

Периодически наблюдаю падения Фара, когда монтирую образ (из проводника) и извлекаю его из фара (AltF1 -> Disk F -> DEL).
В архиве дамп + мой Far.pdb: https://www.upload.ee/files/10362658/Dump.7z.html
P.S. b5450 x64, но падает уже давно.
Last edited by skipik on Fri 16 Aug, 2019 16:29, edited 1 time in total.

User avatar
DrKnS
Posts: 5342
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Far иногда падает при извлечении образов

Post by DrKnS » Fri 16 Aug, 2019 19:07

Спасибо за дамп.

Судя по стеку, вы отмонтировали, меню пошло обновляться и опрашивать плагины.
polygon_e-x64.dll, когда пришла его очередь, пошёл смотреть настройки, посмотрел и освободил.
При освобождении экземпляра настроек оказалось, что внутренее состояние конфигурации испорчено и всё упало.
Наверное, кто-то до этого дёргал настройки из неосновного треда.

Я не говорю, что дело в полигоне, у него как раз вроде бы всё хорошо (хотя чтение настроек при каждом открытии / обновлении меню дисков вряд ли можно назвать оптимальным).

Code: Select all

 	Far.exe!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 133	C++
>	Far.exe!os::detail::handle_implementation::is_signaled(void * Handle, std::chrono::duration<__int64,std::ratio<1,1000> > Timeout) Line 84	C++
 	[Inline Frame] Far.exe!os::detail::handle_t<os::detail::handle_closer>::is_signaled(std::chrono::duration<__int64,std::ratio<1,1000> > Timeout) Line 180	C++
 	[Inline Frame] Far.exe!config_provider::AsyncCall::__l2::<lambda_56492aa1dae547e5e202f84045fda92d>::operator()(const os::concurrency::thread &) Line 2502	C++
 	[Inline Frame] Far.exe!std::remove_if(std::_Vector_iterator<std::_Vector_val<std::_Simple_types<os::concurrency::thread> > >) Line 1775	C++
 	Far.exe!config_provider::AsyncCall(const std::function<void __cdecl(void)> & Routine) Line 2502	C++
 	Far.exe!`anonymous namespace'::async_delete_impl::finish() Line 430	C++
 	[Inline Frame] Far.exe!detail::async_deleter::operator()(async_delete *) Line 227	C++
 	[Inline Frame] Far.exe!std::unique_ptr<HierarchicalConfig,detail::async_deleter>::{dtor}() Line 1884	C++
 	[Inline Frame] Far.exe!PluginSettings::{dtor}() Line 142	C++
 	Far.exe!PluginSettings::`scalar deleting destructor'(unsigned int)	C++
 	Far.exe!pluginapi::apiSettingsControl(void * hHandle, FAR_SETTINGS_CONTROL_COMMANDS Command, __int64 Param1, void * Param2) Line 2615	C++
 	luafar3.dll!00007ff9eb16d200()	Unknown
 	lua51.dll!0000000066d82c1e()	Unknown
 	lua51.dll!0000000066d934d3()	Unknown
 	luafar3.dll!00007ff9eb15fad1()	Unknown
 	luafar3.dll!00007ff9eb15dd02()	Unknown
 	polygon_e-x64.dll!000000006fb01942()	Unknown
 	Far.exe!Plugin::ExecuteFunctionSeh<Plugin::ExecuteStruct<4,1>,PluginInfo * &>(Plugin::ExecuteStruct<4,1> & <Args_0>, PluginInfo * &) Line 338	C++
 	[Inline Frame] Far.exe!Plugin::ExecuteFunction::__l2::<lambda_f5d9e4d2c6eef4a34d36ff7c83635020>::operator()() Line 357	C++
 	Far.exe!seh_invoke<<lambda_f5d9e4d2c6eef4a34d36ff7c83635020>,<lambda_2dcc88a58d98f3e204ac6c8675cb7604>,<lambda_5a99719a8eb176c5fcf08cb179d0a986> >(Plugin::ExecuteFunction::__l2::<lambda_f5d9e4d2c6eef4a34d36ff7c83635020> && Callable, seh_invoke_with_ui::__l2::<lambda_2dcc88a58d98f3e204ac6c8675cb7604> && Filter, Plugin::ExecuteFunction::__l2::<lambda_5a99719a8eb176c5fcf08cb179d0a986> && Handler) Line 89	C++
 	[Inline Frame] Far.exe!seh_invoke_with_ui(Plugin::ExecuteFunction::__l2::<lambda_f5d9e4d2c6eef4a34d36ff7c83635020> && Module, Plugin::ExecuteFunction::__l2::<lambda_5a99719a8eb176c5fcf08cb179d0a986> &&) Line 107	C++
 	[Inline Frame] Far.exe!Plugin::ExecuteFunction(Plugin::ExecuteStruct<4,1> &) Line 354	C++
 	Far.exe!Plugin::GetPluginInfo(PluginInfo * Info) Line 1051	C++
 	[Inline Frame] Far.exe!PluginManager::GetPluginInfo(Plugin *) Line 2377	C++
 	[Inline Frame] Far.exe!PluginManager::GetDiskMenuItem(Plugin *) Line 1833	C++
 	Far.exe!AddPluginItems(VMenu2 & ChDisk, int Pos, int DiskCount, bool SetSelected) Line 146	C++
 	Far.exe!ChangeDiskMenu(std::shared_ptr<Panel> Owner, int Pos, bool FirstCall) Line 905	C++
 	Far.exe!ChangeDisk(std::shared_ptr<Panel> Owner) Line 1329	C++

Post Reply

Return to “Глюки и баги”