Edit report at https://bugs.php.net/bug.php?id=63241&edit=1
ID: 63241 Comment by: mattfic...@php.net Reported by: daniel dot stelter-gliese at innogames dot de Summary: PHP fails to open Windows deduplicated files Status: Assigned Type: Bug Package: Win32API related Operating System: Windows Server 2012 PHP Version: 5.4.7 Assigned To: mattficken Block user comment: N Private report: N New Comment: The patch doesn't compile. Fixing the missing }, the patch doesn't work for me. I can still reproduce the bug. Previous Comments: ------------------------------------------------------------------------ [2012-10-10 08:27:16] paj...@php.net Thanks for the very good report :) We can reproduce it and added it to our tests suite. I'd to see how to deal with deduplicated files, if we have to cache them the same way we do for links or mounted volumes (necessary for require_once and the likes). ------------------------------------------------------------------------ [2012-10-09 08:03:54] paj...@php.net Matt, can you try to reproduce it please? ------------------------------------------------------------------------ [2012-10-08 16:17:44] daniel dot stelter-gliese at innogames dot de Description: ------------ Opening a file that was deduplicated by Windows Server 2012 deduplication fails with "No such file or directory". The behavior can be reproduced locally and through SMB shares (on Win7 and Win8 clients). I've tried 5.3.15 and 5.4.7 - judging from the code latest snapshots are affected, too. I could trace this to a problem with reparse points: deduplication adds the new reparse tag IO_REPARSE_TAG_DEDUP. There seems to be no documentation on this tag, so I could only interpret it as a flag to be ignored. The attached patch simply treats a IO_REPARSE_TAG_DEDUP file as a substitute on the same path, which worked well. Test script: --------------- $path = 'S:\\test.exe'; var_dump(filesize($path)); var_dump(realpath($path)); var_dump(strlen(file_get_contents($path))); var_dump(fopen($path, 'rb')); Expected result: ---------------- int(5448704) string(50) "S:\test.exe" int(5448704) resource(6) of type (stream) Actual result: -------------- int(5448704) bool(false) Warning: file_get_contents(S:\test.exe): failed to open stream: No such file or directory in C:\php-sdk\php54dev\vc9\x64\ php-5.4.7-src\x64\Release\test.php on line 6 int(0) Warning: fopen(S:\test.exe): failed to op en stream: No such file or directory in C:\php-sdk\php54dev\vc9\x64\php-5.4.7-sr c\x64\Release\test.php on line 7 bool(false) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63241&edit=1