It's a mess, but someone has to fix it
In RPM terminology, a "filter" is a program you configure RPM to launch, which does a certain task for you.
When we launch a process for a filter action, a filter transform, or the PCL to PDF utility, we periodically get a process tree so we can know if the process, or its descendants, are still consuming CPU.
The problem with this is that sometimes Windows returned a mess of wrong data. RPM used to have one check for that condition. Now we use around eight tests to verify the data returned by Windows and ignore the corrupt entries.
The issue we identified is possibly the most significant single contributor to stalled jobs. We have run over a hundred thousand tests verifying that this works.
Fix to spool manager adding critical folders
We sometimes run into a situation where a customer migrates the folders needed for jobs to a different drive, without creating any of the hierarchy we expect to find. For that reason, we upgraded the spool manager. When it looks for a folder, if neither the folder nor the containing folders exist, RPM will create them all.
More troubleshooting
RPM now records the user account running RPM, in the event log.
We also added message log events for user login and logout.