Bug #74923 [Fbk->Opn]: Crash when crawling through network share

From: Date: Fri, 14 Jul 2017 09:24:20 +0000
Subject: Bug #74923 [Fbk->Opn]: Crash when crawling through network share
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-210053@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74923&edit=1 ID: 74923 User updated by: martin dot keckeis1 at gmail dot com Reported by: martin dot keckeis1 at gmail dot com Summary: Crash when crawling through network share -Status: Feedback +Status: Open Type: Bug Package: Filesystem function related Operating System: Windows Server 2012 R2 PHP Version: 7.1.7 Block user comment: N Private report: N New Comment: So here we go. The dump and generated *.txt file Download dump from here www.transfernow.net/522ei1c8jlab Loading control script D:\wap\php\DebugDiag\Scripts\CrashRule_Process_php.exe.vbs DumpPath set to D:\wap\php\DebugDiag\Logs\Crash rule for all instances of php.exe [14.07.2017 11:11:39] Process created. BaseModule - D:\wap\php\7.1-x64-VC14-NTS\php.exe. BaseThread - System ID: 10916 C:\Windows\SYSTEM32\ntdll.dll loaded at 0x212b0000 Thread created. New thread - System ID: 7824 C:\Windows\system32\KERNEL32.DLL loaded at 0x20960000 C:\Windows\system32\KERNELBASE.dll loaded at 0x1e4b0000 D:\wap\php\7.1-x64-VC14-NTS\php7.dll loaded at 0xfdaf0000 C:\Windows\system32\WS2_32.dll loaded at 0x20de0000 C:\Windows\system32\SHELL32.dll loaded at 0x1e940000 C:\Windows\SYSTEM32\VCRUNTIME140.dll loaded at 0x1b440000 C:\Windows\SYSTEM32\api-ms-win-crt-runtime-l1-1-0.dll loaded at 0x1c910000 C:\Windows\SYSTEM32\api-ms-win-crt-stdio-l1-1-0.dll loaded at 0x1c8f0000 C:\Windows\SYSTEM32\api-ms-win-crt-heap-l1-1-0.dll loaded at 0x1b430000 C:\Windows\SYSTEM32\api-ms-win-crt-string-l1-1-0.dll loaded at 0x1b420000 C:\Windows\SYSTEM32\api-ms-win-crt-environment-l1-1-0.dll loaded at 0x1a8e0000 C:\Windows\SYSTEM32\api-ms-win-crt-time-l1-1-0.dll loaded at 0x19db0000 C:\Windows\SYSTEM32\api-ms-win-crt-utility-l1-1-0.dll loaded at 0x19240000 C:\Windows\SYSTEM32\api-ms-win-crt-convert-l1-1-0.dll loaded at 0x190f0000 C:\Windows\SYSTEM32\api-ms-win-crt-math-l1-1-0.dll loaded at 0x18510000 C:\Windows\SYSTEM32\api-ms-win-crt-locale-l1-1-0.dll loaded at 0x18500000 C:\Windows\system32\ADVAPI32.dll loaded at 0x211e0000 C:\Windows\system32\ole32.dll loaded at 0x20780000 C:\Windows\system32\USER32.dll loaded at 0x201b0000 C:\Windows\SYSTEM32\DNSAPI.dll loaded at 0x1da20000 C:\Windows\system32\PSAPI.DLL loaded at 0x20eb0000 C:\Windows\SYSTEM32\api-ms-win-crt-filesystem-l1-1-0.dll loaded at 0x17ed0000 C:\Windows\system32\NSI.dll loaded at 0x20aa0000 C:\Windows\system32\RPCRT4.dll loaded at 0x20390000 C:\Windows\system32\msvcrt.dll loaded at 0x20b80000 C:\Windows\SYSTEM32\combase.dll loaded at 0x1ff30000 C:\Windows\system32\SHLWAPI.dll loaded at 0x20e50000 C:\Windows\system32\GDI32.dll loaded at 0x21090000 C:\Windows\SYSTEM32\sechost.dll loaded at 0x20150000 C:\Windows\system32\SspiCli.dll loaded at 0x1e8c0000 C:\Windows\SYSTEM32\ucrtbase.DLL loaded at 0x11c30000 C:\Windows\SYSTEM32\CRYPTBASE.DLL loaded at 0x1e250000 C:\Windows\SYSTEM32\bcryptPrimitives.dll loaded at 0x1e1e0000 C:\Windows\system32\IMM32.DLL loaded at 0x20920000 C:\Windows\system32\MSCTF.dll loaded at 0x20ec0000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_curl.dll loaded at 0x11bb0000 D:\wap\php\7.1-x64-VC14-NTS\libssh2.dll loaded at 0x80000000 D:\wap\php\7.1-x64-VC14-NTS\nghttp2.dll loaded at 0x15270000 D:\wap\php\7.1-x64-VC14-NTS\LIBEAY32.dll loaded at 0x116b0000 [14.07.2017 11:11:40] D:\wap\php\7.1-x64-VC14-NTS\SSLEAY32.dll loaded at 0x11d60000 C:\Windows\system32\WLDAP32.dll loaded at 0x20330000 C:\Windows\system32\Normaliz.dll loaded at 0x20e40000 C:\Windows\system32\CRYPT32.dll loaded at 0x1e6e0000 C:\Windows\SYSTEM32\api-ms-win-crt-conio-l1-1-0.dll loaded at 0x17ec0000 C:\Windows\system32\MSASN1.dll loaded at 0x1e490000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_fileinfo.dll loaded at 0x012f0000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_gettext.dll loaded at 0x166b0000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_intl.dll loaded at 0x11630000 D:\wap\php\7.1-x64-VC14-NTS\icuuc57.dll loaded at 0x74750000 D:\wap\php\7.1-x64-VC14-NTS\icuin57.dll loaded at 0x74550000 D:\wap\php\7.1-x64-VC14-NTS\icuio57.dll loaded at 0x74530000 C:\Windows\SYSTEM32\MSVCP140.dll loaded at 0x11590000 D:\wap\php\7.1-x64-VC14-NTS\icudt57.dll loaded at 0x71850000 C:\Windows\SYSTEM32\api-ms-win-crt-multibyte-l1-1-0.dll loaded at 0x17b70000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_ldap.dll loaded at 0x13c60000 D:\wap\php\7.1-x64-VC14-NTS\libsasl.dll loaded at 0x157d0000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_mbstring.dll loaded at 0x11190000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_exif.dll loaded at 0x138e0000 D:\wap\php\7.1-x64-VC14-NTS\ext\php_pdo_mysql.dll loaded at 0x16420000 C:\Windows\SYSTEM32\secur32.dll loaded at 0x18c60000 C:\Windows\system32\mswsock.dll loaded at 0x1dc20000 C:\Windows\SYSTEM32\shcore.dll loaded at 0x1cac0000 C:\Windows\SYSTEM32\kernel.appcore.dll loaded at 0x1d0b0000 C:\Windows\System32\rasadhlp.dll loaded at 0x19c40000 C:\Windows\SYSTEM32\IPHLPAPI.DLL loaded at 0x1c2e0000 C:\Windows\SYSTEM32\WINNSI.DLL loaded at 0x1b710000 C:\Windows\System32\fwpuclnt.dll loaded at 0x1b690000 Thread created. New thread - System ID: 4728 Initializing control script Clearing any existing breakpoints Current Breakpoint List(BL) Thread exited. Exiting thread - System ID: 4728. Exit code - 0x00000000 [14.07.2017 11:11:56] Exception 0X80000003 on thread 10916. DetailID = 1 Exception 0XC0000374 on thread 10916. DetailID = 2 [14.07.2017 11:12:00] Second chance exception - 0XC0000374 caused by thread with System ID: 10916 DetailID = 3 Thread exited. Exiting thread - System ID: 7824. Exit code - 0xffffffff Process exited. Exit code - 0xffffffff *********************** * EXCEPTION DETAILS * *********************** DetailID = 1 Count: 1 Exception #: 0X80000003 Stack: ntdll!RtlpNtMakeTemporaryKey+0x17f ntdll!RtlpNtMakeTemporaryKey+0x3402 ntdll!RtlpNtMakeTemporaryKey+0x4000 ntdll!RtlFreeHeap+0x1b0f ntdll!RtlFreeHeap+0x368 ucrtbase!free+0x1b php7!php_sys_stat_ex+0x36bc5e [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_virtual_cwd.c @ 295] php7!_php_stream_stat_path+0x37752c [c:\php-sdk\php71\vc14\x64\php-7.1.7\main\streams\streams.c @ 1935] php7!php_stat+0x10b [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\standard\filestat.c @ 819] php7!zim_spl_RecursiveDirectoryIterator_hasChildren+0x10a [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\spl\spl_directory.c @ 1478] php7!zend_call_function+0x212 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_execute_api.c @ 873] php7!zend_call_method+0xf5 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_interfaces.c @ 99] php7!spl_recursive_it_move_forward_ex+0x427 [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\spl\spl_iterators.c @ 277] php7!ZEND_FE_FETCH_R_SPEC_VAR_HANDLER+0x1a7 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 16850] php7!execute_ex+0x72 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 432] php7!zend_execute+0x159 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 475] php7!zend_execute_scripts+0x119 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend.c @ 1477] php7!php_execute_script+0x424 [c:\php-sdk\php71\vc14\x64\php-7.1.7\main\main.c @ 2537] php!do_cli+0x7dd [c:\php-sdk\php71\vc14\x64\php-7.1.7\sapi\cli\php_cli.c @ 994] php!main+0x439 [c:\php-sdk\php71\vc14\x64\php-7.1.7\sapi\cli\php_cli.c @ 1381] php!__scrt_common_main_seh+0x11d [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 253] KERNEL32!BaseThreadInitThunk+0x22 ntdll!RtlUserThreadStart+0x34 DetailID = 2 Count: 1 Exception #: 0XC0000374 Stack: ntdll!RtlpNtMakeTemporaryKey+0x1c0 ntdll!RtlpNtMakeTemporaryKey+0x3402 ntdll!RtlpNtMakeTemporaryKey+0x4000 ntdll!RtlFreeHeap+0x1b0f ntdll!RtlFreeHeap+0x368 ucrtbase!free+0x1b php7!php_sys_stat_ex+0x36bc5e [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_virtual_cwd.c @ 295] php7!_php_stream_stat_path+0x37752c [c:\php-sdk\php71\vc14\x64\php-7.1.7\main\streams\streams.c @ 1935] php7!php_stat+0x10b [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\standard\filestat.c @ 819] php7!zim_spl_RecursiveDirectoryIterator_hasChildren+0x10a [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\spl\spl_directory.c @ 1478] php7!zend_call_function+0x212 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_execute_api.c @ 873] php7!zend_call_method+0xf5 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_interfaces.c @ 99] php7!spl_recursive_it_move_forward_ex+0x427 [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\spl\spl_iterators.c @ 277] php7!ZEND_FE_FETCH_R_SPEC_VAR_HANDLER+0x1a7 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 16850] php7!execute_ex+0x72 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 432] php7!zend_execute+0x159 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 475] php7!zend_execute_scripts+0x119 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend.c @ 1477] php7!php_execute_script+0x424 [c:\php-sdk\php71\vc14\x64\php-7.1.7\main\main.c @ 2537] php!do_cli+0x7dd [c:\php-sdk\php71\vc14\x64\php-7.1.7\sapi\cli\php_cli.c @ 994] php!main+0x439 [c:\php-sdk\php71\vc14\x64\php-7.1.7\sapi\cli\php_cli.c @ 1381] php!__scrt_common_main_seh+0x11d [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 253] KERNEL32!BaseThreadInitThunk+0x22 ntdll!RtlUserThreadStart+0x34 DetailID = 3 Count: 1 Exception #: 0XC0000374 Stack: ntdll!RtlpNtMakeTemporaryKey+0x1c0 ntdll!RtlpNtMakeTemporaryKey+0x3402 ntdll!RtlpNtMakeTemporaryKey+0x4000 ntdll!RtlFreeHeap+0x1b0f ntdll!RtlFreeHeap+0x368 ucrtbase!free+0x1b php7!php_sys_stat_ex+0x36bc5e [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_virtual_cwd.c @ 295] php7!_php_stream_stat_path+0x37752c [c:\php-sdk\php71\vc14\x64\php-7.1.7\main\streams\streams.c @ 1935] php7!php_stat+0x10b [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\standard\filestat.c @ 819] php7!zim_spl_RecursiveDirectoryIterator_hasChildren+0x10a [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\spl\spl_directory.c @ 1478] php7!zend_call_function+0x212 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_execute_api.c @ 873] php7!zend_call_method+0xf5 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_interfaces.c @ 99] php7!spl_recursive_it_move_forward_ex+0x427 [c:\php-sdk\php71\vc14\x64\php-7.1.7\ext\spl\spl_iterators.c @ 277] php7!ZEND_FE_FETCH_R_SPEC_VAR_HANDLER+0x1a7 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 16850] php7!execute_ex+0x72 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 432] php7!zend_execute+0x159 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend_vm_execute.h @ 475] php7!zend_execute_scripts+0x119 [c:\php-sdk\php71\vc14\x64\php-7.1.7\zend\zend.c @ 1477] php7!php_execute_script+0x424 [c:\php-sdk\php71\vc14\x64\php-7.1.7\main\main.c @ 2537] php!do_cli+0x7dd [c:\php-sdk\php71\vc14\x64\php-7.1.7\sapi\cli\php_cli.c @ 994] php!main+0x439 [c:\php-sdk\php71\vc14\x64\php-7.1.7\sapi\cli\php_cli.c @ 1381] php!invoke_main+0x22 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 64] php!__scrt_common_main_seh+0x11d [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 253] KERNEL32!BaseThreadInitThunk+0x22 ntdll!RtlUserThreadStart+0x34 *********************** * EXCEPTION SUMMARY * *********************** |--------------------| | Count | Exception | |--------------------| | 2 | 0XC0000374 | | 1 | 0X80000003 | |--------------------| Debugging Overhead Cost: Total Elapsed Ticks = 20891 (100%) Total Ticks Spent in Debugger Engine = 4015 (19%) Total Ticks Spent in Crash Rule Script = 173 (1%) Previous Comments: ------------------------------------------------------------------------ [2017-07-14 08:49:56] ab@php.net Thanks for the report. Would it be possible you to post a backtrace or to provide a crash dump? Also, what is the exact PHP package name, in particular is it a thread safe build? Regarding the length - no, the limitation of the path length in 7.1 is 2048 bytes. The specification also tells nothing specific https://msdn.microsoft.com/en-us/library/gg465305.aspx , but the APIs are known to have a limitation of 32k bytes in most cases. Further investigation is needed on this anyway. Direct support of such prefixes is not on the plan ATM. Thanks. ------------------------------------------------------------------------ [2017-07-14 08:23:50] martin dot keckeis1 at gmail dot com Description: ------------ My filesystem crawler can crawl through millions of documents on WIN7, but on Server 2012 R2 it crashes on too long paths/files (>260 chars). If the files would be skipped, it wouldn't be that hard problem. But the script crashes (see actual result), so i cannot continue script execution. From the documentation: > In the Windows API (with some exceptions discussed in the following paragraphs), the maximum > length for a path is MAX_PATH, which is defined as 260 characters. > The "\\?\" prefix can also be used with paths constructed according to the universal > naming convention (UNC). To specify such a path using UNC, use the "\\?\UNC\" prefix. https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx I tried now that kind of path, but PHP does not support that, so i'm having no possibility to fix in on the server (or i'm not seeing how i can do it). Test script: --------------- $recIterIter = new \RecursiveDirectoryIterator($this->getPath(), \RecursiveDirectoryIterator::SKIP_DOTS); $iterator = new \RecursiveIteratorIterator($recIterIter); try { foreach ($iterator as $path => $file) { /* @var $file \SplFileInfo */ var_dump($file->getPathname()); } } catch (\UnexpectedValueException $ex) {} Expected result: ---------------- no crash - at least throw an exception maybe support the \\?\UNC notation Actual result: -------------- Problem signature: Problem Event Name: APPCRASH Application Name: php.exe Application Version: 7.1.7.0 Application Timestamp: 595e6adf Fault Module Name: StackHash_c66e Fault Module Version: 6.3.9600.18233 Fault Module Timestamp: 56bb4ebb Exception Code: c0000374 Exception Offset: PCH_A1_FROM_ntdll+0x0000000000090C6A OS Version: 6.3.9600.2.0.0.400.8 Locale ID: 5127 Additional Information 1: c66e Additional Information 2: c66eb003ccb0f321719ea11a2dfd28cb Additional Information 3: 985f Additional Information 4: 985ffcf5786fa614c8c9d97a270df159 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74923&edit=1

« previous php.bugs (#210053) next »