View Issue Details

IDProjectCategoryView StatusLast Update
0003338Far ManagerFindFilespublic2016-12-02 13:52
Reportershmuel Assigned Tozg  
PrioritynormalSeveritycrashReproducibilitysometimes
Status closedResolutionfixed 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Fixed in Version3.0 
Summary0003338: Зависание Far при запуске Find file (Alt+F7)
DescriptionFar 3.0.4830 зависает (ни на что не реагирует) сразу после запуска указанной операции. При этом окно поиска файлов не отрисовано полностью (либо серый прямоугольник сверху, а кнопки внизу отдельно, либо только кнопки внизу, и то не все). Приложены скриншоты.
Steps To ReproduceЗапускаем Far 3.0.4830, без плагинов, с чистым профилем. Нажимаем AltF7 Enter. Зависаем.
Additional Information1. Оригинальный репорт находится здесь.
2. Проявляется как на ночной сборке, так и на билде GCC 5.3.0.
3. По-видимому, проявление неисправности как-то связано с размерами окна или буфера консоли и с размером фонта. У меня хорошо воспроизводится при размерах окна и буфера 180*48, фонт Lucida Console размером 14. С другими параметрами неисправность тоже воспроизводится, но реже.
TagsNo tags attached.
Build4848

Activities

shmuel

2016-10-31 07:22

developer  

Clipboard01.png (23,862 bytes)   
Clipboard01.png (23,862 bytes)   

shmuel

2016-10-31 07:23

developer  

far30_4830.png (98,810 bytes)   
far30_4830.png (98,810 bytes)   

DrKnS

2016-10-31 08:15

administrator   bugnote:0014960

Main thread:
 	ntdll.dll!RtlEnterCriticalSection()	Unknown
>	Far.exe!VMenu::at(unsigned __int64 n=0) Line 2814	C++
     Far.exe!ConvertItemEx2(const DialogItemEx * ItemEx=0x0000000002fbf0e8, FarGetDialogItem * Item=0x0000000000000000) Line 211	C++
     Far.exe!Dialog::SendMessageW(__int64 Msg=4102, __int64 Param1=1, void * Param2) Line 5546	C++
     Far.exe!Dialog::ShowDialog(unsigned __int64 ID) Line 1643	C++
     Far.exe!Dialog::DisplayObject() Line 536	C++
     Far.exe!ScreenObject::Show() Line 132	C++
     Far.exe!Dialog::Show() Line 507	C++
     Far.exe!std::_For_each_unchecked<std::shared_ptr<window> * __ptr64,<lambda_927997c1f42111858751b93a8ac37d51> >(std::shared_ptr<window> * _First=0x00000000005267c0, std::shared_ptr<window> * _Last=0x00000000005267d0, Manager::RefreshCommit::__l2::<lambda_927997c1f42111858751b93a8ac37d51> &) Line 69	C++
     Far.exe!Manager::RefreshAllCommit() Line 1138	C++
     Far.exe!Manager::DoActivation(const std::shared_ptr<window> & Old, const std::shared_ptr<window> & New={...}) Line 1031	C++
     Far.exe!Manager::ExecuteCommit(const std::shared_ptr<window> & Param={...}) Line 1080	C++
     Far.exe!Manager::Commit() Line 914	C++
     Far.exe!Manager::ExecuteModal(const std::shared_ptr<window> & Executed) Line 344	C++
     Far.exe!Dialog::Process() Line 4303	C++
     Far.exe!FindFiles::FindFilesProcess() Line 2750	C++
     Far.exe!FindFiles::FindFiles() Line 3169	C++

Search thread:
 	ntdll.dll!RtlEnterCriticalSection()	Unknown
>	Far.exe!VMenu::SetSelectPos(int Pos=0, int Direct=1, bool stop_on_edge) Line 286	C++
     Far.exe!VMenu::UpdateItemFlags(int Pos, unsigned __int64 NewFlags) Line 212	C++
     Far.exe!VMenu::AddItem(MenuItemEx && NewItem={...}, int PosAdd) Line 469	C++
     Far.exe!FindFiles::AddMenuRecord(Dialog * Dlg, const std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & FullName={...}, std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & strLastDirName={...}, const os::FAR_FIND_DATA & FindData={...}, void * Data=0x0000000000000000, void(*)(void *, const FarPanelItemFreeInfo *) FreeData=0x0000000000000000) Line 2129	C++
     Far.exe!background_searcher::DoScanTree(Dialog * Dlg=0x00000000031e0390, const std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & strRoot={...}) Line 2385	C++
     Far.exe!background_searcher::DoPrepareFileList(Dialog * Dlg=0x00000000031e0390) Line 2567	C++

Это как бы называется deadlock.
Шрифт и размер консоли, логика поиска билда, "в котором была внесена ошибка", отладка и "исправления" по линку выше повеселили, спасибо.

Интересно, почему тамошние господа в своих расследованиях игнорируют 4808?
Неужели потому что на странице с ночными сборками его нет?

shmuel

2016-10-31 08:22

developer   bugnote:0014961

Шрифт и размер консоли, как я указал в "дополнительной информации", влияют на частоту проявления неисправности. Можно, конечно, над этим посмеяться, но простые эксперименты это подтверждают.

Issue History

Date Modified Username Field Change
2016-10-31 07:17 shmuel New Issue
2016-10-31 07:22 shmuel File Added: Clipboard01.png
2016-10-31 07:23 shmuel File Added: far30_4830.png
2016-10-31 08:15 DrKnS Note Added: 0014960
2016-10-31 08:22 shmuel Note Added: 0014961
2016-12-02 13:52 DrKnS Build => 4848
2016-12-02 13:52 DrKnS Status new => closed
2016-12-02 13:52 DrKnS Assigned To => zg
2016-12-02 13:52 DrKnS Resolution open => fixed
2016-12-02 13:52 DrKnS Fixed in Version => 3.0