Skip to content

feat: use context to isolate data between requests and messages#997

Open
Litarnus wants to merge 9 commits intomasterfrom
franken-php
Open

feat: use context to isolate data between requests and messages#997
Litarnus wants to merge 9 commits intomasterfrom
franken-php

Conversation

@Litarnus
Copy link
Contributor

This PR adds the context introduced in getsentry/sentry-php#2011.

The context is used to properly isolate data between requests and messages and prevent data leaking between requests when using worker runtimes such as FrankenPHP or RoadRunner.

Because message context isolation breaks current behaviour, a new flag isolate_context_by_message is introduced, which defaults to false to keep current behaviour unchanged. When enabled, it will inherit all data that was set before a message is received.

@Litarnus Litarnus marked this pull request as ready for review February 24, 2026 15:49
@deluxetom
Copy link
Contributor

I would love to have this merged. I use FrankenPHP and have an issue this PR would fix.

Copy link

@giortzisg giortzisg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Contradictory assertions in ignored transaction tracing test
    • Updated the ignored-transaction assertion to count only non-transaction events so tracing events no longer conflict with the expected tracing event count.

Create PR

Or push these changes by commenting:

@cursor push ad868baab6
Preview (ad868baab6)
diff --git a/tests/End2End/TracingEnd2EndTest.php b/tests/End2End/TracingEnd2EndTest.php
--- a/tests/End2End/TracingEnd2EndTest.php
+++ b/tests/End2End/TracingEnd2EndTest.php
@@ -72,7 +72,11 @@
 
     private function assertLastEventIdIsNull(KernelBrowser $client): void
     {
-        $this->assertCount(0, StubTransport::$events, 'Some error was captured');
+        $errorEvents = array_filter(StubTransport::$events, static function (\Sentry\Event $event): bool {
+            return null === $event->getTransaction();
+        });
+
+        $this->assertCount(0, $errorEvents, 'Some error was captured');
     }
 
     private function assertTracingEventCount(int $expectedCount): void

This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.

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.

3 participants