View Issue Details

IDProjectCategoryView StatusLast Update
0001145Far ManagerFindFilespublic2009-12-08 14:51
Reporterlsa Assigned Tochupakabra  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version2.0 
Fixed in Version2.0 
Summary0001145: Падение FAR при изменении размера Alt+F9
DescriptionВыполняем поиск файлов по маске Alt+F7
По окончанию поиска видя список найденных файлов нажимаем Alt+F9
Far при этом виснет и закрывается.
TagsNo tags attached.
Build1223

Activities

Denis

2009-10-30 08:16

reporter   bugnote:0004378

Не повторяется

DiRTy_GaRRy

2009-10-30 08:18

developer   bugnote:0004379

На сборке 1185 не повторяется. Если я не ошибаюсь, то что то такое правили вроде.

lsa

2009-10-30 08:43

reporter   bugnote:0004380

Баг повторяется с того момента как изменили панельку результатов поиска (достаточно давно). Сейчас версия 1187.

К сожалению не получается загрузить видео

-rw-rw-rw- 1 lsa 0 1836425 2009-10-30 "10:36 30.10.2009 10-34-20.rar"

Если кого интересует сообщите, отправлю по почте.

Баг прикольный, сейчас более подробно посмотрел. Он повторяется при разрешении экрана 1600x1200 но не повторяется при 1280x1024.

vskirdin

2009-10-30 09:38

administrator   bugnote:0004381

Экран 1920x1200.
Far 1189
OS XP SP3 x86
не повторяется.

без плагинов проверяй

lsa

2009-10-30 10:00

reporter   bugnote:0004383

OS Windows 7 (UAC отключен)
1600x1200
Far 1188 x86 (текущий ночной билд)

Удаление моего текудего Far, чистка реестра, распаковка архива, удаление папки Plugin, запуск.

Проблема повторяется.

Предположительно проблема не воспроизведентся в XP но воспроизведется в Vista.

alexy

2009-10-30 10:03

administrator   bugnote:0004384

На Win7 не повторяется.
Какие размеры окна фара до и после AltF9?

lsa

2009-10-30 10:08

reporter   bugnote:0004385

Шрифт 10x18
Размер до ресайза 158x59 (ровно по границам экрана)
Позиция на экране (0,0)

Настройка этого через ярлык запуска.

chupakabra

2009-10-30 15:05

developer   bugnote:0004387

А FExcept что-то показывает?

lsa

2009-10-30 15:12

reporter  

FStd_trap.log (6,276 bytes)

lsa

2009-10-30 15:13

reporter   bugnote:0004388

>> А FExcept что-то показывает?

Добавлен

FStd_trap.log [^] (6,276 bytes) 2009-10-30 16:12

alexy

2009-10-30 15:22

administrator   bugnote:0004389

Надо будет дебаг сборку дать ему чтоб лог был нормальный.
И это, без плагинов проверял?

lsa

2009-10-30 15:34

reporter   bugnote:0004390

Нет этот лог уже с настроенным Far и плагинами.

alexy

2009-10-30 15:36

administrator   bugnote:0004391

Проверь без плагинов.

lsa

2009-10-30 15:37

reporter  

lsa

2009-10-30 15:37

reporter   bugnote:0004392

FStd_trap_without_plugins.log [^] (6,276 bytes) 2009-10-30 16:37

добавил без плагинов

lsa

2009-10-30 15:41

reporter   bugnote:0004393

Примечательно что
У меня стоит 2 монитора

1. 1600x1200 - если на этом рабочем столе разворачиваешь то падает
2. 1280x1024 - не падает

Далее после отключение маленького монитора, перезагрузки а все такое

на 1600x1200 все равно падает.

Попозже освобожусь - посмотрю под VMWare при разных разрешениях.

Denis

2009-10-30 15:41

reporter   bugnote:0004394

Дебаговый билд 1189:
http://www.mediafire.com/download.php?dzz5y2rytmm

alexy

2009-10-30 15:46

administrator   bugnote:0004395

Вот, добавь лог fexcept используя версию фара что выложил Денис.

lsa

2009-10-30 15:52

reporter   bugnote:0004396

Этот билд не падает.

Denis

2009-10-30 15:59

reporter   bugnote:0004397

Мой билд был не совсем чистый - был применён маленький патч отсюда (второй) и собран 10кой:
http://bugs.farmanager.com/view.php?id=1083

Вот чистый билд, собранный 9кой:
http://www.mediafire.com/download.php?22zqqazuzc3

alexy

2009-10-30 16:07

administrator   bugnote:0004398

А собери ему 9кой релиз билд с твоим фиксом. Авось это оно.

Denis

2009-10-30 16:41

reporter   bugnote:0004399

Релиз с фиксом из 1083:
http://www.mediafire.com/download.php?wi3fygidmh2

lsa

2009-11-02 08:18

reporter   bugnote:0004428

Прошу прощения за молчание - не было доступа к компьютеру

по поводу билдов:

1. "Вот чистый билд, собранный 9кой" - работает нормально
2. "Релиз с фиксом из 1083" - падает
3. 1192 x86 - падает

lsa

2009-11-02 08:19

reporter  

Denis

2009-11-02 08:52

reporter   bugnote:0004431

Попробуй чистый дебаговый 1192 http://www.mediafire.com/download.php?tlbgmdej5zf
и добавь сюда лог fexcept

lsa

2009-11-02 09:02

reporter   bugnote:0004432

гм, эта сборка не падает

странная закономерность - все указанные дебаговые сборки (3 штуки) не падали, падают только релизы

Denis

2009-11-02 09:06

reporter   bugnote:0004433

Релизная версия с дебаг инфой:
http://www.mediafire.com/download.php?0n30wqojzmq

lsa

2009-11-02 09:11

reporter  

lsa

2009-11-02 09:12

reporter   bugnote:0004434

Упал.

Соответственно
FStd_trap [пост 0004433][Релизная версия с дебаг инфой].log [^] (6,621 bytes) 2009-11-02 10:11

lsa

2009-11-02 09:21

reporter   bugnote:0004435

В связи со странностью бага (возможно зависит от специфических условий, настройки OS и т.п.)
сейчас ставлю Windows 7 (7600.16385.090713-1255_x86fre_client_en-us_OEM_Ultimate-GRMCULFREO_EN_DVD.iso) под VMWare

За одно проверю зависимость от разрешения экрана.

Предположительно дам информацию через час-полтора.

alexy

2009-11-02 09:23

administrator   bugnote:0004436

А ты сам под дебагером запустить фар не можешь?

lsa

2009-11-02 09:29

reporter   bugnote:0004437

Если расскажете что поставить нужно (софт и как проек из соурсконтрола втянуть) то смогу (ну + день/два соответствующий софт достать).
На C/CPP я не писал с 2001 года примерно. Сайчас в основном Java. :-(

lsa

2009-11-02 09:31

reporter   bugnote:0004438

Могу дать свои контакты чтобы не превращать в мусорку эту ветку

lsa

2009-11-02 10:39

reporter  

001.gif (475,328 bytes)

lsa

2009-11-02 10:39

reporter  

002.gif (338,454 bytes)

lsa

2009-11-02 10:39

reporter  

003.gif (334,837 bytes)

lsa

2009-11-02 10:40

reporter  

004.gif (82,279 bytes)   
004.gif (82,279 bytes)   

lsa

2009-11-02 10:47

reporter   bugnote:0004439

Приблизительно закономерность найдена.

Тестировалось на чистой Win7 + VMWare Tools под guest OS.
Версия Far:
    Релизная версия с дебаг инфой:
    http://www.mediafire.com/download.php?0n30wqojzmq [^]

Падение зависит от соотношения текущего разрешения экрана и размеров окна Far.

На картинках показано что если размер Far подогнан по размеру под экран то падение происходит.

Это верно для любого разрешения экрана.

P.S. Возможно косвенно с этим связана старая неприятная фишка: если размер окна Far стоит более точно - координаты (-4, -4) размер подобран так чтобы на экране не было видно бордюров и при этом заблокировать компьютер (Win+L) то во возвращению в систему у окна Far появляются скроллеры (у просто CMD не проверял).

alexy

2009-11-02 19:03

administrator   bugnote:0004457

Повторить получилось. А с проблемой Win-L это скорее всего не связано, то баг винды, она сама изменяет размер окна (можешь и с cmd это увидеть).
Тут проблема вроде связана с перерисовкой диалога поиска.

alexy

2009-11-02 21:53

administrator   bugnote:0004458

Вот стек:
ntdll_77590000!RtlInitUnicodeString+0x196
ntdll_77590000!RtlFreeHeap+0x7e
KERNEL32!HeapFree+0x14
Far!free(void * pBlock = 0x009de340)+0x1c [f:\dd\vctools\crt_bld\self_x86\crt\src\free.c @ 51]
Far!xf_free(void * __block = 0x009de340)+0xc [d:\src\far\fardev\unicode_far\farrtl.cpp @ 72]
Far!operator delete(void * ptr = 0x009de340)+0xc [d:\src\far\fardev\unicode_far\farrtl.cpp @ 116]
Far!UnicodeStringData::FreeData(wchar_t * pData = 0x009de340 "")+0x1e [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 62]
Far!UnicodeStringData::~UnicodeStringData(void)+0x16 [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 148]
Far!UnicodeStringData::`scalar deleting destructor'(void)+0xf
Far!UnicodeStringData::DecRef(void)+0x3d [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 142]
Far!UnicodeString::Replace(unsigned int Pos = 0, unsigned int Len = 0, wchar_t * Data = 0x00a17420 "Search done. Found 19 file(s) and 0 folder(s) ", unsigned int DataLen = 0xc4)+0x271 [d:\src\far\fardev\unicode_far\unicodestring.cpp @ 188]
Far!UnicodeString::Copy(wchar_t * Str = 0x00a17420 "Search done. Found 19 file(s) and 0 folder(s) ", unsigned int StrLen = 0xc4)+0x22 [d:\src\far\fardev\unicode_far\unicodestring.cpp @ 265]
Far!UnicodeString::Copy(class UnicodeString * Str = 0x009f078c)+0x21 [d:\src\far\fardev\unicode_far\unicodestring.cpp @ 270]
Far!UnicodeString::operator=(class UnicodeString * strCopy = 0x009f078c)+0x13 [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 245]
Far!Dialog::ShowDialog(unsigned int ID = 0)+0x73d [d:\src\far\fardev\unicode_far\dialog.cpp @ 1836]
Far!Dialog::DisplayObject(void)+0x42 [d:\src\far\fardev\unicode_far\dialog.cpp @ 614]
Far!ScreenObject::Show(void)+0x3f [d:\src\far\fardev\unicode_far\scrobj.cpp @ 178]
Far!Dialog::Show(void)+0xb3 [d:\src\far\fardev\unicode_far\dialog.cpp @ 588]
Far!GetInputRecord(struct _INPUT_RECORD * rec = 0x009c53ac, bool ExcludeMacro = false, bool ProcessMouse = false)+0xc78 [d:\src\far\fardev\unicode_far\keyboard.cpp @ 1142]
Far!Manager::ProcessMainLoop(void)+0x86 [d:\src\far\fardev\unicode_far\manager.cpp @ 620]

Падает в ShowDialog вот тут:
      case DI_TEXT:
      {
        strStr = CurItem->strData;

Пока идей нет никаких.

Denis

2009-11-03 06:20

reporter   bugnote:0004459

А как повторить самому?

alexy

2009-11-03 06:40

administrator   bugnote:0004460

Ну чисто как он описал, окно фара на (0,0), по ширине размер на весь экран но видно рамку окна, по высоте 25.

Denis

2009-11-03 07:09

reporter   bugnote:0004462

На Multi-threaded (/MT) VS2008 стабильное повторение, на VS2010 всё работает.

chupakabra

2009-11-03 07:16

developer   bugnote:0004463

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

Denis

2009-11-03 08:27

reporter   bugnote:0004464

1064 - ok
1065 - падаем

alexy

2009-11-03 08:43

administrator   bugnote:0004465

Ну у меня и 2010 падает точно также. Не думаю что баг компайлера.

Denis

2009-11-03 08:58

reporter   bugnote:0004466

Ошибся(запускал не из среды). Падает.

chupakabra

2009-11-03 09:09

developer   bugnote:0004467

Denis, попробуй откатить обработчик DN_RESIZECONSOLE в findfile.cpp на состояние из build 1064

Denis

2009-11-03 09:16

reporter   bugnote:0004468

После отката перестало падать

alexy

2009-11-03 09:16

administrator   bugnote:0004469

Теперь бы ещё понять где там корупция хипа.

alexeypa

2009-11-12 23:25

reporter   bugnote:0004530

Denis попросил меня посмотреть где портится куча. Это происходит в Dialog::ShowDialog. При вычислении CW он получается равным -4. (Не знаю почему, не смотрел). Далее, при отработке

case DI_SINGLEBOX:
case DI_DOUBLEBOX:

Есть такой код:

          // ! Пусть диалог сам заботится о ширине собственного заголовка.
          strStr = CurItem->strData;
          TruncStrFromEnd(strStr,CW-2); // 5 ???

В TruncStrFromEnd передается отрицательная MaxLength, которую TruncStrFromEnd конечно же, не проверяет. Это приводит к тому, что "Str[MaxLength]=0;" портит заголовок блока в куче, что, в свою очередь, обнаруживается когда удаляется этот блок.

Такие вещи хорошо ловяться с помощью AppVerifier. Я бы крайне советовал гонять Far под ним время от времени. Кроме того, я бы посоветовал добавить проверки (хотя бы в отладочную версию) на корректность параметров функций, работающих со строками. В исходниках Far'а очень много мест в коде, манипулирующих со строками и такой код, как правило, - самый настоящий рассадник багов.

chupakabra

2009-11-13 10:44

developer   bugnote:0004533

alexeypa, попробуй разобраться до конца почему такое происходит.

alexeypa

2009-11-13 15:36

reporter   bugnote:0004543

> alexeypa, попробуй разобраться до конца почему такое происходит.

Я вообще-то уже написал, почему именно такое происходит. Отследить почему ширина получается отрицательной вроде бы не должно составлять проблемы.

chupakabra

2009-11-20 19:17

developer   bugnote:0004566

1223

lsa

2009-12-07 14:03

reporter   bugnote:0004688

Проверено на версии b1276 - проблема исправлена

Issue History

Date Modified Username Field Change
2009-10-30 08:05 lsa New Issue
2009-10-30 08:16 Denis Note Added: 0004378
2009-10-30 08:18 DiRTy_GaRRy Note Added: 0004379
2009-10-30 08:43 lsa Note Added: 0004380
2009-10-30 09:38 vskirdin Note Added: 0004381
2009-10-30 10:00 lsa Note Added: 0004383
2009-10-30 10:03 alexy Note Added: 0004384
2009-10-30 10:08 lsa Note Added: 0004385
2009-10-30 15:05 chupakabra Note Added: 0004387
2009-10-30 15:12 lsa File Added: FStd_trap.log
2009-10-30 15:13 lsa Note Added: 0004388
2009-10-30 15:22 alexy Note Added: 0004389
2009-10-30 15:34 lsa Note Added: 0004390
2009-10-30 15:36 alexy Note Added: 0004391
2009-10-30 15:37 lsa File Added: FStd_trap_without_plugins.log
2009-10-30 15:37 lsa Note Added: 0004392
2009-10-30 15:41 lsa Note Added: 0004393
2009-10-30 15:41 Denis Note Added: 0004394
2009-10-30 15:46 alexy Note Added: 0004395
2009-10-30 15:52 lsa Note Added: 0004396
2009-10-30 15:59 Denis Note Added: 0004397
2009-10-30 16:07 alexy Note Added: 0004398
2009-10-30 16:41 Denis Note Added: 0004399
2009-11-02 08:18 lsa Note Added: 0004428
2009-11-02 08:19 lsa File Added: FStd_trap (Релиз с фиксом из 1083).log
2009-11-02 08:52 Denis Note Added: 0004431
2009-11-02 09:02 lsa Note Added: 0004432
2009-11-02 09:06 Denis Note Added: 0004433
2009-11-02 09:11 lsa File Added: FStd_trap [пост 0004433][Релизная версия с дебаг инфой].log
2009-11-02 09:12 lsa Note Added: 0004434
2009-11-02 09:21 lsa Note Added: 0004435
2009-11-02 09:23 alexy Note Added: 0004436
2009-11-02 09:29 lsa Note Added: 0004437
2009-11-02 09:31 lsa Note Added: 0004438
2009-11-02 10:39 lsa File Added: 001.gif
2009-11-02 10:39 lsa File Added: 002.gif
2009-11-02 10:39 lsa File Added: 003.gif
2009-11-02 10:40 lsa File Added: 004.gif
2009-11-02 10:47 lsa Note Added: 0004439
2009-11-02 19:03 alexy Note Added: 0004457
2009-11-02 21:53 alexy Note Added: 0004458
2009-11-03 06:20 Denis Note Added: 0004459
2009-11-03 06:40 alexy Note Added: 0004460
2009-11-03 07:09 Denis Note Added: 0004462
2009-11-03 07:16 chupakabra Note Added: 0004463
2009-11-03 08:27 Denis Note Added: 0004464
2009-11-03 08:43 alexy Note Added: 0004465
2009-11-03 08:58 Denis Note Added: 0004466
2009-11-03 09:09 chupakabra Note Added: 0004467
2009-11-03 09:16 Denis Note Added: 0004468
2009-11-03 09:16 alexy Note Added: 0004469
2009-11-12 23:25 alexeypa Note Added: 0004530
2009-11-13 10:44 chupakabra Note Added: 0004533
2009-11-13 15:36 alexeypa Note Added: 0004543
2009-11-20 18:22 chupakabra Status new => assigned
2009-11-20 18:22 chupakabra Assigned To => chupakabra
2009-11-20 19:17 chupakabra Note Added: 0004566
2009-11-20 19:17 chupakabra Status assigned => feedback
2009-12-07 14:03 lsa Note Added: 0004688
2009-12-07 14:03 lsa Status feedback => resolved
2009-12-08 14:51 chupakabra Build => 1223
2009-12-08 14:51 chupakabra Status resolved => closed
2009-12-08 14:51 chupakabra Fixed in Version => 2.0
2009-12-08 14:51 chupakabra Resolution open => fixed