Bug #78106 [Ver->Csd]: Path resolution fails if opcache disabled during request

From: Date: Thu, 13 Jun 2019 10:54:36 +0000
Subject: Bug #78106 [Ver->Csd]: Path resolution fails if opcache disabled during request
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-221281@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78106&edit=1

 ID:                 78106
 Updated by:         nikic@php.net
 Reported by:        mbiebl at messageconcept dot com
 Summary:            Path resolution fails if opcache disabled during
                     request
-Status:             Verified
+Status:             Closed
 Type:               Bug
 Package:            opcache
 Operating System:   Windows Server 2016 / IIS 10
 PHP Version:        7.2.19
 Assigned To:        dmitry
 Block user comment: N
 Private report:     N

 New Comment:

Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=f1a81380554070d7f4b0c6dcd1202364ebf3d252
Log: Fixed bug #78106


Previous Comments:
------------------------------------------------------------------------
[2019-06-13 10:49:40] nikic@php.net

Testcase added in https://github.com/php/php-src/commit/f8a68fd9350ac97d33d1773453c4e9d47a97b33f,
with a bit of run-tests plumbing.

------------------------------------------------------------------------
[2019-06-13 08:43:00] nikic@php.net

@martijn at squeezely dot tech: Thanks a lot! I can confirm that this reproduces the issue for me.

------------------------------------------------------------------------
[2019-06-13 08:35:32] martijn at squeezely dot tech

We managed to find a way to reproduce. We use nginx + php-fpm 7.2.19 with the patch supplied from
dmitry@php.net

Step to reproduce

Create the following files:

test.php
----------
<?php

    ini_set('opcache.enable', 0);
    require_once 'include.php';

    echo 'done';

----------

test2.php
----------
<?php

require_once 'include.php';

echo 'done';

----------

include.php
----------
<?php

echo 'included';
----------


1. Request test.php
2. Request test2.php
3. Request test.php

Final test.php request will break. 
We also tried this with require instead of require_once but this did NOT break.


Hope this helps you fix this bug. If we need to retest with a certain patch in place let me know.

------------------------------------------------------------------------
[2019-06-12 15:18:28] mbiebl at messageconcept dot com

I've changed my php.ini to enable debug logging for opcache like this:
```
zend_extension=php_opcache.dll
opcache.enable_cli=1
opcache.enable=1
opcache.error_log="C:\Windows\temp\php_opcache.log"
opcache.log_verbosity_level=4
```
Unfortunately, this didn't produce any useful log messages.
I only get messages like this:
```
Wed Jun 12 17:11:38 2019 (4748): Message Cached script
'C:\src\server\localhost\vendor\psr\log\Psr\Log\LoggerInterface.php'
Wed Jun 12 17:11:38 2019 (4748): Message Added key
'C:\src\server\localhost\vendor\composer/../psr/log/Psr/Log\LoggerInterface.php'
```
Also, this is only for one php process (4748), while I have multiple processes.

------------------------------------------------------------------------
[2019-06-11 20:24:38] nikic@php.net

@mbiebl at messageconcept dot com: Assuming you already have opcache.error_log configured, if you
set opcache.log_verbosity_level=4 it will capture all log messages. Maybe a lower level is enough to
log non-user restarts, but I'm not sure.

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=78106


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


Thread (47 messages)

« previous php.bugs (#221281) next »