Geek's summary: Win9x Explorer.exe stops responding for long periods after file operations, and once this starts, it continues as long as Explorer.exe is running. There may be a fix.
The following situations and bugs are not this problem pattern:
Affected software
The problem has been described as affecting Windows 98 with Internet Explorer 6 installed. I've seen it often and for so long that I can't recall whether earlier versions of Win9x and IE are involved, or if it affects Windows ME as well; it does not affect Windows XP. It has been said that upgrading to Internet Explorer 6 SP1 fixes the issue, but that has not been my experience - I've seen three Win98xx PCs with IE 6 SP1 with this problem in the last week alone. In my experience, the problem doesn't start straight after any particular upgrade or update.
The target window of a file operation stops responding when the operation completes, and remains unresponsive for several minutes, then spontaneously returns to normal. It's interesting that the problem "latches" from non-existence to frequent occurrence at two levels; for the life of an installation, and for the life of an Explorer.exe runtime session.
Details for each affected system:
Details for each affected Windows session:
Details for each problem event:
* It's standard practice here to set Explorer instances to run as separate threads
The following do not exclude the problem:
Resource heaps: I've seen variable mileage with this, i.e. Resource Meter reporting low heap space when the problem occurs, but I've seen low heap space and no problem, as well as the problem with normal heap space, on the same affected PC. I also notice no correlation to uptime, as would be typical if heap leakage were a trigger factor.
GDI issues: Failure to repaint any part of the target window has been interpreted as a sign that a GDI failure is the cause. As other windows are not affected, I think the mechanism is more likely due to the target window being "too busy" to process OS messages to that process, so that the process fails to repaint itself after messages that indicate a need to do so.
Per-item overhead: Because this
is usually associated with large number of items, one wonders if this is a
scalability issue, e.g. that some per-item overhead has been underestimated.
Relevant observations:
- problem starts only when the operation is "finished", so it's not
an on-the-fly "cost"
- even the initial trigger operation can be "small", i.e. renaming
one file
- duration of post-operation problem period feels the same,
unrelated to item count
Whatever the cause, it seems to follow at the end of the operation (perhaps
the code is expected to finish quickly enough not to bother including it in
the "progress indicator" period), or after the operation function has
completed and returned.
Recycle Bin Desktop.ini: At one time, I thought I found the cause; absence of Desktop.ini in a \Recycled in one or more hard drive volumes, causing that volume's Recycled to display a generic yellow folder icon. At first it appeared that deleting a Desktop.ini in a volume's \Recycled would precipitate the problem and that copying one back (all volumes' \Recycled seem to have identical Desktop.ini) would clear it. But as testing went on, this became inconclusive.
Swap file or free HD space: This is not a factor, as I've seen this when there's over 1G of free space on all volumes, and when free space is more than double the bulk of the file operation.
Low memory: Not a factor either, as I've seen this with anything from 16M to 512M physical RAM, and with ample free space on C: for an unlimited "let Windows manage..." swap file.
Typical setup
Most systems I set up have the
following in common...
- primary C: plus D:, E:, F: on extended partition
- mix of FAT32 and FAT16 volumes
- each Explorer session to run as new process
- show all files, paths and extensions
- disable active desktop and View As Web Page
- display List view
- NoDriveTypeAutoRun = 9D or BD (suppress HD autorun)
...but I've seen this with more "generic" systems as well.
It has been noted that uninstalling IE 6 and falling back to older versions, typically IE 5.5, fixes the problem - at the risk of bringing back the MIME-spoofing defect and other vulnerabilities.
A better fix is suggested at http://www.frankprovo.com/win98ie6filesproblem.htm:
I like the sound of this fix, as it preserves most of IE 6, and there have been many claims that this not only fixes the problem, but causes no other problems that one might expect from the "version soup" effect.
To be confident of the safety of this fix, I'd like to know what exploits (if any) are re-exposed by reverting to IE 5.5 SP2 versions of these two .DLL files, and this could be tricky to test definitively if some contexts access the ones in System while others access the ones in Internet Explorer base directory.
(C) Chris Quirke, all rights reserved, April 2005