Глюки и баги, появившиеся в «ночных сборках»

Здесь можно сообщить о найденных багах в Far.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe »

Внимание: Тема служит исключительно для обсуждения свежих багов Far 3.
  • Под свежими понимаются глюки и баги, проявляющиеся в "ночных" сборках, но отсутствующие в "стабильных".
  • О проблемах, которые существуют давно, следует сообщать в отдельных темах, либо на багтрекере.
  • Вопросы, связанные с ночными сборками, но не касающиеся багов самого фара, обсуждаются в другой теме:
Если баг, о котором вы сообщили, не исправлен "по горячим следам", значит необходимо создать запись на багтрекере

Предыдущие ночные сборки доступны здесь.

Поведение при обнаружении проблем.
https://t.me/FarManager — Telegram чат
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by zg »

Latest post of the previous page:

2useven10 wrote: Fri 03 Aug, 2018 15:23@zg после первого '''этого" теперь валится arclite, при распаковке файлов с удалением архива.
как воспроизвести?
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

войти в архив, выделить что-нибудь, F5, в диалоге извлечения [x] Delete archive after extraction
Last edited by 2useven10 on Fri 03 Aug, 2018 16:35, edited 1 time in total.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

arclite plugin.cpp #270

Code: Select all

    extract_dir = *dest_path;
    extract(pp_items, extract_dir, move != 0, op_mode);
    if (extract_dir != *dest_path) {
      *dest_path = extract_dir.c_str();
extract_dir - member Plugin, который после extract() уже удалён.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

арклайт я поправил, он теперь не падает.
b#5249 падение не устранил.
imho лучше всё-таки откатить, а для синхронного закрытия сделать параметр или новый FCTL_...
любой плагин поправить не сложно, если автор следит за развитием событий.
но есть много плагинов которые стабильно работают годами, хотя авторы уже ими не занимаются или появляются редко.
когда это аукнется - только вопрос времени. не удивлюсь, что например это окажется таким случаем.
Last edited by 2useven10 on Wed 08 Aug, 2018 19:44, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by zg »

2useven10 wrote: Wed 08 Aug, 2018 19:43imho лучше всё-таки откатить, а для синхронного закрытия сделать параметр или новый FCTL_...
то что было, оно не сказать чтобы сильно асинхронное было. оно было до первого чтения фаром ввода плюс ещё какие-то варианты. сейчас по крайней мере это работает детерминировано.
2useven10 wrote: Wed 08 Aug, 2018 19:43не удивлюсь, что например это окажется таким случаем.
исходники доступны, из них видно, что FCTL_CLOSEPANEL используется только при выходе из корня в реестре на удалённой машине. а по ссылке дело в поиске. поиск кривой и на плагиновых панелях возможны падения.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

Code: Select all

zg 15.08.2018 00:00:47 +0300 - build 5256
1. все вызовы плагинов защищены глобальной критической секцией.
Снова здравствуй песня.
Теперь не только в arclite но и в 7-zip.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by zg »

с одной стороны есть апи, которое непотокобезопасно.
с другой — есть фар со своим поиском, который вызывает плагины, которые и сами непотокобезопасны и вызывают непотокобезопасное апи.
с третьей — есть арклайт, который и сам непотокобезопасен и ещё и вызывает непотокобезопасное апи из неосновного потока.
как это вместе скрестить — я не знаю. по мне — так виноват арклайт.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

zg wrote: Wed 15 Aug, 2018 15:25 есть арклайт, который и сам непотокобезопасен
не сталкивался с этим. если можно более обоснованно.
арклайт сам не рулит многопоточностью, колбэки из доп. потоков идут от 7z. можно сознательно срезать производительность архиватора в силу того, что фар почти ничего не может делать не в основеом потоке, а то что раньше работало мы дополнительно задавили. не могу сказать что такое развитие мне нравится.
Last edited by 2useven10 on Wed 15 Aug, 2018 15:41, edited 1 time in total.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by NightRoman »

Что означает на практике "все вызовы плагинов защищены глобальной критической секцией"?
Плагину нельзя будет вызывать Фар АПИ из неглавного потока или что-то другое?
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by zg »

2useven10 wrote: Wed 15 Aug, 2018 15:40не сталкивался с этим. если можно более обоснованно.
куда уж обоснованнее? но это немного уход от темы.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by zg »

NightRoman wrote: Wed 15 Aug, 2018 16:32Плагину нельзя будет вызывать Фар АПИ из неглавного потока или что-то другое?
апи никогда нельзя было вызывать из неосновного потока.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by NightRoman »

zg wrote: Wed 15 Aug, 2018 16:33 апи никогда нельзя было вызывать из неосновного потока.
Это не совсем так. Никогда нельзя было одновренно из нескольких. Это не одно и то же.

Например, PowerShellFar, когда запускает скрипты *всегда* приводит к вызову Фар из неглавного потока. Так работает ядро ПШ, и это изменить плагин не может.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by zg »

NightRoman wrote: Wed 15 Aug, 2018 16:37Это не совсем так. Никогда нельзя было одновренно из нескольких. Это не одно и то же.
это действительно не одно и то же, и я не припомню, где гарантировалась работа вашего варианта.
NightRoman wrote: Wed 15 Aug, 2018 16:37Например, PowerShellFar, когда запускает скрипты *всегда* приводит к вызову Фар из неглавного потока. Так работает ядро ПШ, и это изменить плагин не может.
с трудом вериться.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by NightRoman »

zg wrote: Wed 15 Aug, 2018 17:06с трудом вериться.
ПШ использует отдельный поток для выполнения скрипта. В частности, это дает возможность остановить выполнение в любой момент, прервав поток. Вызывающий поток (главный, плагина) при этом "блокирован". Таким образом, вызовы Фар гарантированы только из одного потока скрипта. Потокобезопастность обеспечена. АПИ Фара вызывается только одним потоком. Не главным. Главный в это время ждет.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by NightRoman »

А где именно в энциклопедии написано, что нельзя вызывать Фар из неосновного потока? Может, стоит переформулировать точнее. Потокобезопастность - это доступ к общим ресурсам по одному потоку зараз, а не только из главного потока.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

Написано или нет, скорее всего это до сих пор работает.
Мало того, если в том же арлайт для выполнения работы создать отдельный поток, заблокировав основной (из которого пришёл запрос на извлечение файла из архива) то я думаю - всё отработает без проблем, но это навязывание обязательности удаления гланд через известное место.
Post Reply

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