Skip to content

Remove PHP opentelemetry extension to re-enable JIT on 8.5#68

Merged
loks0n merged 1 commit intomainfrom
perf/remove-otel2
May 1, 2026
Merged

Remove PHP opentelemetry extension to re-enable JIT on 8.5#68
loks0n merged 1 commit intomainfrom
perf/remove-otel2

Conversation

@loks0n
Copy link
Copy Markdown
Member

@loks0n loks0n commented May 1, 2026

Summary

  • Remove the opentelemetry PECL extension from the default image. Its observer hooks override zend_execute_ex, which causes opcache to refuse to enable JIT on PHP 8.5.
  • Drop the opentelemetry build stage, version env, COPY, and docker-php-ext-enable entry from the Dockerfile.
  • Drop the opentelemetry assertion from tests.yaml.
  • Add a 1.2.2 entry to CHANGES.md.

Test plan

  • docker build --no-cache --tag appwrite/base:latest . succeeds
  • container-structure-test test --config tests.yaml --image appwrite/base:latest passes
  • docker run appwrite/base:latest php -m no longer lists opentelemetry
  • With opcache.jit=tracing + opcache.jit_buffer_size>0, php --ri opcache reports JIT enabled (no "JIT is incompatible with third party extensions that override zend_execute_ex" warning)

🤖 Generated with Claude Code

Its observer hooks override zend_execute_ex and disable opcache JIT on
PHP 8.5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 1, 2026

Greptile Summary

This PR removes the opentelemetry PECL extension from the base image to restore opcache JIT compatibility on PHP 8.5. The removal is consistent across all four touch points — ENV version pin, build stage, COPY instruction, and docker-php-ext-enable — and the test assertion and changelog are updated accordingly.

Confidence Score: 5/5

Safe to merge; the removal is complete and consistent across Dockerfile, tests, and changelog.

All references to opentelemetry are correctly removed with no leftover artifacts, the test suite is updated in lockstep, and the version bump is appropriate for a potentially breaking removal.

No files require special attention.

Important Files Changed

Filename Overview
Dockerfile Removes all opentelemetry artifacts: the ENV version pin, the dedicated build stage, the COPY instruction, and the docker-php-ext-enable entry. Deletion is consistent and complete.
tests.yaml Removes the opentelemetry assertion from the php -m command test, keeping the test suite in sync with the Dockerfile change.
CHANGES.md Adds a Version 1.2.2 entry documenting the removal of the opentelemetry extension with a clear reason.

Reviews (1): Last reviewed commit: "Remove PHP opentelemetry extension" | Re-trigger Greptile

@loks0n loks0n merged commit dfa49c3 into main May 1, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants