Баги в v2.02 (build 905-1111)

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

Модератор: motyara

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

Re: Баги в v2.02 (build 905-1078)

Сообщение i3v »

i3v писал(а): Ещё на одно неприяное явление наткнулся - некоторые архивы распаковываются некорректно. Например приложенный.
Если зайти в него, выделить все файлы и скопировать на другую панель - почему-то из всего, что в нём есть 1078 извлекается 1 файл и пара папок, которые оказываются пустыми.
О, тоже починилось в 1082, спасибо!


И ещё один баг меня нашёл: удаление файлов с длинными путями (длиннее MAX_PATH) в корзину не работает. Причём сообщение об ошибке ( "Access denided... ")выглядит так, как будто файл кем-то залочен, хотя проблема, на самом деле, не в этом. (Собственно, ещё не так давно, насколько я помню, сам explorer в win 7 ругался как дурной при попытке удаления файлов с длинными путями, да и сейчас трёт их "мимо корзины"). Второй метод удаления, "просто удаление" работает нормально. Так что, собственно, багом это сложно считать, и "пофиксить" вряд ли возможно. Но... было бы приятнее видеть "правильное" сообщение об ошибке (просто предупредить пользователя, что путь оказался длинным и, скорее всего, поэтому не удалилось). А вообще шикарно было бы, если бы можно при этом было нажать "ну и ладно - тогда удалять мимо корзины" :D
Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy »

i3v писал(а):Причём сообщение об ошибке ( "Access denided... ")выглядит так, как будто файл кем-то залочен, хотя проблема, на самом деле, не в этом.
А вообще шикарно было бы, если бы можно при этом было нажать "ну и ладно - тогда удалять мимо корзины" :D
Я вот никак не дождусь нормальное сообщение при попытке записать файл больше 4GB на FAT-32... И чтобы при этом ещё файл нулевого размера там не оставался.
А вообще шикарно было бы, если бы можно при этом было нажать "ну и ладно - порезать по 4ГБ" :D

Как-то так :mrgreen:
i3v
Охотник за багами
Сообщения: 206
Зарегистрирован: Пн апр 27, 2015 8:39 pm

Re:

Сообщение i3v »

Qwertiy писал(а): Я вот никак не дождусь нормальное сообщение при попытке записать файл больше 4GB на FAT-32...
Это да... информативность сообщений об ошибках не очень.. но хорошо хоть, когда они хотя бы есть!

Я вот ещё одну очень странную штуку обнаружил: невозможно создать папку, с именем "A [non]". Говорит "Error! Directory wasn't created".
A если попытаться создать папку с именем "A [n]" то вместо неё получится "A e", "A t" и даже просто "A" иногда (безо всякого сообщения об ошибке), в зависимости от чего - не пойму.
Это такой странный баг? Или я "макрос" какой-то нашёл?
И если макрос - то как его выключить/обойти?
Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy »

i3v писал(а):Я вот ещё одну очень странную штуку обнаружил
Ура!!! Наконец-то кто-то наткнулся!
Я давно говорил, что надо это переделать: https://forum.unrealcommander.net/viewto ... =22&t=4777.
i3v
Охотник за багами
Сообщения: 206
Зарегистрирован: Пн апр 27, 2015 8:39 pm

Re:

Сообщение i3v »

Qwertiy писал(а): Ура!!! Наконец-то кто-то наткнулся!
Всегда пожалуйста :). Мне вообще в таких случаях нередко "везёт" :D.

Правда, даже если "[n]" ещё, возможно, фича (какая?) - то "A [non]"-то явный баг. Я было подумал, что это ошибка "невалидный подстановочный паттерн" (хотя в сообщении об ошибке ничего такого не написано, конечно). Но почему тогда "A [bsdf]" создаётся нормально? Похоже, тут всё-таки что-то не так, наверное - с самим парсингом строчки.


И, в догонку, только что наткнулся на ещё одно, даже более неприятное для меня явление: оказывается большая часть созданных мной за последние полгода md5 чексумм, скорее всего, некорректны: если в выделенной папке имеются файлы с длинными путями, то процесс доходит только до первого такого файла, а дальше "падает".
Например:
  1. если распаковать приложенный архив в "C:\temp\TestFileStructureWithLongPaths" и попытаться посчитать md5 от "c:\Temp\TestFileStructureWithLongPaths\abcdefghkL01\"
  2. то полученный файл будет состоять из одной строчки:

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

    59f2d2d7cc0b902aebfb88c118c3b7f9 *abcdefghkL01\aa.txt
    т.е. все остальные файлы будут проигнорированны, т.к., видимо, этот файл является первым в порядке обхода, а второй - уже умеет "длинный" путь, и на нём всё ломается - дальше не добавляются вообще никакие файлы.
  3. при этом не возникает никакого сообщения об ошибке :evil: , как-будто всё завершилось успешно! (мдя... похоже для "надёжного копирования" файлов с ПК на ПК через USB диск придётся искать что-то другое)
  4. дальше происходит вообще странное - папку "c:\Temp\TestFileStructureWithLongPaths\abcdefghkL01\" переименовать невозможно - она остаётся залочена Анриалом, судя по всему... (По крайней мере, если его закрыть - переименовать станет возможно)
  5. я в таких случаях проверяю, кто лочит файл с помощью Unlocker 1.9.2 ... Но... в данном случае он падает :shock: ... забавно. перевый раз с ним такое... Пойду его автору тоже напишу :mrgreen:
  6. субъективно, глючит не только unlocker - как-то странно подвисает вся система, если, например, попытаться в стандартном виндовском проводнике открыть контекстное меню папки "c:\Temp\TestFileStructureWithLongPaths\abcdefghkL01\". Странные баги....
Вложения
TestFileStructureWithLongPaths.7z
(1.83 КБ) 113 скачиваний
Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy »

i3v писал(а):при этом не возникает никакого сообщения об ошибке :evil:
Присоединяйся ко мне и начинай тоже убеждать, что о любой ошибке должно быть выведено сообщение.
i3v писал(а):мдя... похоже для "надёжного копирования" файлов с ПК на ПК через USB диск придётся искать что-то другое
С копированием, вроде, всё надёжно. Уж сколько у меня флешки глючат, проблем с ним ни разу не возникало :)
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

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

i3v писал(а):Но... было бы приятнее видеть "правильное" сообщение об ошибке (просто предупредить пользователя, что путь оказался длинным и, скорее всего, поэтому не удалилось). А вообще шикарно было бы, если бы можно при этом было нажать "ну и ладно - тогда удалять мимо корзины" :D
Полностью согласен с утверждением что более конкретное сообщение об ошибке смотрелось бы эффектнее, однако дополнительные сообщения об ошибках создают некоторое количество проблем в плане "работы" с этими ошибками и в плане локализации. Посмотрю что можно сделать.
i3v писал(а):Правда, даже если "[n]" ещё, возможно, фича (какая?) - то "A [non]"-то явный баг. Я было подумал, что это ошибка "невалидный подстановочный паттерн" (хотя в сообщении об ошибке ничего такого не написано, конечно). Но почему тогда "A [bsdf]" создаётся нормально? Похоже, тут всё-таки что-то не так, наверное - с самим парсингом строчки.
Программа ожидает что после "n" в шаблоне будет цифра, но там идет "on", соответственно весь шаблон выпадает в осадок. Соответственно с точки зрения программы это не баг.
i3v писал(а):И, в догонку, только что наткнулся на ещё одно, даже более неприятное для меня явление: оказывается большая часть созданных мной за последние полгода md5 чексумм, скорее всего, некорректны: если в выделенной папке имеются файлы с длинными путями, то процесс доходит только до первого такого файла, а дальше "падает".
Действительно, на сверхдлинных именах функция не тестировалась. Со следующего билда будет корректно, благодарю за содействие.
Qwertiy писал(а):
i3v писал(а):при этом не возникает никакого сообщения об ошибке :evil:
Присоединяйся ко мне и начинай тоже убеждать, что о любой ошибке должно быть выведено сообщение.
Вообще-то сообщение об ошибке есть, оно сохраняется в файл "fl_error.txt", но не показывается пользователю. Это сообщение имеет идентификатор "dir_op" или "file_op". Лоббирование пожалуйста осуществлять не нужно, так как выразить пожелание всегда проще, нежели воплотить его в жизнь... добавление сообщений для "любой ошибки" потребовало бы немыслимых затрат времени и других ресурсов.
Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy »

Max Diesel писал(а):Вообще-то сообщение об ошибке есть, оно сохраняется в файл "fl_error.txt", но не показывается пользователю.
Во-первых, должно именно показываться. Во-вторых, насколько я вижу, никуда оно не записывается.
Max Diesel писал(а):добавление сообщений для "любой ошибки" потребовало бы немыслимых затрат времени и других ресурсов.
Неправда. Достаточно сообщить о факте ошибки по типу "Что-то пошло не так", чтобы пользователь после этого сам проявил бдительность и порверил, всё ли он получил из того, что хотел.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

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

Qwertiy писал(а):
Max Diesel писал(а):Вообще-то сообщение об ошибке есть, оно сохраняется в файл "fl_error.txt", но не показывается пользователю.
Во-первых, должно именно показываться. Во-вторых, насколько я вижу, никуда оно не записывается.
Если хэширование каталога с длинными именами было произведено с результатом в одну строку, то в fl_error.txt запись "dir_op" будет добавлена.
Qwertiy писал(а):
Max Diesel писал(а):добавление сообщений для "любой ошибки" потребовало бы немыслимых затрат времени и других ресурсов.
Неправда. Достаточно сообщить о факте ошибки по типу "Что-то пошло не так", чтобы пользователь после этого сам проявил бдительность и порверил, всё ли он получил из того, что хотел.
Я имел в виду затраты времени и ресурсов с точки зрения написания программы, а не с точки зрения пользования ею. По мере возможностей я добавляю отображение критических сообщений, однако перебрать весь код, продумать все возможные варианты развития событий и расставить недостающие сообщения сложновато.
Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy »

Max Diesel писал(а):Если хэширование каталога с длинными именами было произведено с результатом в одну строку, то в fl_error.txt запись "dir_op" будет добавлена.
Уточнение:
1. Считаем хэш. Происходит ошибка, которая записывается в fl_error.txt.
2. Удаляем файл с хэшом.
3. Считаем хэш ещё раз. Ещё одна ошибка в fl_error.txt не добавляется.
UPDATE: Похоже, последняя ошибка перезаписывается.
Max Diesel писал(а):Я имел в виду затраты времени и ресурсов с точки зрения написания программы, а не с точки зрения пользования ею.
Я понял. Затраты будут гораздо меньше, если просто поменять запись в fl_error.txt.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

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

Qwertiy писал(а):
Max Diesel писал(а):Если хэширование каталога с длинными именами было произведено с результатом в одну строку, то в fl_error.txt запись "dir_op" будет добавлена.
Уточнение:
1. Считаем хэш. Происходит ошибка, которая записывается в fl_error.txt.
2. Удаляем файл с хэшом.
3. Считаем хэш ещё раз. Ещё одна ошибка в fl_error.txt не добавляется.
UPDATE: Похоже, последняя ошибка перезаписывается.
Ошибочность утверждения что "никуда оно не записывается" была доказана, факт перезаписи строки в данном случае никакого отношения к делу не имеет.
Qwertiy писал(а):
Max Diesel писал(а):Я имел в виду затраты времени и ресурсов с точки зрения написания программы, а не с точки зрения пользования ею.
Я понял. Затраты будут гораздо меньше, если просто поменять запись в fl_error.txt.
Да, именно в этой ситуации затраты будут меньше, так как информация в этом файле чисто техническая - пользователю она не представляет ценности, а мне как разработчику позволяет найти то место, где произошло исключение.

Вот виртуальный ключ, при котором все попадающие в fl_error сообщения будут отображаться заодно и пользователю (при факте что они не предполагают их отображение пользователю, их показ наверняка приятных впечатлений не добавит):
unreal:uncom.ini|settings|Show_fl_error_message|1
(со следующего после 1082 билда)
Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy »

Max Diesel писал(а):Да, именно в этой ситуации затраты будут меньше, так как информация в этом файле чисто техническая - пользователю она не представляет ценности, а мне как разработчику позволяет найти то место, где произошло исключение.
Я же сказал, выводить не техническую информацию, а сообщение о факте ошибки. Впрочем ладно, и так пойдёт.
Max Diesel писал(а):их показ наверняка приятных впечатлений не добавит
Их показ должен быть весьма редким явлением...
Впрочем, я помню, на чём проверить :)
i3v
Охотник за багами
Сообщения: 206
Зарегистрирован: Пн апр 27, 2015 8:39 pm

Re:

Сообщение i3v »

Ух, сколько понаписали :D

Cообщения об ошибках:
Qwertiy писал(а): Присоединяйся ко мне и начинай тоже убеждать, что о любой ошибке должно быть выведено сообщение.
Ну, собственно да - я с данной точкой зрения полностью солидарен. :mrgreen:
Max Diesel писал(а):Вот виртуальный ключ, при котором все попадающие в fl_error сообщения будут отображаться заодно и пользователю (при факте что они не предполагают их отображение пользователю, их показ наверняка приятных впечатлений не добавит):
unreal:uncom.ini|settings|Show_fl_error_message|1
(со следующего после 1082 билда)
Отлично, спасибо! Обязательно включу!
Qwertiy писал(а): Я же сказал, выводить не техническую информацию, а сообщение о факте ошибки. Впрочем ладно, и так пойдёт.
Ну, лично я считаю, что лучше выводить "техническую информацию" чем "просто ошибку". Тем более, если включаться эта опция будет "виртуальным ключом", и "блондинки" до неё не доберутся.

Про копирование
Qwertiy писал(а):С копированием, вроде, всё надёжно. Уж сколько у меня флешки глючат, проблем с ним ни разу не возникало
Ну, я имел ввиду, что я перед копированием создавал хеш, потом копировал вместе с файлами на другой ПК (через USB диск, малость подозрительный) и там проверял хеш (Или наоборот, создавал новый хеш-файл и сравнивал со старым). И считал что раз хеши проверил - значит точно не могла ошика проскочить - "надёжное копирование" получается. А выходит, что часть файлов таки могла быть не захеширована.


Длинные имена
Max Diesel писал(а):Действительно, на сверхдлинных именах функция не тестировалась. Со следующего билда будет корректно, благодарю за содействие.
Это всегда пожалуйста! Спасибо за оперативные исправления! ждём :)


Шаблоны
Max Diesel писал(а):
i3v писал(а):Правда, даже если "[n]" ещё, возможно, фича (какая?) - то "A [non]"-то явный баг. Я было подумал, что это ошибка "невалидный подстановочный паттерн" (хотя в сообщении об ошибке ничего такого не написано, конечно). Но почему тогда "A [bsdf]" создаётся нормально? Похоже, тут всё-таки что-то не так, наверное - с самим парсингом строчки.
Программа ожидает что после "n" в шаблоне будет цифра, но там идет "on", соответственно весь шаблон выпадает в осадок. Соответственно с точки зрения программы это не баг.
Ну...ок.. только тогда "правило" разделяющее имена папок на "валидные" и "невалидные" какое-то сложное получается. Обычно, насколько я понимаю, стараются такие правила сделать простыми... ИМХО, тогда уж логичнее ругаться на любую буквенную комбинацию в квадратных скобочках...
В принципе, всё это мелочь, конечно. Особенно если фича будет выключаться :).

Start Path для кнопок из тулбара
А я было уже хотел диалоговое окошко для создания папки себе сделать, без всяких шаблонов :).
И наткнулся на ещё один странный момент: вот, допустим, я хочу запустить нечто, в текущей папке.
В тестовый батник я пишу

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

echo %CD%
pause
и добавляю на тулбар кнопку, запускающую его. В поле start path пишу "%CD%", правильно?
Запускаю - вроде работает. Показывает что надо. Потом мышь только куда-то отвёл и ещё раз запускаю - показывает путь, соответствующий второй, неактивной вкладке...
Такое ощущение, что достаточно провести мышкой надо адресной строкой неактивной панели - и %CD% уже будет выдавать путь к ней, а не к активной панели (при этом путь, указанный рядом с "командной строкой" под панелями, конечно, не меняется)
(Даже с учётом того, что скрипт создания папки, похоже, уже писать не надо - фича с %CD% в startPath всё равно полезная - скажем, "7zFM.exe" запускать)
Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy »

i3v писал(а):Ну, лично я считаю, что лучше выводить "техническую информацию" чем "просто ошибку". Тем более, если включаться эта опция будет "виртуальным ключом", и "блондинки" до неё не доберутся.
В принципе, да. Но если эта техническая информация имеет вид

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

dir_op	1	2015-07-12 04:51:41	1082	d933c867
то для меня она представляет ни капельки не больше пользы, чем обычное "ошибка". В гугл с этой строкой не пойдёшь.
i3v писал(а):Ну...ок.. только тогда "правило" разделяющее имена папок на "валидные" и "невалидные" какое-то сложное получается.
Оно просто... получается.
Встретили квадратную скобку и в switch по первому символу.
Какой-то односимвольный литерал - проверили закрывающую скобку и сделали замену. Если скобки не было, оставили как есть.
Какая-то более сложная конструкция - полезли внутрь и начали парсить. Либо проворонили ошибку, либо собрали какую-то фигню, которую дальше не удалось использовать.
Ну и всё остальное остаётся как есть.
i3v писал(а):В поле start path пишу "%CD%", правильно?
Эм.. А напиши-ка %P вместо этого...
i3v
Охотник за багами
Сообщения: 206
Зарегистрирован: Пн апр 27, 2015 8:39 pm

Re:

Сообщение i3v »

Qwertiy писал(а):<...>то для меня она представляет ни капельки не больше пользы, чем обычное "ошибка". В гугл с этой строкой не пойдёшь.
Ну, обычно это только на первый взгляд так... После нескольких одноттипных ошибок они уже "запоминаются" и проще становится догадаться, что может быть не так...
Qwertiy писал(а):Оно просто... получается.
Ну, вот и я о том же... Обычно как-то чётче границу проводят, всё-таки...Ну да, оно уже не важно скоро будет, надеюсь :).
Qwertiy писал(а):Эм.. А напиши-ка %P вместо этого...
Попробовал - примерно то же самое.
А что, только у меня так?
Закрыто