Win 10 Explorer Crash with Double Delete Running

52 views
Skip to first unread message

Stephen L. De Rudder

unread,
Feb 24, 2017, 8:53:56 PM2/24/17
to us...@tortoisesvn.tigris.org
Explorer will crash with:
Unhandled exception at 0x0000000075F2B8BC (TortoiseSVN.dll) in explorer.exe: Stack cookie instrumentation code detected a stack-based buffer overrun.

I have the minidump with heap that is 439MB if you want it.

Repo Steps:
* Make sure Icon Overlays Status cache is set to Default (if you set it to None it will not crash)
* Have a lot of files checked out in a directory for example my C:\SVNDirs\trunk directory contains 92,819 Files and 3,669 Folders
* Go inside the C:\SVNDirs\trunk directory from explorer
* The next two steps need to be done kinda quick to get both running at the same time
* Select about half of the list and hold shift down then press the delete key (permanent delete)
* Select the other half of the list and hold shift down then press the delete key
* You should see a dialog with the two deletes going I usually just move my mouse over the list in explorer till I get the spinning circle that indicates explorer has crashed (its usually crashes within 10 - 20 seconds)
* After a brief pause the explorer process will be restarted by Windows

I can repo this at will.

TSVN Version Info:
TortoiseSVN 1.9.5, Build 27581 - 64 Bit , 2016/11/26 09:18:58
Subversion 1.9.5, -release
apr 1.5.2
apr-util 1.5.4
serf 1.3.9
OpenSSL 1.0.2j 26 Sep 2016
zlib 1.2.8
SQLite 3.14.1

Win 10 Version Info:
Win 10 Enterprise
Version 1607
OS Build 14393.693
64-bit OS

Explorer Modules Loaded (that didn't have symbols loaded (trying to identify 3rd party dlls)):
Name, Path, Optimized, User Code, Symbol Status, Symbol File, Order, Version, Timestamp, Address, Process
explorer.exe C:\Windows\explorer.exe N/A N/A Symbols loaded. C:\Users\derudder\AppData\Local\Temp\SymbolCache\explorer.pdb\03634250ecc0441a9199b6c2002b0cc61\explorer.pdb 1 10.0.14393.479 (rs1_release.161110-2025) 11/11/2016 3:08 AM 00007FF67E9A0000-00007FF67EE12000 [1916] explorer.exe
slc.dll C:\Windows\System32\slc.dll N/A N/A Cannot find or open the PDB file. 89 10.0.14393.67 (rs1_release.160804-2231) 8/5/2016 2:08 AM 00007FFF7D190000-00007FFF7D1B6000 [1916] explorer.exe
sppc.dll C:\Windows\System32\sppc.dll N/A N/A Cannot find or open the PDB file. 90 10.0.14393.67 (rs1_release.160804-2231) 8/5/2016 2:22 AM 00007FFF7D100000-00007FFF7D127000 [1916] explorer.exe
nvwgf2umx.dll C:\Windows\System32\DriverStore\FileRepository\nv_dispiwu.inf_amd64_b67dc924fff8de6d\nvwgf2umx.dll N/A N/A Cannot find or open the PDB file. 121 21.21.13.7653 12/29/2016 6:15 AM 00007FFF79A30000-00007FFF7B161000 [1916] explorer.exe
DropboxExt64.14.0.dll C:\Program Files (x86)\Dropbox\Client\DropboxExt64.14.0.dll N/A N/A Cannot find or open the PDB file. 169 1.00.14.0 2/22/2017 3:06 AM 00007FFF71F30000-00007FFF71F78000 [1916] explorer.exe
FileSyncShell64.dll C:\Users\derudder\AppData\Local\Microsoft\OneDrive\17.3.6743.1212\amd64\FileSyncShell64.dll N/A N/A Cannot find or open the PDB file. 173 17.03.6743.1212 12/12/2016 10:19 PM 00007FFF67EC0000-00007FFF680D2000 [1916] explorer.exe
LoggingPlatform64.dll C:\Users\derudder\AppData\Local\Microsoft\OneDrive\17.3.6743.1212\amd64\LoggingPlatform64.dll N/A N/A Cannot find or open the PDB file. 177 17.03.6743.1212 12/12/2016 10:10 PM 00007FFF726A0000-00007FFF726BF000 [1916] explorer.exe
TortoiseOverlays.dll C:\Program Files\Common Files\TortoiseOverlays\TortoiseOverlays.dll N/A N/A Cannot find or open the PDB file. 179 1, 1, 4, 26626 8/25/2015 12:58 PM 0000000075FA0000-0000000075FC0000 [1916] explorer.exe
TortoiseStub.dll C:\Program Files\TortoiseSVN\bin\TortoiseStub.dll N/A N/A Cannot find or open the PDB file. 180 1.09.5.27581 11/26/2016 7:26 AM 0000000075F80000-0000000075F9B000 [1916] explorer.exe
TortoiseSVN.dll C:\Program Files\TortoiseSVN\bin\TortoiseSVN.dll N/A N/A Cannot find or open the PDB file. 181 1.09.5.27581 11/26/2016 7:26 AM 0000000075EF0000-0000000075F78000 [1916] explorer.exe
libapr_tsvn.dll C:\Program Files\TortoiseSVN\bin\libapr_tsvn.dll N/A N/A Cannot find or open the PDB file. 182 1.05.2.0 11/26/2016 7:20 AM 0000000075EB0000-0000000075EE3000 [1916] explorer.exe
libsvn_tsvn.dll C:\Program Files\TortoiseSVN\bin\libsvn_tsvn.dll N/A N/A Cannot find or open the PDB file. 183 1.09.5.1210 11/26/2016 7:23 AM 00007FFF63D70000-00007FFF6431E000 [1916] explorer.exe
intl3_tsvn.dll C:\Program Files\TortoiseSVN\bin\intl3_tsvn.dll N/A N/A Cannot find or open the PDB file. 184 0.14.6.0 11/26/2016 7:21 AM 00007FFF643C0000-00007FFF643D3000 [1916] explorer.exe
libaprutil_tsvn.dll C:\Program Files\TortoiseSVN\bin\libaprutil_tsvn.dll N/A N/A Cannot find or open the PDB file. 187 1.05.4.0 11/26/2016 7:21 AM 0000000075E60000-0000000075EA5000 [1916] explorer.exe
libsasl.dll C:\Program Files\TortoiseSVN\bin\libsasl.dll N/A N/A Cannot find or open the PDB file. 188 2.01.24.0 11/26/2016 7:21 AM 00007FFF63D30000-00007FFF63D4B000 [1916] explorer.exe
crshhndl.dll C:\Program Files\TortoiseSVN\bin\crshhndl.dll N/A N/A Cannot find or open the PDB file. 191 1.00.15.0 11/26/2016 7:24 AM 00007FFF635D0000-00007FFF63600000 [1916] explorer.exe
nvapi64.dll C:\Windows\System32\nvapi64.dll N/A N/A Cannot find or open the PDB file. 234 21.21.13.7653 12/29/2016 5:57 AM 00007FFF77F00000-00007FFF782FB000 [1916] explorer.exe
GROOVEEX.DLL C:\PROGRA~1\MICROS~3\Office15\GROOVEEX.DLL N/A N/A Cannot find or open the PDB file. 239 15.00.4881.1000 11/1/2016 2:49 AM 00007FFF66C70000-00007FFF66EB0000 [1916] explorer.exe
UIRibbonRes.dll C:\Windows\System32\UIRibbonRes.dll N/A N/A Binary was not built with debug information. 244 10.0.14393.321 (rs1_release_inmarket.161004-2338) 10/5/2016 3:38 AM 00000000062B0000-0000000006341000* [1916] explorer.exe
nvshext.dll C:\Windows\System32\nvshext.dll N/A N/A Cannot find or open the PDB file. 254 1.02.0.1 12/29/2016 6:39 AM 0000000075870000-0000000075883000 [1916] explorer.exe

I attached my VS 2012 debugger to the explorer.exe process to get the crash info and created the dump from it. If you have the *.pdb files for the TSVN dlls I could get you more info. I didn't attach the dump file because of size but if someone says its ok I will attach it.

Thanks,
SLDR
(Stephen L. De Rudder)

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3212504

To unsubscribe from this discussion, e-mail: [users-un...@tortoisesvn.tigris.org].

Stephen L. De Rudder

unread,
Feb 25, 2017, 2:42:27 AM2/25/17
to us...@tortoisesvn.tigris.org
I forgot to include the call stack.

TortoiseSVN.dll!0000000075f2b8bc()
TortoiseSVN.dll!0000000075f1e192()
TortoiseSVN.dll!0000000075f1e459()
TortoiseSVN.dll!0000000075f26168()
TortoiseSVN.dll!0000000075f260ba()
shell32.dll!CTopViewDescription::CTopViewDescription(struct _GUID const &,struct _GUID const &,struct _GUID const &)
shell32.dll!SHELL32_CallFileCopyHooks ()
windows.storage.dll!CFileOperation::CopyHooks(unsigned int,struct IShellItem *,struct IShellItem *,unsigned short const *,unsigned long)
windows.storage.dll!CCopyWorkItem::_UpFrontConfirmations(void)
windows.storage.dll!CCopyWorkItem::ProcessWorkItem(struct ITransferSource *,int)
windows.storage.dll!CCopyWorkItem::_ProcessChildren(int,unsigned long)
windows.storage.dll!CCopyWorkItem::ProcessWorkItem(struct ITransferSource *,int)
windows.storage.dll!CCopyWorkItem::_ProcessChildren(int,unsigned long)
windows.storage.dll!CCopyWorkItem::ProcessWorkItem(struct ITransferSource *,int)
windows.storage.dll!CRecursiveFolderOperation::Do(void)
windows.storage.dll!CFileOperation::_EnumRootDo(class CEnumOperation *)
windows.storage.dll!CFileOperation::PrepareAndDoOperations(void)
windows.storage.dll!CFileOperation::PerformOperations(void)
shell32.dll!DeleteItemsInDataObject ()
shell32.dll!DeleteItemsThreadProc(void *)
SHCore.dll!Microsoft::WRL::Details::RuntimeClass<struct Microsoft::WRL::Details::InterfaceList<class CRandomAccessStreamBase,struct Microsoft::WRL::Details::InterfaceList<struct Windows::Storage::Streams::IRandomAccessStreamWithContentType,struct Microsoft::WRL::Details::InterfaceList<struct Windows::Storage::Streams::IContentTypeProvider,struct Microsoft::WRL::Details::InterfaceList<struct Microsoft::WRL::Implements<struct Microsoft::WRL::RuntimeClassFlags<3>,struct Microsoft::WRL::CloakedIid<struct IRandomAccessStreamMode>,struct Microsoft::WRL::CloakedIid<struct IRandomAccessStreamFileAccessMode>,struct Microsoft::WRL::CloakedIid<struct IObjectWithDeferredInvoke>,struct Microsoft::WRL::CloakedIid<struct IObjectWithFileHandle>,struct Microsoft::WRL::CloakedIid<struct IUnbufferedFileHandleProvider>,struct Microsoft::WRL::CloakedIid<struct IRandomAccessStreamPrivate>,struct Microsoft::WRL::CloakedIid<struct ITransactedModeOverride>,struct Microsoft::WRL::CloakedIid<class CFTMCrossProcServer>,class Microsoft::WRL::Detai ()
kernel32.dll!BaseThreadInitThunk ()
ntdll.dll!RtlUserThreadStart ()

Ooops...

SLDR

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3213378

Stefan Küng

unread,
Feb 25, 2017, 3:01:59 AM2/25/17
to us...@tortoisesvn.tigris.org

please add the symbol server url
http://www.crash-server.com:8080/public/tsvn/71040F62-F78A-4953-B5B3-5C148349FED7/symsrv
to your debugger so it can find the debug symbols for TSVN. That will
give you (and us) a better stack trace.

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest interface to (Sub)version control
/_/ \_\ http://tortoisesvn.net

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3213386

Stephen L. De Rudder

unread,
Feb 26, 2017, 11:03:25 AM2/26/17
to us...@tortoisesvn.tigris.org
No TortoiseSVN.pdb for version 1.09.5.27581 could be found at the symbol server URL that you provided. I know I am getting there because that URL produces a Russian (I think) language 404 error.

I assume that the GUID for TSVN is good and no typos. I tried changing the GUID to see if I got some other error than 404 but that didn't work (I was trying to verify GUID).

Let me know what else you would like me to try.

You can send me the TortoiseSVN.pdb directly if you want; just let me know you sent it or send it.

BTW: Doctor Dump looks pretty cool. Now you don't have to jump thru a lot of hoops to get your crash dumps from Microsoft.

SLDR

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3213884

Stefan Küng

unread,
Feb 26, 2017, 1:31:01 PM2/26/17
to us...@tortoisesvn.tigris.org
On 26.02.2017 17:03, Stephen L. De Rudder wrote:
> No TortoiseSVN.pdb for version 1.09.5.27581 could be found at the symbol server URL that you provided. I know I am getting there because that URL produces a Russian (I think) language 404 error.
>
> I assume that the GUID for TSVN is good and no typos. I tried changing the GUID to see if I got some other error than 404 but that didn't work (I was trying to verify GUID).
>
> Let me know what else you would like me to try.
>
> You can send me the TortoiseSVN.pdb directly if you want; just let me know you sent it or send it.

I've uploaded the pdbs here:
https://1drv.ms/f/s!AjdbfjQK9gDQc9A-nOEqxB6oRTg

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest interface to (Sub)version control
/_/ \_\ http://tortoisesvn.net

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3213910

Stephen L. De Rudder

unread,
Feb 26, 2017, 7:38:29 PM2/26/17
to us...@tortoisesvn.tigris.org
Better call stack:
TortoiseSVN.dll!__report_gsfailure(unsigned __int64 stack_cookie) Line 199 C
TortoiseSVN.dll!CRemoteCacheLink::CloseCommandPipe() Line 155 C++
TortoiseSVN.dll!CRemoteCacheLink::ReleaseLockForPath(const CTSVNPath & path) Line 276 C++
TortoiseSVN.dll!CShellExt::CopyCallback_Wrap(HWND__ * wFunc, unsigned int pszSrcFile, unsigned int) Line 317 C++
TortoiseSVN.dll!CShellExt::CopyCallback(HWND__ * hWnd, unsigned int wFunc, unsigned int wFlags, const wchar_t * pszSrcFile, unsigned long dwSrcAttribs, const wchar_t * pszDestFile, unsigned long dwDestAttribs) Line 299 C++
shell32.dll!CTopViewDescription::CTopViewDescription(struct _GUID const &,struct _GUID const &,struct _GUID const &) Unknown
shell32.dll!SHELL32_CallFileCopyHooks () Unknown
windows.storage.dll!CFileOperation::CopyHooks(unsigned int,struct IShellItem *,struct IShellItem *,unsigned short const *,unsigned long) Unknown
windows.storage.dll!CCopyWorkItem::_UpFrontConfirmations(void) Unknown
windows.storage.dll!CCopyWorkItem::ProcessWorkItem(struct ITransferSource *,int) Unknown
windows.storage.dll!CCopyWorkItem::_ProcessChildren(int,unsigned long) Unknown
windows.storage.dll!CCopyWorkItem::ProcessWorkItem(struct ITransferSource *,int) Unknown
windows.storage.dll!CCopyWorkItem::_ProcessChildren(int,unsigned long) Unknown
windows.storage.dll!CCopyWorkItem::ProcessWorkItem(struct ITransferSource *,int) Unknown
windows.storage.dll!CRecursiveFolderOperation::Do(void) Unknown
windows.storage.dll!CFileOperation::_EnumRootDo(class CEnumOperation *) Unknown
windows.storage.dll!CFileOperation::PrepareAndDoOperations(void) Unknown
windows.storage.dll!CFileOperation::PerformOperations(void) Unknown
shell32.dll!DeleteItemsInDataObject () Unknown
shell32.dll!DeleteItemsThreadProc(void *) Unknown
SHCore.dll!Microsoft::WRL::Details::RuntimeClass<struct Microsoft::WRL::Details::InterfaceList<class CRandomAccessStreamBase,struct Microsoft::WRL::Details::InterfaceList<struct Windows::Storage::Streams::IRandomAccessStreamWithContentType,struct Microsoft::WRL::Details::InterfaceList<struct Windows::Storage::Streams::IContentTypeProvider,struct Microsoft::WRL::Details::InterfaceList<struct Microsoft::WRL::Implements<struct Microsoft::WRL::RuntimeClassFlags<3>,struct Microsoft::WRL::CloakedIid<struct IRandomAccessStreamMode>,struct Microsoft::WRL::CloakedIid<struct IRandomAccessStreamFileAccessMode>,struct Microsoft::WRL::CloakedIid<struct IObjectWithDeferredInvoke>,struct Microsoft::WRL::CloakedIid<struct IObjectWithFileHandle>,struct Microsoft::WRL::CloakedIid<struct IUnbufferedFileHandleProvider>,struct Microsoft::WRL::CloakedIid<struct IRandomAccessStreamPrivate>,struct Microsoft::WRL::CloakedIid<struct ITransactedModeOverride>,struct Microsoft::WRL::CloakedIid<class CFTMCrossProcServer>,class Microsoft::WRL::Detai () Unknown
kernel32.dll!BaseThreadInitThunk () Unknown
ntdll.dll!RtlUserThreadStart () Unknown

Thanks you for great work on TSVN!

SLDR

PS: I used pdb from TortoiseSVN-1.9.5.27581-x64-svn-1.9.5-pdbs.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3214146

Stefan Küng

unread,
Feb 27, 2017, 4:38:44 PM2/27/17
to us...@tortoisesvn.tigris.org
On 27.02.2017 01:38, Stephen L. De Rudder wrote:
> Better call stack:
> TortoiseSVN.dll!__report_gsfailure(unsigned __int64 stack_cookie) Line 199 C
> TortoiseSVN.dll!CRemoteCacheLink::CloseCommandPipe() Line 155 C++
> TortoiseSVN.dll!CRemoteCacheLink::ReleaseLockForPath(const CTSVNPath & path) Line 276 C++
> TortoiseSVN.dll!CShellExt::CopyCallback_Wrap(HWND__ * wFunc, unsigned int pszSrcFile, unsigned int) Line 317 C++
> TortoiseSVN.dll!CShellExt::CopyCallback(HWND__ * hWnd, unsigned int wFunc, unsigned int wFlags, const wchar_t * pszSrcFile, unsigned long dwSrcAttribs, const wchar_t * pszDestFile, unsigned long dwDestAttribs) Line 299 C++

Thanks!

Looking through the code I can't find anything wrong with it.
The exception you get is
Unhandled exception at 0x0000000075F2B8BC (TortoiseSVN.dll) in
explorer.exe: Stack cookie instrumentation code detected a stack-based
buffer overrun.

which means somewhere the stack is corrupted. But I can't see where that
would happen in the TSVN shell extension.
Also, all critical paths are guarded with critical section objects.

Problem is that the stack cookie instrumentation exception is thrown at
times when the stack is checked. But that doesn't mean that the stack is
corrupted where that check is done but can be corrupted way before that.
So maybe another shell extension corrupts the stack?

I'm trying to reproduce the problem on my machine, but so far no luck,
i.e. I get no crash.

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest interface to (Sub)version control
/_/ \_\ http://tortoisesvn.net

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3214370

Jesper

unread,
Feb 27, 2018, 11:21:53 AM2/27/18
to TortoiseSVN
Den mandag den 27. februar 2017 kl. 22.38.44 UTC+1 skrev Stefan:
> On 27.02.2017 01:38, Stephen L. De Rudder wrote:
> > Better call stack:
> > TortoiseSVN.dll!__report_gsfailure(unsigned __int64 stack_cookie) Line 199 C
> > TortoiseSVN.dll!CRemoteCacheLink::CloseCommandPipe() Line 155 C++
> > TortoiseSVN.dll!CRemoteCacheLink::ReleaseLockForPath(const CTSVNPath & path) Line 276 C++
> > TortoiseSVN.dll!CShellExt::CopyCallback_Wrap(HWND__ * wFunc, unsigned int pszSrcFile, unsigned int) Line 317 C++
> > TortoiseSVN.dll!CShellExt::CopyCallback(HWND__ * hWnd, unsigned int wFunc, unsigned int wFlags, const wchar_t * pszSrcFile, unsigned long dwSrcAttribs, const wchar_t * pszDestFile, unsigned long dwDestAttribs) Line 299 C++
>
> Thanks!
>
> Looking through the code I can't find anything wrong with it.
> The exception you get is
> Unhandled exception at 0x0000000075F2B8BC (TortoiseSVN.dll) in
> explorer.exe: Stack cookie instrumentation code detected a stack-based
> buffer overrun.
>
> which means somewhere the stack is corrupted. But I can't see where that
> would happen in the TSVN shell extension.
> Also, all critical paths are guarded with critical section objects.
>
> Problem is that the stack cookie instrumentation exception is thrown at
> times when the stack is checked. But that doesn't mean that the stack is
> corrupted where that check is done but can be corrupted way before that.
> So maybe another shell extension corrupts the stack?
>
> I'm trying to reproduce the problem on my machine, but so far no luck,
> i.e. I get no crash.
>

We're having a GDPR cleanup day and so I wanted to remove a few folders with respositories in them that were old branches anyway.

I met this crash two times while deleting different folders with old branches.
So the crash is real

mhand.b...@a-volute.com

unread,
Mar 3, 2018, 9:09:14 PM3/3/18
to TortoiseSVN
Also faced the same issues several times,
I have workaround this issue by disabling the icon overlay.
This only happens with a permanent delete (shift+delete).

Regards,

M'hand
--

Reply all
Reply to author
Forward
0 new messages