SPOOLER HANG / CRASH
Description: Two frequent problems encountered in Windows printing involve either a hang or a crash of the print spooler (spoolsv.exe). There are many different reasons you may run into this kind of problem, but the data collection required for troubleshooting is similar.
Scoping the Issue: The first thing that needs to be determined is whether the spooler is hanging or actually crashing. We collect similar data in both scenarios, but with a slight variation.
- Hang: If the spooler is hanging, printing will slow down, but in some cases it will continue on its own with no user intervention required. However, in many cases, the spooler may need to be restarted
- Crash: If the spooler is actually crashing, the Print Spooler service exits unexpectedly and may require a manual restart.
Data Gathering: In all instances, collecting either MPS Reports with the General, Internet and Networking, Business Networks and Server Components diagnostics, or a Performance-oriented MSDT manifest must be done. Additional required data may include the following:
Spooler Hang: Make a note of the time the hang occurred. During the hang, we will need a series of dumps of the print spooler using ADPlus.vbs in Hang Mode. In general, capture 3 to 5 dumps of the spooler with about 30 seconds in between each dump. For more information, see our blog post, Capturing Application Crash Dumps – the basic syntax for ADPlus is in the post. Instead of using the –crash switch, use the –hang switch.
Spooler Crash: The information in our blog post, Capturing Application Crash Dumps outlines a number of ways in which you can capture a dump of a spooler crash, including ADPlus, DebugDiag and Dr. Watson.
Troubleshooting / Resolution: The steps below are some things to review and try:
- If the problem appears to be reproducible using a specific document or printer, try a different printer or print driver
- If you are comfortable with debugging, check the dump files for application locks, long running threads or application delays (hang dump). For crash dumps, you can use the !analyze –v command to see if the cause of the crash is identified. However, the output of this command may not always identify the real culprit