Чинить надо Find File

Здесь можно сообщить о найденных багах в Far.
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 11 times

Чинить надо Find File

Post by Max Rusov »

Build 3291 крашится при наличии такого макроса:



Воспроизводится при стандартном наборе плагинов, наличие плагина EdtFind - необязательно.
Для воспроизведения надо несколько раз нажать AltF7, Enter.

Падает по разному, чаще всего на экране остается сообщение:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
trap-log не образуется.

Shmuel
Posts: 6122
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 308 times

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

Post by Shmuel »

Этого макроса достаточно:
  1. local dlgFindFile = "8C9EAD29-910F-4B24-A669-EDAFBA6ED964"
  2. Macro
  3. {
  4.   area="Dialog"; key="Enter";
  5.   condition= function() return Dlg.Id == dlgFindFile end;
  6.   action=function() Keys("Enter") end;
  7. }
И заменить ф-цию export.ProcessDialogEvent в LuaMacro\utils.lua на
  1. function export.ProcessDialogEvent (Event, Param)
  2.   for k=1,10000 do end
  3. end
100% повторяемость. При этом данный макрос - единственный в системе, и никаких events не определено.

2useven10
Posts: 4037
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 185 times

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

Post by 2useven10 »

Shmuel ну так луа длл ассертит:

Code: Select all

║                              ║ *.*Assertion failed!
║                              ╟─────────────────────────────────────────────
Program: D:\Projects\far\far3\unicode_far\Debug.64.vc\Far.exe
File: lapi.c, Line 552         ║
║                              ║ Using code page:
Expression: L->top < L->ci->top║ All code pages
║                              ╟──────────────────────────────────┬──────────
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information. [x] Searc
║                              ║ [ ] Search for hex               │ [x] Searc
D:\Projects\far\far3\unicode_far\Debug.64.vc>─────────────────────┴──────────
возможно ему помогли, конечно, но кто в этом лучше тебя разберётся ?

2useven10
Posts: 4037
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 185 times

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

Post by 2useven10 »

оригинальный вариант у меня вылетал по ассерту при выделении памяти в Message(), похоже по куче проехались.
и Message() вызывался для вывода какой-то ошибки луа...

Shmuel
Posts: 6122
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 308 times

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

Post by Shmuel »

2useven10 wrote:Shmuel ну так луа длл ассертит:[......]
возможно ему помогли, конечно, но кто в этом лучше тебя разберётся ?
Стараюсь разобраться и сам, но тут завязано многое, кроме Lua. Подозреваю, что использование дополнительного потока в поиске играет роль.

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 11 times

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

Post by Max Rusov »

Upd. Появилось относительно недавно, раньше этот макрос к проблемам не приводил. Т.ч. смотрите последние коммиты.

2useven10
Posts: 4037
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 185 times

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

Post by 2useven10 »

:mrgreen: в каком рефакторинге билде это появилось ?

2useven10
Posts: 4037
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 185 times

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

Post by 2useven10 »

Появилось относительно недавно
Не так уж и недавно...

В 3221, это практически сразу после появления в макросах диалог-эвента, ассерт уже есть.
Проверял второй вариант, с заменой в utils.lua

Shmuel
Posts: 6122
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 308 times

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

Post by Shmuel »

Вроде разобрался, в чём дело. Этот баг проявляется, когда Фар вызывает OpenW плагина LuaMacro, не дожидаясь возврата из ProcessDialogEventW этого же плагина. Эти два вызова поступают из разных потоков.

Чинить надо Find File, на мой взгляд, а не LuaFAR/LuaMacro.

Shmuel
Posts: 6122
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 308 times

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

Post by Shmuel »

Поскольку чинить Find file вряд ли кто-то будет, сделал защиту в плагине.

User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

Shmuel wrote:Поскольку чинить Find file вряд ли кто-то будет
Баг есть? Надо на мантис.

Shmuel
Posts: 6122
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 308 times

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

Post by Shmuel »

John Doe wrote:
Shmuel wrote:Поскольку чинить Find file вряд ли кто-то будет
Баг есть? Надо на мантис.
Это к исходному репортеру.
Но теперь уже вышеприведенные макросы не будут валить Фар. То-есть плагин LuaMacro защищается с помощью CRITICAL_SECTION. Что касается других плагинов, эта защита на них не распространяется.

User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

Shmuel wrote:Это к исходному репортеру.
Это к тому, кто разобрался в чём корень проблемы, и может обосновать, почему чинить надо именно в фаре.

Shmuel
Posts: 6122
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 308 times

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

Post by Shmuel »

John Doe wrote:
Shmuel wrote:Это к исходному репортеру.
Это к тому, кто разобрался в чём корень проблемы, и может обосновать, почему чинить надо именно в фаре.
Если вас это действительно беспокоит, создайте тикет. Корень проблемы я описал в одном из постов выше.

User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

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

Post Reply

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