Sunday, February 26, 2012

Windows restart hangs on zombie process

Thanks to the indefensibly badly written drivers in QuickUSB, the workstation froze when I tried to reboot it. Here are the spoils of a half a day trying to find some solution. The short answer is that I was hosed without any recourse the moment the driver failed to get a response. All I have to console myself with is having learned a few things.

First off, taskman fails to kill the process that calls the QuickUSB libraries; the process just continues on.

The basic alternative tools available apparently do the same things that taskman would try, so they don't work either. Here's a few forums that pointed the start of this path.

This author suggested pskill, and the remainder of the post is frustrated users hurling insults at the author when it didn't work.

http://www.watchingthenet.com/how-to-kill-windows-processes-that-wont-die-or-terminat.html

This author suggested taskill, and the remainder of the post is frustrated users hurling insults at the author when it didn't work.

http://www.tech-recipes.com/rx/446/xp_kill_windows_process_command_line_taskkill/

pskill and taskkill are very nice utilities, however, and ship standard with XP pro. I tried using taskkill with parameters to operate on all processes for my userID and it still wouldn't kill the dead I/O processes; it killed everything except those. I eventually got taskman to launch, and used it's "run" function to get some IE's, cmd windows, and file explorers going even without a desktop! At some point the desktop just magically reappeared.

One of the commenters in the above threads suggested a fancy piece of freeware that has something like 16 kill methods, called apt for Advanced Process Termination. I tried it but it didn't work for me.

http://www.pendriveapps.com/advanced-process-termination-kill-running-processes/

Here is the best forum thread that I found on the topic, containing some actual signal. Some commenters futilely attempt to explain how a driver that's waiting on a response causes this problem (which matches what I'm dealing with) and exactly why normal process killing tools don't affect it. The thread is several dozen pages long and I was hoping that somebody somewhere would reveal a magic bullet for this kind of "zombie thread" but sadly nobody seems to have anything aside from cursing microsoft up and down.

http://social.technet.microsoft.com/Forums/en-US/w7itproperf/thread/598fe2b4-844d-412d-b195-5fa53dc62661

Someone mentioned Process Explorer, which suspiciously somebody before me had already put in the downloads folder on this workstation. I tried it, it could find the zombie thread, but it couldn't terminate it. Hoever, Process Explorer sure is gorgeous.

http://social.technet.microsoft.com/Forums/en-US/w7itproperf/thread/598fe2b4-844d-412d-b195-5fa53dc62661

Oh yeah, I also tried attaching debuggers to the processes, calling the debugger from a cmd window using the -p option but they said access denied.