Shell hangs with dead network drives

40 views
Skip to first unread message

Stefan L.

unread,
Dec 14, 2020, 9:37:10 AM12/14/20
to TortoiseSVN
With activated TortoiseSVN Windows Explorer hangs on almost every action (right click / copy-paste, ...). It seems to be enough for a dead network-path to be in the recent file list. It's extremely bad when the network access has been done via IP-Address (hangs for minutes!).

I tried to track the issue down and a call to GetDriveType seems to be the culprit (likely from ShellCache::IsPathAllowed). If I test a call from a simple C-program, I can reproduce the hang behavior (blocks for approx 5 min). Path string ist like: "\??\UNC\172.16.2.51\BadIpAddress\"".

Not sure what's the best way to fix this. Maybe making the calls async is an option or to not call the API for "recent file list" at all ().
An alternative to mitigate the issue would be to test the path via PathIsUNCServerShare prior to making a call to GetDriveType.
 
Workarounds: Either deactivate TortoiseSVN via ShellViewEx or delete file history in Windows Explorer (Menu File -> Options -> Clear history).

Stefan

unread,
Dec 14, 2020, 12:10:28 PM12/14/20
to TortoiseSVN
On Monday, December 14, 2020 at 3:37:10 PM UTC+1 foot...@googlemail.com wrote:
With activated TortoiseSVN Windows Explorer hangs on almost every action (right click / copy-paste, ...). It seems to be enough for a dead network-path to be in the recent file list. It's extremely bad when the network access has been done via IP-Address (hangs for minutes!).

I tried to track the issue down and a call to GetDriveType seems to be the culprit (likely from ShellCache::IsPathAllowed). If I test a call from a simple C-program, I can reproduce the hang behavior (blocks for approx 5 min). Path string ist like: "\??\UNC\172.16.2.51\BadIpAddress\"".

Not sure what's the best way to fix this. Maybe making the calls async is an option or to not call the API for "recent file list" at all ().
An alternative to mitigate the issue would be to test the path via PathIsUNCServerShare prior to making a call to GetDriveType.

the best way to "fix" this is to simply deactivate the icon overlays for network drives. Because you shouldn't store working copies on network drives anyway.

Stefan L.

unread,
Dec 14, 2020, 12:23:15 PM12/14/20
to TortoiseSVN
Nope, won't help. The hang already occurs when trying to determine if it's a network share... I posted a possible solution for TortoiseGit: https://gitlab.com/tortoisegit/tortoisegit/-/merge_requests/148
Reply all
Reply to author
Forward
0 new messages