File 1536-erts-Fix-bug-in-meta-tracing-with-session.patch of Package erlang

From 554ec2c2337212fbf607d5967db2df60254ad9ff Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Wed, 26 Jun 2024 12:38:13 +0200
Subject: [PATCH] erts: Fix bug in meta tracing with session

The meta tracer was the calling process instead of the session tracer.
---
 erts/emulator/beam/erl_bif_trace.c         | 11 ++++--
 erts/emulator/test/trace_session_SUITE.erl | 42 +++++++++++++++++-----
 2 files changed, 42 insertions(+), 11 deletions(-)

diff --git a/erts/emulator/beam/erl_bif_trace.c b/erts/emulator/beam/erl_bif_trace.c
index 632e21bee4..0ab8b59406 100644
--- a/erts/emulator/beam/erl_bif_trace.c
+++ b/erts/emulator/beam/erl_bif_trace.c
@@ -349,8 +349,15 @@ trace_pattern(Process* p, ErtsTraceSession *session,
 		}
 		flags.breakpoint = 1;
 		flags.meta       = 1;
-                if (ERTS_TRACER_IS_NIL(meta_tracer))
-                    meta_tracer = erts_term_to_tracer(THE_NON_VALUE, p->common.id);
+                if (ERTS_TRACER_IS_NIL(meta_tracer)) {
+                    if (ERTS_TRACER_IS_NIL(session->tracer)) {
+                        meta_tracer = erts_term_to_tracer(THE_NON_VALUE,
+                                                          p->common.id);
+                    }
+                    else {
+                        erts_tracer_update(&meta_tracer, session->tracer);
+                    }
+                }
 		break;
 	    case am_global:
 		if (flags.breakpoint) {
-- 
2.35.3

openSUSE Build Service is sponsored by