Bug #80258 [Asn]: Windows Deduplication Enabled, seeing randon permission errors

From: Date: Mon, 19 Oct 2020 16:02:15 +0000
Subject: Bug #80258 [Asn]: Windows Deduplication Enabled, seeing randon permission errors
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-229765@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80258&edit=1

 ID:                 80258
 User updated by:    josh dot manchester at dirxion dot com
 Reported by:        josh dot manchester at dirxion dot com
 Summary:            Windows Deduplication Enabled, seeing randon
                     permission errors
 Status:             Assigned
 Type:               Bug
 Package:            SQLite related
 Operating System:   Windows 2016 Standard
 PHP Version:        7.4.11
 Assigned To:        cmb
 Block user comment: N
 Private report:     N

 New Comment:

I will see if I can work with our internal developers to make a new build. Typically I just download
your precompiled builds.

Once I get a test build I also have to break an environment again as my original 2 problem servers
had Deduplication disabled during my testing.


Previous Comments:
------------------------------------------------------------------------
[2020-10-19 15:47:52] cmb@php.net

The following pull request has been associated:

Patch Name: Fix #80258: Windows Deduplication Enabled, randon permission errors
On GitHub:  https://github.com/php/php-src/pull/6354
Patch:      https://github.com/php/php-src/pull/6354.patch

------------------------------------------------------------------------
[2020-10-19 15:06:08] cmb@php.net

Fiddling with the open_basedir setting is unlikely to change
anything.  More likely, the problem is that the code now basically
tries to open C:\System Volume Information, which is an
inaccessible system folder.  I'll work out a patch.

Would you be able to build a custom PHP for testing purposes?

------------------------------------------------------------------------
[2020-10-19 14:20:26] cmb@php.net

Thanks for reporting!

I don't have a machine at hand where I could turn on
deduplication, but I suspect that this regression has been
introduced by fixing bug #79806[1].  Could you please check
whether adding "C:\System Volume Information" (or just C:\ for
quick testing) would solve the open_basedir issue, and that
everything with that SQLite3 database works like before?

[1] <http://git.php.net/?p=php-src.git;a=commit;h=d5b59b4303642adac91df2c93969a72bc0f5fa7d>

------------------------------------------------------------------------
[2020-10-19 13:14:10] josh dot manchester at dirxion dot com

Description:
------------
We have Windows deduplication enabled on our 2016 servers for several years but I think we found
something out of whack with the latest PHP version. I originally upgraded from 7.4.7 to 7.4.11, when
I had problems I then attempted to downgrade to 7.4.10 and the problem remained, but with 7.4.9 I
have no issues.  While our primary web product had some 'Unable to find resource' type
errors loading, the simplest example I can provide is our health check script that we have setup for
testing Database connectivity.  On versions 7.4.11 and 7.4.10 the SQLite check fails with the error
I provided under Actual Result. 


I am using the Windows PHP NTS build as provided on your site. I tested this on 2 servers, and each
server would start to work if I either downgraded to php 7.4.9, or disabled Deduplication and ran
the powershell script to unoptimize all the files. 

Test script:
---------------
<?php
	include 'includes/autoload.php';

	//SQLite
	$db_path = 'abb20htm.db3';
	$db = new PDO('sqlite:'.$db_path);//connection
	$bookdb3_class = new BookDb3($db);
	$sgt = '3';//res
	$row = $bookdb3_class->getFirstPageLabel($sgt)->getResults();
	//$bookdb3_class->printOut();
	//print_r($row);
	$pageLabel = $row['PageLabel'];
	if ($pageLabel == '1')
		echo 'SQLite test succeeded';
	else
		echo 'SQLite test failed';
	echo '<br>';

?>

Expected result:
----------------
Via a browser, we expect to see...

SQLite test succeeded

Actual result:
--------------
Note: My original health check script had some MySQL and MSSQL health checks that I removed in my
example, so line 39 is no longer accurate.

Fatal error: Uncaught PDOException: open_basedir prohibits opening abb20htm.db3 in
F:\Sites\ITMonitors\dbtests\default.php:39 Stack trace: #0
F:\Sites\ITMonitors\dbtests\default.php(39): PDO->__construct('sqlite:abb20htm...') #1
{main} thrown in F:\Sites\ITMonitors\dbtests\default.php on line 39  



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=80258&edit=1


Thread (12 messages)

« previous php.bugs (#229765) next »