This article is more than 1 year old
Don't fear the Thread Reaper, a Windows ghost of bugs past
Otherwise known as 0x13 – and not coming to a desktop near you
To celebrate Halloween this week, Windows veteran Raymond Chen has dug into the lengthy list of Windows bug check codes and come up with something obscure and vaguely threatening – the Thread Reaper.
It is bug check 0x13
and named EMPTY_THREAD_REAPER_LIST
.
Where did this code come from? After all, it was never used in any released versions of Windows NT, and Chen reported that a hunt through the Windows Error Reporting database did not turn up any mention of the EMPTY_THREAD_REAPER_LIST
bug check code other than a memory failure that had flipped a bit on a 0x113 bug check.
The question, therefore, is, what was this bug check code used for? According to Chen, it was introduced early in the development of Windows NT and assigned a number. Numbers are never reassigned to avoid the potential for confusion, so it remained, even if it would never be triggered.
Chen explained: "In the Windows kernel, objects are generally responsible for destroying themselves. This doesn't pose a problem for most categories of objects. But threads are a little stuck: Threads can destroy themselves for the most part, but the thing they can't destroy is their own stack, because they're executing on that stack."
So, once done, a thread terminates and cleans itself up. And just before shuffling off into the great hereafter, it notifies the thread reaper that its remains are OK to be, well, reaped. Chen added: "The thread reaper is a component whose sole purpose is to free the stacks of expired threads."
- Does Windows have a very weak password lurking in its crypto libraries?
- First ever 64-bit version of Windows rediscovered … and a C compiler for it too
- Janet Jackson music video declared a cybersecurity exploit
- Microsoft veteran on how he forged a badge to sneak into a Ballmer presentation
Which is all well and good, unless the thread reaper was told to reap something that was not there and … boom. The Windows bug check would occur.
It's as good a theory as any.
Chen speculated that the thread reaper must have undergone a redesign that meant the error would not occur and the bug check would not be thrown. The code, therefore, remained in the documentation but served no purpose other than spawning a few hundred bad Blue Öyster Cult puns.
The Register asked Dave Plummer – he of Windows Task Manager fame – for his thoughts. "Not something I ever ran into!" he said. "It'd be a fatal condition if it happened, as it 'should never happen,' and hence the bug check."
We've all experienced the odd Blue Screen of Death in our time. Perhaps it is an apt moment to add the Blue Öyster Cult Screen of Death to the list of things Windows users need to worry about. ®