5

PuTTY падает, когда программа пытается выйти. Когда он падает, окно замерзнет и не закроется, несмотря ни на что. Принудительное закрытие не будет работать, диспетчер задач не будет работать. pskill из pstools (используя командную строку администратора) не имеет никакого эффекта - он говорит, что процесс был убит, но он остается. Ничто не заставит окно исчезнуть, кроме перезагрузки компьютера.

Это происходило в течение нескольких недель, возможно, из-за недавнего обновления Windows, но это только предположение. Это происходит не каждый раз, но, возможно, в 50% случаев. Он дает сбой, независимо от того, вызывается ли он вручную, введя команду "exit" или "logout", или когда он завершает сам, потому что компьютер перешел в спящий режим.

Это происходит только когда я использую туннелирование портов. У меня всегда открыто несколько окон PuTTY, и единственное, что вылетает, это окно с открытым туннелем порта.

Перед самым последним сбоем я открыл журнал PuTTY, чтобы посмотреть, что там написано. Последняя строка была "Состояние отправки команды 0 отправлено сервером", что кажется нормальным.

состояние выхода сервера 0

Вот скриншот моих настроек туннелирования портов, на случай, если это уместно:

портовый тоннель D9090

Вот окно ошибки Windows, которое идентифицирует тип ошибки как "AppHangB1":

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

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

Windows 7


Обновить

Я запустил предложенные средства отладки, которые генерировали дамп памяти и анализировали его. Это довольно много информации, поэтому я вставил ее в jsfiddle, который вы можете увидеть здесь. Я процитировал резюме ниже, но, пожалуйста, смотрите эту страницу для полного отчета, потому что это довольно много информации.

Описание: Обнаружена возможная блокировка или утечка критической секции в 0x041916d8, принадлежащей потоку 0 в putty.exe__PID__7768__Date__08_14_2018__Time_02_26_52PM__311__Manual Dump.dmp

Влияние этой блокировки: 25.00% заблокированных тем (Тем 2)

Следующие функции пытаются войти в этот критический раздел

mswsock!SockAsyncSelectCompletion+2a

Следующие модули связаны с этим критическим разделом:

C:\WINDOWS\System32\mswsock.dll от корпорации Microsoft


Обновление через 3 недели

Прошло почти месяц без сбоев, и за это время произошло еще одно обновление Windows. Сроки слишком случайны; Я думаю, что это должно быть вызвано обновлением Windows летом, возможно, в июле, и исправлено в августовском обновлении.

4 ответа4

2

В настройках конфигурации PuTTY настройка "Закрыть окно при выходе" может принимать участие в проблеме, поэтому попробуйте проверить другие доступные настройки.

Вы также можете попробовать альтернативный бесплатный продукт, один из:KiTTY, MobaXterm или Bitvise.

Если одна из альтернатив работает для вас, то сначала у вас есть решение этой проблемы. Во-вторых, сама проблема, вероятно, заключается в некоторой трудности в протоколе связи PuTTY с удаленным компьютером, и вы должны сообщить о проблеме разработчикам.

Однако, если ни одна из альтернатив не работает для вас, проблема, вероятно, не на вашей стороне. Вам следует проверить настройку SSH-сервера на удаленном компьютере, попытаться отладить его и опубликовать здесь журналы трассировки, если вы хотите, чтобы мы посмотрели. Если у вас нет контроля над удаленным компьютером, сообщите о проблеме его администратору.

2

PuTTY вылетает при выходе и требует перезагрузки компьютера

PuTTY падает, когда программа пытается выйти. Когда он падает, окно замерзнет и не закроется, несмотря ни на что. Принудительное закрытие не будет работать, диспетчер задач не будет работать. pskill из pstools (используя командную строку администратора) не имеет никакого эффекта - он говорит, что процесс был убит, но он остается. Ничто не заставит окно исчезнуть, кроме перезагрузки компьютера

Я называю это "зависанием", а не "падением". Сбой означает, что выполнение продолжает либо возвращать сообщение об ошибке (приятно), либо в случае серьезного повреждения памяти произойдет пауза (обычно короткая, иногда несколько длинная, редко - сторожевой таймер), и выполнение продолжится с BSOD или перезагрузкой (не приятно ).

С "зависанием" не будет времени ждать, что может продвинуть ваш прогресс, хотя другие потоки могут продолжать работать нормально, если ваш Переключатель задач не затронут и может переключиться на них.

Вполне возможно, что произошло то, что PuTTY создал подпрограмму VPN для туннелирования, и у этого процесса есть проблема; он не вернулся в PuTTY и поэтому PuTTY повешен.

В другом процессе может быть открыт временный файл или порт; завершение PuTTY вполне может закрыть подпрограмму, но, вероятно, не снимет блокировку файлов или портов с подпрограмм.

Как узнать наверняка - что происходит?

Читая веб-страницу сообщества Microsoft об этой ошибке под названием: « Проводник Windows 7 не отвечает - ошибка apphangb1 explorer.exe » говорит:

" Андре.Ziegler

Создайте дамп зависания в проводнике Windows:

http://www.msfn.org/board/topic/130005-creating-memory-dumps/

сожмите аварийный дамп как 7z или RAR и загрузите его в свой SkyDrive и опубликуйте ссылку здесь.

Создайте дамп, но вы можете проанализировать его самостоятельно или после поиска на всех сайтах SE дублирующего вопроса, спросите нас: «Как мне работать с a.Файл DMP?».

После этой ссылки на веб-страницу: « Создание дампов памяти » написано:

« Дамп памяти из приложения / процесса, который ВИСИТ (не падает):

  1. Создайте каталог с именем c:\adplus

  2. Откройте командную строку и перейдите в каталог, в который вы установили средства отладки. По умолчанию это «C:\Program Files\ Средства отладки для Windows»

  3. Введите в командной строке следующую команду:

cscript adplus.vbs -hang -pn appname -quiet -o c:\adplus

(где "appname" - это имя .exe приложения, которое висит)

  1. Как только отладчик завершит работу (это может занять некоторое время), окно (а) командной строки закроется, и в вашей папке C:\adplus появятся данные, которые можно проанализировать.

Дамп памяти из приложения / процесса, который происходит сбой (не висит):

  1. Создайте каталог с именем c:\adplus

  2. Откройте командную строку и перейдите в каталог, в который вы установили средства отладки. По умолчанию это «C:\Program Files\ Средства отладки для Windows»

  3. Введите в командной строке следующую команду:

cscript adplus.vbs -crash -pn appname -quiet -o c:\adplus

(где "appname" - это имя .exe приложения, которое вылетает)

  1. Как только приложение, к которому вы подключились на шаге 3, в конечном итоге падает, отладчик создаст файл (или файлы) .dmp процесса. Как только отладчик завершит работу (это может занять некоторое время), окно (а) командной строки закроется, и в вашей папке C:\adplus появятся данные, которые можно проанализировать.

Посетите эту веб-страницу поддержки Microsoft: « Средство диагностики отладки v1.2 теперь доступно », где описано использование инструмента DebugDiag.

Здесь обсуждаются:

  • Генерация дампов памяти:

    • Процесс Сбои

    • Процесс зависает или низкая производительность

Для отладки зависания процесса или снижения производительности используйте одно из следующих действий:

  1. Создайте правило производительности. Правило производительности может основываться на счетчиках производительности или времени ответа HTTP. Последний характерен для веб-серверов или веб-служб на основе HTTP. Правило «Счетчики производительности» позволяет вам захватывать серию последовательных пользовательских дампов, когда один или несколько счетчиков производительности превышают указанные пороговые значения. Правило HTTP Response Times позволяет вам использовать ETW (специфично для веб-сервера IIS) или WinHTTP (для проверки связи с любым типом веб-сервера или веб-службы на основе HTTP) для захвата пользовательских переходов по истечении заданного времени ожидания.

  2. Создайте серию ручных дампов памяти в медленном или зависшем состоянии, щелкнув правой кнопкой мыши имя процесса в представлении процессов и выбрав опцию «Создать серию дампов».

    Затем проанализируйте полученные файлы .dmp с помощью CrashHangAnalysis.asp и / или PerfAnalysis.asp (см. Ниже).

    • Память или использование ручки
  • Анализ дампов памяти:

    Одна из наиболее мощных функций DebugDiag - это возможность анализировать дампы памяти и генерировать файл отчета с анализом вместе с рекомендациями по решению выявленных проблем.

    DebugDiag использует «сценарии анализа» для анализа дампов памяти. В DebugDiag 1.2 поставляется 5 сценариев анализа:

    • Анализаторы сбоев / зависаний - CrashHangAnalysis.asp

    • Анализаторы давления памяти - DotNetMemoryAnalysis-BETA.asp

    • Анализаторы давления памяти - MemoryAnalysis.asp

    • Анализаторы производительности - PerfAnalysis.asp

    • Анализаторы SharePoint - SharePointAnalysis.asp ".

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

0

Похоже, у вас могут быть проблемы с фильтрами winsock, и ваше приложение блокируется из-за какой-то проблемы с драйвером / вводом-выводом.

В командной строке администратора попробуйте: netsh winsock reset затем перезагрузите компьютер и посмотрите, будет ли это иметь значение.

Вдобавок ко всему, вот еще кое-что, что можно попробовать:

  • Удалите все неиспользуемые программы VPN.

  • Удалите (и переустановите) драйвер для вашей сетевой карты.

  • Обновите драйвер для вашей сетевой карты.

  • Если вы недавно удалили антивирусный продукт, возможно, драйверы сетевых фильтров остались позади. Если это так, вы можете найти средство удаления для соответствующего продукта безопасности и запустить его.

-1

Попробуйте запустить два сканирования:

Сканирование 1

  1. Запустите CMD от имени администратора
  2. Введите SFC /scannow и нажмите ввод
  3. Когда сканирование закончится, откройте cbs.log в %windir%\logs\cbs\cbs.log
  4. Ищите cannot repair и скопировать файлы, которые не были восстановлены.
  5. После того, как вы нашли файлы, которые не были восстановлены (если есть), используйте установочный диск для доступа к файлам замены. Следуйте этим указаниям для получения файлов замены.

Сканирование 2 (Последнее средство)

  1. Запустите CMD от имени администратора
  2. Введите Chkdsk /f /r и нажмите ввод
  3. Вам будет показано сообщение о том, что объем будет заблокирован. Нажмите y а затем введите.
  4. Перезагрузите компьютер
  5. Сканирование займет некоторое время. Подождите, пока сканирование завершится.
  6. При перезагрузке перейдите в « Event Viewer > Windows > Application Log и найдите Winninet .
  7. Посмотрите на результаты вашего сканирования.

Я нашел ответ в сообществе Microsoft.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .