Explorer/COM thread loop bug on folder copy
I've had this occur many times before when cloning data on drives, but have just worked out what actually triggers the bug;

if a folder tree being copied by explorer contains a shortcut created by another system, that would not be valid on the current 8.1 system, upon explorer hitting said shortcut either the underlying COM Surrogate (dllhost) or the explorer process itself will get caught in an infinite task thread loop. While everything still responds correctly, the copy window will be permanently stuck on attempting to copy the shortcut file, you cant pause, cancel or close the window and must terminate the COM Surrogate instance for it to bail.

Code-wise I'd say it's attempting to read the shortcut as a folder, and as such then gets caught in retrying. Also note that either of the process instances will consume an entire logical CPU thread due to being stuck without a timed sleep.

- windows 8.1 pro x64 in use at times of bug occurring, managing data on drives from vista (32bit), 7 (64bit) and 8/8.1 (64bit pro) systems.
June 22nd, 2015 3:00am

Hi Paul,

"if a folder tree being copied by explorer contains a shortcut created by another system"
What do you mean by saying "created by another system"? How did you make the shortcut?

If the shortcut is created by another system, we may be lack of permissions to operate it. We can try to take owner of this file and configure the operations privilages to have a check.

Best regards

Free Windows Admin Tool Kit Click here and download it now
June 24th, 2015 3:44am

The shortcut is an existing file created at some point by another system on it's own drive, said drive then being pulled out and a data copy being performed. Permissions are fine, already checked that.

Simply put there's a stage in the code that isn't responding correctly to an error state on a file copy, instead of giving the user an error and option to skip the file, the thread just loops itself.
Alternatively the code tries to access the shortcut like it were a directory, and getting in a retry loop with the same problem.

June 24th, 2015 4:05am

The shortcut is an existing file created at some point by another system on it's own drive, said drive then being pulled out and a data copy being performed. Permissions are fine, already checked that.

Simply put there's a stage in the code that isn't responding correctly to an error state on a file copy, instead of giving the user an error and option to skip the file, the thread just loops itself.
Alternatively the code tries to access the shortcut like it were a directory, and getting in a retry loop with the same problem.

Free Windows Admin Tool Kit Click here and download it now
June 24th, 2015 8:04am

Hi Paul,

Have you tried to check this issue with another Windows 8.1 machine?

Is there any error message or warning recorded in the Event Viewer(Event Viewer\Windows Logs\Application,System)?

We can use the Windows Process Monitor to check what is happening in the copying process.
Process Monitor v3.2
https://technet.microsoft.com/en-us/library/bb896645.aspx?f=255&MSPPError=-2147217396

Best r

June 25th, 2015 11:10pm

unfortunately I've formatted the particular drive I was using at the time when I worked out the bug and I don't have anything else atm to work from.

But either way there's still a loop bug in both COM and explorer that can occur when performing file copies, if an error occurs when copying a single file it seems to halt and display the error correctly, however when copying a folder it will not do so and instead get stuck in an infinite loop while displaying no progress.

Note that this has been a general bug for a very long time, windows 8 has had it and it carried over to windows 8.1, windows 7 possibly also has it.
Free Windows Admin Tool Kit Click here and download it now
July 7th, 2015 3:07am

Neither Explorer or DLLHost log anything on file copy/access errors, and as such there's nothing at all of any use in the event logs, it's not possible for a thread loop to be logged anyway unless it specifically has a monitor thread watching what the task thread is doing.

Though at one time I did perform a process dump of DLLHost (COM) at the time it was looped but forgot about uploading it until now;
http://1drv.ms/1S7NK8N

alternate full link;
https://onedrive.live.com/redir?resid=918DC61A06CB8DF9!310&authkey=!ALaO4gk_geIn5Fg&ithint=file%2cDMP

July 8th, 2015 5:22am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics