Bug #79735 [Fbk->NoF]: OPcache causes "Call to undefined method" errors in exception_handler etc.
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)