Skip to content

Core dumped with opentelemetry extension in symfony app in php 8.4 #1504

Closed
@trigrab

Description

@trigrab

Describe your environment We have an older symfony application where we want to introduce opentelemetry. We are in the middle of testing phase during which we upgraded production from php 8.3.15 to php 8.4.3. After the upgrade, our opentelemetry branch app breaks on every web request enabled: child 24 exited on signal 11 (SIGSEGV) after 64.931337 seconds from start.

Steps to reproduce
I created a minimal Dockerfile which reproduces the behavior:

ARG PHP_VERSION=8.4.3

FROM php:${PHP_VERSION}-fpm-bookworm

RUN pecl install opentelemetry-1.1.2 && docker-php-ext-enable opentelemetry

RUN docker-php-ext-enable opcache --ini-name 10-opcache.ini

RUN echo "opcache.enable=1" >> /usr/local/etc/php/conf.d/10-opcache.ini \
  && echo "opcache.preload=/app/config/preload.php" >> /usr/local/etc/php/conf.d/10-opcache.ini \
  && echo "opcache.preload_user=root" >> /usr/local/etc/php/conf.d/10-opcache.ini

COPY --from=composer/composer:2-bin /composer /usr/local/bin/composer

RUN curl -sS https://get.symfony.com/cli/installer | bash; \
  echo 'export PATH="$HOME/.symfony5/bin:$PATH"' >> $HOME/.profile

RUN apt-get update && apt-get install -y git && apt-get clean
RUN git config --global user.email "[email protected]" \
  && git config --global user.name "Example User"

RUN /root/.symfony5/bin/symfony new /app --version="6.4.x" --webapp --no-interaction

RUN echo "    cache.adapter.null:" >> /app/config/services.yaml \
 && echo "        class: Symfony\Component\Cache\Adapter\NullAdapter" >> /app/config/services.yaml \
 && echo "        arguments: [~] " >> /app/config/services.yaml

WORKDIR /app

RUN bin/console cache:warmup --env=prod
CMD ["/root/.symfony5/bin/symfony", "server:start", "--allow-all-ip"]

It does not break if:

  • PHP_VERSION=8.3.15
  • opcache.preload is disabled
  • I don't modify the default symfony app, that's why I added the dummy service with Cache NullAdapter which is probably not the root cause
  • opentelemetry extension OR opcache disabled

What is the expected behavior?
A web request results in the default page as no routes are configured

What is the actual behavior?
A web request results in an error page, stating: # unable to fetch the response from the backend: unexpected EOF
Container logs:

symfony-otel-1  | [PHP-FPM    ] 8:39:09] NOTICE: [pool www] child 24 started
symfony-otel-1  | [Web Server ] Feb  6 08:39:10 |ERROR  | SERVER GET  (502) /favicon.ico ip="172.39.0.1"
symfony-otel-1  | [PHP-FPM    ] Feb  6 08:39:10 |WARNING| FPM    [pool www] child 23 exited on signal 11 (SIGSEGV - core dumped) after 54.759915 seconds from start 
symfony-otel-1  | [PHP-FPM    ] Feb  6 08:39:10 |NOTICE | FPM    [pool www] child 27 started 

Additional context

The application does not break immediately or on cache preloading. It just breaks on every web request which fpm recovers from.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions