Баги в v4.21 (build 1550-1559)

Нашли баг? Воспользуйтесь поиском чтобы убедиться что его не нашли до вас и если он не упоминается добавьте его описание (желательно пошаговое).
Чем для автора программы отличаются баги, недоработки и фичи.

Модератор: motyara

vert
Охотник за багами
Сообщения: 13
Зарегистрирован: Пт июн 20, 2014 12:18 am

Re:

Сообщение vert »

Max Diesel писал(а): Сб май 21, 2022 7:57 pm
vert писал(а): Сб апр 30, 2022 6:39 am После того, как начал использовать фичу «Лок-таб», периодически наблюдаю следующее.
Лок-таб («выход с возвратом») — это самая первая вкладка в левой панели (но может это и не важно). Справа в той же панели открыты ещё несколько вкладок, в которые я заходил сегодня или вчера. Иногда (не всегда) при нажатии на одну из обычных вкладок её содержимое становится аналогичным содержимому Лок-таба, либо открывается какой-то путь из истории, который был ранее открыт в Лок-табе.
Конкретный алгоритм возникновения ошибки пока не отследил
Какой-то неожиданный расклад. На вскидку воспроизвести не удалось. Сообщите если обнаружатся дополнительные детали.
1. Создаю на диске C: пустые каталоги, вложенные друг в друга

Код: Выделить всё

c:\1\2\3\
2. Оставляю в левой панели только одну вкладку, захожу в ней в каталог "2". Делаю ей "Лок-таб, выход с возвратом".
3. Дважды кликаю справа от вкладки, появляется вторая вкладка.
4. Во второй вкладке перехожу в другой каталог, например в "3".
5. Переключаюсь между двумя вкладками, на данном этапе всё ОК.
6. В первой вкладке поднимаюсь на уровень выше (перехожу в каталог "1").
7. Перехожу во вторую вкладку — содержимое вкладки становится идентичным первой вкладке, при этом название вкладки остаётся прежним.
8. При дальнейшем переключении между вкладками происходит ещё какая-то чехарда с изменением содержимого вкладок и путей, но это оставляю вам на эксперименты :)

v4.21 64bit beta 3 (build 1558)
Paul_TC
Охотник за багами
Сообщения: 63
Зарегистрирован: Ср ноя 23, 2011 1:07 am

Re: Баги в v4.21 (build 1550-1558)

Сообщение Paul_TC »

Не работает поиск по содержимому.
*.docx
✓ Office files

+ При включении HEX-код находит все docx-файлы в папке, но что UC там видит, не известно ))
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3374
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

vert писал(а): Пт авг 12, 2022 3:53 am 1. Создаю на диске C: пустые каталоги, вложенные друг в друга

Код: Выделить всё

c:\1\2\3\
2. Оставляю в левой панели только одну вкладку, захожу в ней в каталог "2". Делаю ей "Лок-таб, выход с возвратом".
3. Дважды кликаю справа от вкладки, появляется вторая вкладка.
4. Во второй вкладке перехожу в другой каталог, например в "3".
5. Переключаюсь между двумя вкладками, на данном этапе всё ОК.
6. В первой вкладке поднимаюсь на уровень выше (перехожу в каталог "1").
7. Перехожу во вторую вкладку — содержимое вкладки становится идентичным первой вкладке, при этом название вкладки остаётся прежним.
8. При дальнейшем переключении между вкладками происходит ещё какая-то чехарда с изменением содержимого вкладок и путей, но это оставляю вам на эксперименты :)

v4.21 64bit beta 3 (build 1558)
Как ни странно, но воспроизвести не получается даже при таком подробном описании. Возможно дело в каких-то персональных настройках. Попробуйте такой вариант: в командной строке Unreal Commander'а выполните команду ":dsm", запустится еще одна его копия, но уже с настройками по умолчанию. Воспроизведется ли баг в ней при настройках по умолчанию? Если нет, то вероятно дело действительно в настройках. В такой ситуации в основной копии Unreal Commander'а нажмите Ctrl+Shift+i чтобы перейти в каталог настроек и из этого каталога пришлите мне файл с настройками (Uncom.ini) через личное сообщение или на email.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3374
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Paul_TC писал(а): Сб авг 13, 2022 1:32 pm Не работает поиск по содержимому.
*.docx
✓ Office files
Спасибо за эту информацию, весьма интересный баг. Надеюсь что со следующего билда будет корректно.
Paul_TC писал(а): Сб авг 13, 2022 1:32 pm + При включении HEX-код находит все docx-файлы в папке, но что UC там видит, не известно ))
В момент проставления этого флажка программа старается высмотреть в строке "текст" какие-нибудь HEX-символы, и если уж там вписано например какое-то слово на русском языке, то... в нем не обнаруживается ни единого HEX-символа, а потому строка "текст" становится пустой и следственно каждый файл соответствует такому условию.
Scorpy
Сообщения: 55
Зарегистрирован: Пн янв 14, 2008 10:27 am

Re: Баги в v4.21 (build 1550-1559)

Сообщение Scorpy »

Лок-таб, выход с возвратом больше не работает. Теперь , при щелчке на табе нельзя вернуться в зафиксированный каталог. Билд 1559.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3374
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Scorpy писал(а): Сб авг 27, 2022 10:04 pm Лок-таб, выход с возвратом больше не работает. Теперь , при щелчке на табе нельзя вернуться в зафиксированный каталог. Билд 1559.
Да, есть такая странность, я тоже обратил внимание на этот факт и отчасти устранил. К следующему билду предположительно будет корректно. Однако корректно будет лишь частично, так как используемый в этом вопросе контрол (создающий табы) имеет баг, который не заметили его разработчики, в связи с этим при стиле "Табы" контрол работает чуть-чуть не так как при двух других стилях ("Кнопки" и "Плоские кнопки"), именно это и приводит к проблемам, поэтому клик будет делать возврат лишь при стиле "Табы".
vert
Охотник за багами
Сообщения: 13
Зарегистрирован: Пт июн 20, 2014 12:18 am

Re: Баги в v4.21 (build 1550-1559)

Сообщение vert »

При переименовании каталога с последующим нажатием Tab / Shift+Tab название каталога под курсором оказывается неправильным, если после переименования изменилась сортировка. С файлами не проверял.
Гифка для демонстрации:
UnrealCommander64_2022-08-30_13-27-37.gif
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3374
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

vert писал(а): Вт авг 30, 2022 4:33 am При переименовании каталога с последующим нажатием Tab / Shift+Tab название каталога под курсором оказывается неправильным, если после переименования изменилась сортировка. С файлами не проверял.
Гифка для демонстрации:
UnrealCommander64_2022-08-30_13-27-37.gif
Действительно, этот аспект я не рассматривал. Постараюсь к новому билду внести изменения. Спасибо за эту информацию.
VicVaLa
Охотник за багами
Сообщения: 77
Зарегистрирован: Чт ноя 04, 2010 5:20 pm

Re: Баги в v4.21 (build 1550-1559)

Сообщение VicVaLa »

С клавишами стрелка вверх, вниз такой же косяк.
i3v
Охотник за багами
Сообщения: 193
Зарегистрирован: Пн апр 27, 2015 8:39 pm

Re: Баги в v4.21 (build 1550-1559)

Сообщение i3v »

Заметил, что на сильно загруженной системе (сильно свопит, загружено ~100% CPU, может ещё что-то не так) в 4.21 beta4 (build 1559) сильно подлагивает отрисовка. Порой, при запуске нового UC он даже не может загрузиться - отрисовка, видимо, "зацикливается" и пытается отрисовать то список файлов то панель инструментов, но в итоге не успевает сделать ни то ни другое до начала следующей переотрисовки (чисто моя интерпретация), в итоге так всё и остаётся в недоотрисованном состоянии. Проблема почти наверняка воспроизводилась, если запустить штук 10 UC разом (иногда - на "Waiting for a response from the resource... C:\"). Воспроизвести, увы, может быть сложно, т.к. что там и почему тормозило не очень понятно уже.

В процессе, я почти случайно нашёл и прописал LoadToolbarIconsWithDelay=0 и внезапно всё стало нормально. И вообще стало куда меньше подлагиваний при отрисовке. Правда, может быть это просто совпадение... Теперь мне даже интересно, этот ключ (в последний раз упоминавшийся в 2013, похоже) на что-то вообще в 4.21 влияет или давно устарел и ничего не меняет, на самом деле?
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3374
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

i3v писал(а): Сб сен 10, 2022 11:04 pm В процессе, я почти случайно нашёл и прописал LoadToolbarIconsWithDelay=0 и внезапно всё стало нормально. И вообще стало куда меньше подлагиваний при отрисовке. Правда, может быть это просто совпадение... Теперь мне даже интересно, этот ключ (в последний раз упоминавшийся в 2013, похоже) на что-то вообще в 4.21 влияет или давно устарел и ничего не меняет, на самом деле?
Этот ключ актуален. В некотором смысле он действительно имеет отношение к прорисовке. Если флаг установлен в режим "=1", тогда значки панели инструментов последовательно загрузятся после того как программа загрузит все модули, причем визуально будет заметно что значки появляются по очереди, на это конечно же уйдет чуть больше ресурсов для прорисовки. А если флаг в режиме "=0", то программа будет грузить значки панели в процессе загрузки модулей, а потому во-первых не будет наблюдаться последовательная загрузка значков панели инструментов (то есть они отобразятся сразу все), а во-вторых сама загрузка программы будет выглядеть более долгой. На мой взгляд если запуск Unreal Commander'а производится в неэкстремальных условиях (то есть не при стопроцентной загрузке процессора), то логичнее использовать режим "=1".
i3v
Охотник за багами
Сообщения: 193
Зарегистрирован: Пн апр 27, 2015 8:39 pm

Re:

Сообщение i3v »

Max Diesel писал(а): Вс сен 11, 2022 1:21 am
i3v писал(а): Сб сен 10, 2022 11:04 pm В процессе, я почти случайно нашёл и прописал LoadToolbarIconsWithDelay=0 и внезапно всё стало нормально. И вообще стало куда меньше подлагиваний при отрисовке. Правда, может быть это просто совпадение... Теперь мне даже интересно, этот ключ (в последний раз упоминавшийся в 2013, похоже) на что-то вообще в 4.21 влияет или давно устарел и ничего не меняет, на самом деле?
Этот ключ актуален. В некотором смысле он действительно имеет отношение к прорисовке. Если флаг установлен в режим "=1", тогда значки панели инструментов последовательно загрузятся после того как программа загрузит все модули, причем визуально будет заметно что значки появляются по очереди, на это конечно же уйдет чуть больше ресурсов для прорисовки. А если флаг в режиме "=0", то программа будет грузить значки панели в процессе загрузки модулей, а потому во-первых не будет наблюдаться последовательная загрузка значков панели инструментов (то есть они отобразятся сразу все), а во-вторых сама загрузка программы будет выглядеть более долгой. На мой взгляд если запуск Unreal Commander'а производится в неэкстремальных условиях (то есть не при стопроцентной загрузке процессора), то логичнее использовать режим "=1".
Спасибо за пояснение...
А он именно только на запуск влияет или и на последующие перерисовки тоже?
Скорость запуска в данном случае так и так была печальной по понятным причинам, но основная-то проблема не в этом, а в том, что (создавалось такое впечатление) перерисовка зацикливалась.
Т.е., допустим, перерисовка запускаетсяпо таймеру, раз в секунду, но в силу высокой загруженности CPU сама прорисовка занимает 2 секунды (в норме-то она, конечно, занимает 1мс где-нибудь). Т.е. прорисовка начинается заново сразу после окончания предыдущей. (Если бы таймер хотя бы запускался не "с фиксированной частотой" а с "фиксированной задержкой после окончания предыдущей прорисовки", у пользователя уже была бы возможность что-то сделать, не было бы "глухого зависания"....

-----------------------------
И ещё обнаружил сейчас, в похожей ситуации (даже при LoadToolbarIconsWithDelay=0) следующую штуку, наверное более принципиальную для "подвисаний" (см. вложенный скриншот):

Один из дисков сильно нагружен (H:\) и при этом он не супер быстрый. А UC, ещё при загрузке, несколько раз запрашивает его свойства (проверяет сколько свободного места, наверное?)
  1. по столбцу Duration видно, что каждое "спросить размер" занимает несколько секунд для H:\. Хотя для M: и N: там тысячной секунды на все эти операции в сумме не наберётся.
  2. за один "проход по всем дискам" каждый диск открывается-закрывается несколько раз, при том что спрашивается примерно одно и то же (может быть из-за того, что в коде последовательность каких-то высокоуровневых функций? или из-за того, что для каждой панели отдельно запрашивается?)
  3. не знаю, кстати, оптимальны ли флаги с которыми CreateFile делается (Synchronize)... Не от того ли оно тормозит, что пытается следить за изменениями, в результате?
  4. после окончания одного "прохода по всем дискам" фактически сразу начинается второй, хотя окно UC ещё не загрузилось (опять похоже на ситуацию с "запуском с фиксированной частотой")
  5. окно UC в данном случае так и не загрузилось окончательно.
Почему-то системе тяжело даются эти вызовы (может быть потому, что файлы на диск постоянно пишутся, с всё-таки приличными IOPS и поэтому размер постоянно меняется?

Если я угадал, что тормозит фактически получение размера и свбодного места на диске, то было бы наверное здорово если бы UC запрашивал эти свойства именно в духе "через минуту-две после того как прошлый результат получен", например (может быть даже с настраиваемым временем?). И может даже асинхронно, чтоб не дожидаясь их загрузки могла закончится загрузка окна...

Причём, похоже что чем больше процессов UC запущено, тем больше они мешают друг другу и другим приложениям, как будто - даже file explorer штатный начинает ещё больше тормозить (медленее переходить из папки в папку). Возникает подозрение, что несколько UC только и делают, что гоняют эти запросы по очереди, один сразу после другого - диск совсем почти подвисает. Хотя вроде бы только активное окно UC должно обновляться, а неактивные почти никаких событий в process monitor не создают. Непонятно...

Версия UC: 4.21 beta4 (build 1559).
Вложения
slow_query_information.png
Последний раз редактировалось i3v Сб сен 17, 2022 9:48 am, всего редактировалось 3 раза.
i3v
Охотник за багами
Сообщения: 193
Зарегистрирован: Пн апр 27, 2015 8:39 pm

Re: Баги в v4.21 (build 1550-1559)

Сообщение i3v »

И ещё, кстати...
Как видно из информации, которую UC получил о диске (скриншот в предыдущем моём сообщении), у диска H:\ размер кластера NTFS 512*128 байт = 64КБ.
А UC читает/пишет файлы по 32КБ (см. вложенный скриншот).
Это, конечно, не совсем прям баг, но похоже что из-за этого производительность таки может существенно страдать. Возможно было бы полезно учитывать, по возможности, размер кластера при чтении записи (и выставлять размер буфера равный ~8 кластерам, например).
Или может быть просто дать возможность выставить руками дефолтный "размер буфера копирования" (я бы наверное в ~1МБ поставил).

И возможно, кстати, ещё выставление FILE_FLAG_SEQUENTIAL_SCAN плюс GENERIC_WRITE без GENERIC_READ может помочь поднять скорость копирования в каких-то сценариях...
Вложения
32KB writes with 64KB cluster size.png
Ответить