Fix: reset procname on fork in child process
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 7 Sep 2018 15:28:51 +0000 (11:28 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 7 Sep 2018 17:19:15 +0000 (13:19 -0400)
lttng-ust(3) documents:

   procname
      Thread name, as set by exec(3) or prctl(2). It is recommended
      that programs set their thread name with prctl(2) before
      hitting the first tracepoint for that thread.

We can rightfully expect that this applies to the first thread created
within a child process upon fork. Reset the procname cache in the child
on fork.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/lttng/ust-events.h
liblttng-ust/lttng-ust-comm.c

index 0b2291b3d8c76265a458a7e94a629a516d2ae080..cf14b4f3eee129f11c6b762f4e9a12cd1a1b5017 100644 (file)
@@ -674,6 +674,7 @@ int lttng_add_cpu_id_to_ctx(struct lttng_ctx **ctx);
 int lttng_add_dyntest_to_ctx(struct lttng_ctx **ctx);
 void lttng_context_vtid_reset(void);
 void lttng_context_vpid_reset(void);
+void lttng_context_procname_reset(void);
 
 #ifdef LTTNG_UST_HAVE_PERF_EVENT
 int lttng_add_perf_counter_to_ctx(uint32_t type,
index b5c71da22ae3528dbe646c7cc78fbed09497995f..f1a8ff005b4a5719f4b2af5a9f3c0e7c4e4a2bde 100644 (file)
@@ -1972,6 +1972,7 @@ void ust_after_fork_child(sigset_t *restore_sigset)
                return;
        lttng_context_vpid_reset();
        lttng_context_vtid_reset();
+       lttng_context_procname_reset();
        DBG("process %d", getpid());
        /* Release urcu mutexes */
        rcu_bp_after_fork_child();
This page took 0.02775 seconds and 4 git commands to generate.