Open rufatpro opened 8 years ago
Расшифровка ошибки проста - Windows (Kernel-Mode): {Fatal Application Exit} %hs +
Сбой произошёл по адресу 0x03b57148, а вот что в данный момент в памяти задачи, какая у вас ОС, версия NetBox, Far, какие скрипты и рунтаймы у вас установлены сюань. По крайней мере я угадать это не берусь. Самое большее что я могу - это помочь вам с расшифровкой ошибки.
Давайте попробуем другой вариант сборки (свой скопируйте в иной каталог): FarNetBox-2.3.0_Far3_x64.7z - v2.3.0.436, собрано в MS VC++2010.
P.S.
Если я правильно понимаю это ваш баг-репорт - http://bugs.farmanager.com/view.php?id=3203 ?
Баг репорт мой, но на него никто не реагирует, у меня far по 10-30 раз в день падает, уже замучился. Сборку попробую, можно ли мне еще для 32 битной версии Far-а архив?
Раньше у меня Netbox не падал, началось это где-то пол года назад, как обновил его. Последующие обновления не помогают, пробовал и ночные сборки, - толку нет.
Текущие версии Far: Far Manager, version 3.0 (build 4700) x86 и Far Manager, version 3.0 (build 4700) x64 ОС: Windows 7 и Windows Server 2003 SP2 Неважно какая ОС, Far падает на разных версиях ОС.
5) еще может упасть при выполнении команды shell, пример: cd /etc, после этого идет обновление папки.
Та же проблема. Win7 x64, Far 3.0 (build 4700). Часто падает при обновлении панелей с смене директории при работе через SFTP. Чувство, как будто снова вернулся на Win98 - F2 нажимаю после каждого слова. Кроме того, не всегда показывается актуальное содержимое при операциях с файлами и возврате в посещённую директорию. Приходится нажимать Ctrl+R.
Может какую-то диагностическую информацию пособирать для выявления проблемы если не у всех воспроизводится?
Кроме того, не всегда показывается актуальное содержимое при операциях с файлами и возврате в посещённую директорию. Приходится нажимать Ctrl+R.
согласен, у меня точно такая же ситуация, плагин кеширует некорректно, в более ранних версиях такого не наблюдалось, возможно это нужно в отдельный баг вынести?
Пожалуйста - FarNetBox-2.3.0_Far3_x86.7z версия 2.3.0.436, собрано в VC++2010.
С самим Far - тут я бы порекомендовал его обновить до b4746 ибо за это время в нём устранено много ошибок способных всем кровь портить.
С внутренним кэшированием дерева - вот это я всегда включаю т.к. зачастую сервера обновляют дерево ранее чем сей кэш проснётся. Я с этим давно, ещё на первых версиях rush встретился и с тех пор на моих системах кэширование сетевых каталогов включается только для NFS, да и то на быстрых каналах. Иначе можно получить мягко скажем странные результаты. Причём как по вине железяк, так и в виде реакции людей, коим после объяснять людям что это они ошиблись, и порой выясняется что они и азов-то не знают, но будучи убеждены в своей правоте никого не хотят слушать.
Усё вместе Far, часть скриптов и плагинов можно тут отыскать Far3.
С отдельным багом для кэша - давайте сами для себя поймём что мы видим, а там и решение примем как разберёмся. А то заведём, а он не подтвердится и зачем он нам в таком случае?
При сбоях нам нужны дампы, стек вызовов, сообщение об ошибке. Ну, тут нам может помочь Process Hacker, а так как тут поминалась Server 2003, то на ней придётся использовать версию 2.38 Process_Hacker-2.38-bin.7z, c Вин7 и новее - v2.39 Stable / v3.0 Dev (документация в архивах! если не прочитать - будет куча ошибок в применении!). Он позволяет нам через контекстное меню процесса получить доступ к его низкоуровневым структурам в том числе и к стеку тредов и просмотру памяти, и т.д. Им можно глянуть с чем мы встретились. У меня есть кое какие мысли на сей счёт, но надо бы проверить.
Баг с кешированием действительно есть, я каждый день с этим сталкиваюсь по несколько десятков раз. При Upload-е файла на сервер плагин обновляет папку куда, залил файл. Но показывает предыдущее состояние панели до аплоада, можно даже видео снять чтобы быть убедительнее.
Я и по вашему описанию смог представить что вы видите, но может кому другому действительно стоит видео показать . Ведь мы все разные, и что одному понятно из описания другому стоит представить в виде видео. Так что думаю не помешает.
вот видео: https://youtu.be/8ckyp5C_Jns
А если увеличить тайм-аут ожидания на вкладке Соединение до 90 -120 сек? Сервера FTP обычно отвечают не быстро и дефолтный период 15 сек зашитый сейчас в код слишком мал для них, да и сервера обычно имеют защитный интервал от атаки UDP -флудом - если с запросы на установление соединения от клиента поступают до ответа на них сервера, то он считает это Flud-атакой и временно блокирует IP клиента , а при повторе атаки IP клиента автоматически блокируется сервером до вмешательства админа.
Так что я бы поставил тайм-аут FTP/SFTP примерно 90, а при очень загруженных серверах и все 120 секунд - если ответ сервера придёт раньше хорошо, нет - тогда произойдёт реконнект, да и если данные хранятся на удалённом домене через симлинки это так же увеличивает необходимое время ожидания ответа сервера.
Этот параметр и так был выставлен в 3600 (был подобран опытным путем ранее), так что это не влияет точно. Кроме того выделенные сервера, на которых проходят эти ошибки все под моим контролем и в параметрах sshd сервера нет защиты от такого типа флуда, блокировка по IP на стороне сервера наступает только через несколько попыток неудачного коннекта (перебора пароля).
Здесь идет речь именно об некорректном кешировании на стороне клиента. Еще раз повторюсь в более ранних версиях плагина не было подобных проблем.
по поводу:
С самим Far - тут я бы порекомендовал его обновить до b4746 ибо за это время в нём устранено много ошибок способных всем кровь портить.
где можно взять эту версию? вот здесь http://farmanager.com/download.php?l=ru версия 4744 а здесь: https://yadi.sk/d/oc1fPSIbhvvwT ver 3.0 build 4744 SVN r14346
Да, это моя опечатка, и в changelog.txt FarUE3 они есть, но это текст, в следующей ревизии устраню (надоело в changelog.txt Upd xxx писать :) ). Реально на ЯД лежит версия 3.0 b4744 r14346.
Буду тестировать несколько дней последнюю версию, позже отпишусь о результатах.
Имя сбойного приложения: Far.exe, версия: 3.0.4700.0, отметка времени: 0x575beb99 Имя сбойного модуля: NetBox.dll, версия: 2.3.0.436, отметка времени 0x575bf7bb Код исключения: 0x40000015 Смещение ошибки: 0x0000000000325c86 Идентификатор сбойного процесса: 0x18cc Время запуска сбойного приложения: 0x01d1e7d4dc9fbf15 Путь сбойного приложения: C:\Program Files\Far Manager\Far.exe Путь сбойного модуля: C:\Program Files\Far Manager\Plugins\NetBox\NetBox.dll Код отчета: 7411e4e7-53df-11e6-8bd3-54ee756b65af
2underscores-vic
Тут уже известно. Официальная версия с FarManager.com ( http://www.farmanager.com/download.php?l=ru ) собирается MS VC++2015 и это вылезают "оптимизации и усовершенствования" компилятора сделанные Микрософт. :)
От же твари... А ежели mingw плагин пересобрать, поможет? Или нужно и сам FAR пересобирать? И можно какие-нибудь ссылки на информацию про "оптимизации и усовершенствования" в MS VC++2015, касающиеся нашей темы?
Имеет ли место быть это: плагин Netbox использует Shared Memory для кеширования директорий. Если да, то скорее всего проблема в одновременном доступе к этой Shared Memory с разных экземпляров Far-а. Тогда это объясняет сразу 2 бага: 1. падение 2. неверное обновление директории.
Я собираю в VC++2010 и по словам w17 этот вариант стабильнее, чем собранный в VC++2015. Был эксперимент когда мы пытались спровоцировать крах плагина и это удалось только в сборке VC++2015.
В MinGW с ходу не соберётся - код под VC++ написан, да и если глянуть https://github.com/michaellukashov/Far-NetBox/blob/master/src/NetBox/CMakeLists.txt много интересного вылезет.
Имеет ли место быть это: плагин Netbox использует Shared Memory для кеширования директорий.
Как-то не смотрел ибо в голову не приходило поскольку у себя я кэширование каталогов давно выключил (сейчас причины не вспомню).
у себя я кэширование каталогов давно выключил
Оно отключается в плагине? Как это сделать? В меню конфигурации плагина не нашёл такого
Оно отключается в плагине? Как это сделать? В меню конфигурации плагина не нашёл такого
В свойствах соединения (F4) наверху есть стрелка вправо в виде треугольника во вкладке "Directories" есть "Cache visited remote directories" и "Cache directory changes"
Спасибо, нашёл. Попробую поработать без кеширования
И попробуйте вариант собранный в VC++2010 - если поглядеть что в VC++ 2015 Update 3 наменяли плохо становится....
если поглядеть что в VC++ 2015 Update 3 наменяли плохо становится....
А ещё он отправку телеметрии включает в бинарник. Но все эти исправления давно уже пора внести в "самобытную" микрософтовскую интерпретацию Стандарта. Ломается, в основном, изначально неправильно написанный код. Ну и, конечно, правильный тоже временами попадает в эту мясорубку...
А где взять бинарник собранный VC++2010? Выше вижу только ссылку на 32-битную сборку.
Ну, с телеметрией многие поступают просто - отключают на уровне кода. Так сделано в Far3 (в CRT отрублено), Process Hacker - в этих я видел соответствующий код в сорцах, насколько я знаю и другие так же делают.
FarNetBox-2.3.0_Far3_x64.7z - простите, забыл с ходу ссылку дать. :(
У меня сейчас Far3 новый лежит - b4745 r14348 (FarUE3 x86, -test - x64, -latest x86 и x64 в архиве) в него уже включена новая UnRAR.dll v5.40.4.2036 (официальной сборки нет, это из unrarsrc-5.4.4.tar.gz собрана в VC++ 2015 Update 3 вызовов телеметрии не обнаружено).
Получается точно виноват блок кеширования в плагине, как его отключил вообще редко падал, может 1-2 раза за несколько дней. При включенном кешировании падал чаще. Тестировал на этой сборке ночной: Far30b4744.x86.20160727.msi
Ну, там версия 2.3.0.436 собранная VC++2015, так что вероятно ещё и он свою лепту вносит...
Попробуйте для сравнения связку b4747 r14352 (у меня выложена) с NetBox собранным в VC++2010 - я пока возможно им собираю.
Ну, там версия 2.3.0.436 собранная VC++2015, так что вероятно ещё и он свою лепту вносит...
это маловероятно, т.к. с включенным кешированием падает постоянно
Ну, будем надеяться, а я пока Process Hacker пересоберу - были опечатки в VERSION_INFO нового плагина. Устранили в рабочем порядке, пересоберу.
После отключения кеширования, за два дня ни одного падения. Версию не менял. Протокол, правда, ещё сменил с SFTP на SCP
Значит в логике управления памяти кэша причина. Там копаться нужно.
однозначно проблема в кешировании, за несколько дней ни одного падения Far-а
Ясно. Видимо Миша там что изменит, так что я пока его включать не стану.
2. эта же ошибка:
Far.exe - Application Error
The exception unknown software exception (0x40000015) occurred in the application at location 0x03937148.
выходит после редактирования и сохранения файла на удаленном сервере, т.е. нажимаю F2 далее Esc, файл сохранился на удаленном сервере, пошло обновление папки и выходит вышеуказанный Exception
Far.exe - Application Error
The exception unknown software exception (0x40000015) occurred in the application at location 0x03827148.
Far.exe - Application Error
The exception unknown software exception (0x40000015) occurred in the application at location 0x03b57148.