Bug #79735 [Fbk->NoF]: OPcache causes "Call to undefined method" errors in exception_handler etc.

From: Date: Sun, 02 Aug 2020 04:22:05 +0000
Subject: Bug #79735 [Fbk->NoF]: OPcache causes "Call to undefined method" errors in exception_handler etc.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-228366@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79735&edit=1

 ID:               79735
 Updated by:       php-bugs@lists.php.net
 Reported by:      ca at lsp dot net
 Summary:          OPcache causes "Call to undefined method" errors in
                   exception_handler etc.
-Status:           Feedback
+Status:           No Feedback
 Type:             Bug
 Package:          opcache
 Operating System: Windows 10
 PHP Version:      7.3.19
 Assigned To:      cmb
 Private report:   N

 New Comment:

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.


Previous Comments:
------------------------------------------------------------------------
[2020-07-20 13:30:12] cmb@php.net

> Those Ajax requests always happen in the same order.

Can you please specify which Ajax requests exactly?

------------------------------------------------------------------------
[2020-06-25 14:56:10] ca at lsp dot net

To give more context:

The failing method call happens in TimeDataCollector::collect():
<https://github.com/maximebf/php-debugbar/blob/v1.16.3/src/DebugBar/DataCollector/TimeDataCollector.php#L214>

The called method is DataCollector::getDataFormatter():
<https://github.com/maximebf/php-debugbar/blob/v1.16.3/src/DebugBar/DataCollector/DataCollector.php#L69-L75>

(Note that TimeDataCollector extends DataCollector.)

------------------------------------------------------------------------
[2020-06-25 14:27:10] ca at lsp dot net

I'm unable to reproduce this issue with PHP 7.4.0 - 7.4.7.

------------------------------------------------------------------------
[2020-06-25 14:01:01] ca at lsp dot net

I'm able to reproduce the issue consistently with two (specific) concurrent Ajax requests
(handled by PHP via Apache's mod_php):

* Those Ajax requests always happen in the same order.
* The error always occurs in the same (second) request.
* The error does not occur, if the first request is blocked via the Firefox DevTools.

Both Ajax requests call PHP Debug Bar's [1] sendDataInHeaders() method inside a
header_register_callback(), but only the second Ajax request causes the error:

```
Error thrown with message "Call to undefined method
DebugBar\DataCollector\TimeDataCollector::getDataFormatter()"

Stacktrace:
#7 Error in C:\***\vendor\maximebf\debugbar\src\DebugBar\DataCollector\TimeDataCollector.php:214
#6 DebugBar\DataCollector\TimeDataCollector:collect in
C:\***\vendor\maximebf\debugbar\src\DebugBar\DebugBar.php:238
#5 DebugBar\DebugBar:collect in C:\***\vendor\maximebf\debugbar\src\DebugBar\DebugBar.php:265
#4 DebugBar\DebugBar:getData in C:\***\vendor\maximebf\debugbar\src\DebugBar\DebugBar.php:321
#3 DebugBar\DebugBar:sendDataInHeaders in C:\***\src\***\DebugBar.php:353
#2 ***\DebugBar:***\Bar\{closure} in C:\***\src\***\AjaxResponse.php:29
#1 ***\Ajax:sendResponse in C:\***\src\***\***.php:2958
#0 ***\***:*** in C:\***\***.php:20
```

(Disabling OPcache also fixes the issue, of course.)


[1] <https://github.com/maximebf/php-debugbar>

------------------------------------------------------------------------
[2020-06-25 13:41:49] ca at lsp dot net

Related To: Bug #79729

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


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=79735


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


Thread (7 messages)

« previous php.bugs (#228366) next »