xhprofile crashed on php 8 attribute

50 views Asked by At

I have php-fpm-alpine docker image. PHP 8.0.14. Alpine 3.15. I have installed xhprof extension 2.3.9.

Profiler starting code is

$profiler = new \Xhgui\Profiler\Profiler([
  'save.handler' => \Xhgui\Profiler\Profiler::SAVER_UPLOAD,
  // Saving profile data by upload is only recommended with HTTPS
  // endpoints that have IP whitelists applied.
  'save.handler.upload' => [
      'url' => $_ENV['XHGUI_UPLOAD_URL'],
      // The timeout option is in seconds and defaults to 3 if unspecified.
      'timeout' => $_ENV['XHGUI_UPLOAD_TIMEOUT'] ?: 3,
      // the token must match 'upload.token' config in XHGui
      'token' => $_ENV['XHGUI_UPLOAD_TOKEN'] ?: '',
  ],
]);
$profiler->start(false);

When I open application page it crashes with error

child 55 exited on signal 11 (SIGSEGV - core dumped) after 4.243717 seconds from start

I debugged all code with xdebug and found that crash occures when PHP try to instatiate attribute via Reflection of class. Here's that code https://github.com/symfony/routing/blob/5.4/Loader/AnnotationClassLoader.php#L284.

I tried to change xhprof handler but it doesn't help. I tried to read xhprof code but I have poor expirience in ZEND extensions API. How can I find out what I got to do to fix this bug?

0

There are 0 answers