Description
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.