Неубиваемые процессы часто зависают надолго - PullRequest
4 голосов
/ 06 января 2012

После переустановки Windows 7 Ultimate 64-bit SP1 иногда процессы закрываются очень долго. Это чаще всего случается при запуске их с VS2010, но это не ограничивается этим. Распространенным случаем является приложение Windows с консолью (/ SUBSYSTEM: console), которая, как представляется, закрывается правильно, но консоль остается открытой в течение нескольких секунд или минут. В конце концов на консоли появляется сообщение «нажмите любую клавишу, чтобы закрыть», и процесс можно прервать.

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

  • Я установил Windows 7 Ultimate 64-bit SP1, но на этот раз ванильная (не N ) версия
  • Единственный драйвер, который я установил вручную, это драйвер дисплея NVIDIA, но я пробовал несколько версий WHQL
  • Симптомы близко совпадают с вопросом на Консоль отладки Visual Studio иногда остается открытой и закрывать ее невозможно Однако это затрагивает даже не консольные приложения.
  • От этого страдают как собственные, так и управляемые приложения.
  • НЕПРАВИЛЬНО: Я полагал, что пострадали только 32-битные процессы, но страдают и 64-битные.
  • если отладчик уже подключен, и я прерываюсь, пока процесс ожидает, отладчик говорит:

Процесс заблокирован (или не выполняется *
) код режима пользователя). Все темы были остановлены.

  • Я не могу подключить отладчик к процессу, пока он находится в этом состоянии
  • Я не могу убить эти процессы зомби из диспетчера задач или ProcessExplorer, даже при закрытии всех дескрипторов, которые ссылаются на процессы. (Хотя я не могу закрыть дескрипторы lsass.exe)

  • ProcessExplorer говорит, что функция зависания единственного потока каждый зависший процесс имеет значение ntdll! RtlDosSearchPath_Ustr.

  • Большую часть времени мне приходится полностью закрывать Visual Studio, чтобы процессы зомби закрываются.
  • Последнее событие, которое Process Monitor видит при зависании в каждом случае, Выход из потока, который завершается успешно, и похоже, что выход занимает нормальное количество времени. Когда процесс окончательно закрывается, никаких событий показать вверх.
  • LiveKd ничего не показывает, когда я следую инструкциям на http://blogs.technet.com/b/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Кажется, виновником является плохой драйвер, поэтому я скоро переустановлю Windows.

...