Explorer hangs

58 views
Skip to first unread message

Marco

unread,
Jan 26, 2018, 3:49:39 PM1/26/18
to TortoiseSVN
Hello,

I've noticed Explorer hangs often on my work PC, either when showing the thumbnails for icons or when right-clicking a file, and I've determined using the "whatishang" utility that it's related to TSVN.

I've uninstalled TSVN and confirmed that the problem disappears.
Reinstalled it after a reboot and it's like before.

Is there something I can do to figure out what's going on exactly? Like symbolicating the stack dump?

Stefan

unread,
Jan 29, 2018, 2:11:22 PM1/29/18
to TortoiseSVN

Do you have a working copy on a network share? Then just stop doing that.
And configure TSVN in the settings dialog to not show overlays for network drives (the default).


 

Marco Burato

unread,
Feb 1, 2018, 7:16:23 AM2/1/18
to TortoiseSVN
On Monday, January 29, 2018 at 8:11:22 PM UTC+1, Stefan wrote:

> Do you have a working copy on a network share? Then just stop doing that.
> And configure TSVN in the settings dialog to not show overlays for network drives (the default).

Hi Stefan,
No, my working copies are all local.
I've checked Settings > Icon Overlays and under Drive Types only Fixed Drives is selected.
I've also tried to exclude the network drives in General > Context Menu
but it doesn't seem to affect the hang.

Stefan

unread,
Feb 1, 2018, 12:52:25 PM2/1/18
to TortoiseSVN

See this thread on how to get a symbol stack trace:
https://groups.google.com/d/topic/tortoisesvn-dev/d7vFCTIROVk/discussion
 

Marco Burato

unread,
Feb 2, 2018, 5:51:40 AM2/2/18
to TortoiseSVN
Hi Stefan, thank you for the information.
I've taken a few dumps and found that a thread would get stuck with the following call stack:

  ntdll.dll!NtOpenFile ()
  KERNELBASE
.dll!GetDriveTypeW()
 
TortoiseSVN.dll!ShellCache::IsPathAllowed(const wchar_t * path) Line 370
 
TortoiseSVN.dll!CShellExt::IsMemberOf_Wrap(const wchar_t * pwszPath, unsigned long) Line 183
 
TortoiseSVN.dll!CShellExt::IsMemberOf(const wchar_t * pwszPath, unsigned long dwAttrib) Line 146
 
TortoiseOverlays.dll!000000005a0e1706()
  shell32
.dll!CFSIconOverlayManager::_GetFileOverlayInfo()
  shell32
.dll!CFSIconOverlayManager::GetFileOverlayInfo(unsigned short const *,unsigned long,int *,unsigned long)
  shell32
.dll!CNetFolder::_GetIconOverlayInfo(struct IDNETRESOURCE const *,int *,unsigned long)
  shell32
.dll!CNetFolder::GetOverlayIndex(struct _ITEMID_CHILD const *,int *)
  windows
.storage.dll!CRegFolder::GetOverlayIndex(struct _ITEMID_CHILD const *,int *)
  windows
.storage.dll!CAutoDestItemsFolder::GetOverlayIndex()
  windows
.storage.dll!CRegFolder::_GetOverlayInfo()
  windows
.storage.dll!CRegFolder::GetOverlayIndex(struct _ITEMID_CHILD const *,int *)
  explorerframe
.dll!CRunnableTask::Run()
  windows
.storage.dll!CShellTask::TT_Run()
  windows
.storage.dll!CShellTaskThread::ThreadProc()
  windows
.storage.dll!CShellTaskThread::s_ThreadProc()
 
SHCore.dll!ExecuteWorkItemThreadProc ()
  ntdll
.dll!RtlpTpWorkCallback()
  ntdll
.dll!TppWorkerThread()
  kernel32
.dll!BaseThreadInitThunk ()
  ntdll
.dll!RtlUserThreadStart ()


The paths were UNC paths I had pinned to my "Quick Access" list in File Explorer (if you're not running an English version of Windows, it's the one with the "blue star").
It looks like Windows is trying to access the path while determining its type. Those network locations are only reachable when I'm connected through a VPN.

I've added

\\*

to Settings > Icon Overlays > "Exclude paths" and the problem has gone away.
Reply all
Reply to author
Forward
0 new messages