Bug #63241 [NEW]: PHP fails to open Windows deduplicated files
| From: | daniel dot stelter-gliese at innogames dot de | Date: | Mon, 08 Oct 2012 16:17:44 +0000 |
| Subject: | Bug #63241 [NEW]: PHP fails to open Windows deduplicated files | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-173942@lists.php.net to get a copy of this message | ||
From: daniel dot stelter-gliese at innogames dot de
Operating system: Windows Server 2012
PHP version: 5.4.7
Package: Win32API related
Bug Type: Bug
Bug description:PHP fails to open Windows deduplicated files
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 bug report at https://bugs.php.net/bug.php?id=63241&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=63241&r=trysnapshot54
Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=63241&r=trysnapshot53
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=63241&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=63241&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=63241&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=63241&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=63241&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=63241&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=63241&r=support
Expected behavior: https://bugs.php.net/fix.php?id=63241&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=63241&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=63241&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=63241&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=63241&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=63241&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=63241&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=63241&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=63241&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=63241&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=63241&r=mysqlcfg