]> code.ossystems Code Review - openembedded-core.git/commitdiff
lttng-tools: update to 2.10.7
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Thu, 20 Jun 2019 18:42:39 +0000 (18:42 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 20 Jun 2019 23:34:33 +0000 (00:34 +0100)
Remove upstreamed patches.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-kernel/lttng/lttng-tools/0001-Fix-tests-link-libpause_consumer-on-liblttng-ctl.patch [deleted file]
meta/recipes-kernel/lttng/lttng-tools/0001-Skip-when-testapp-is-not-present.patch [moved from meta/recipes-kernel/lttng/lttng-tools/0004-Skip-when-testapp-is-not-present.patch with 100% similarity]
meta/recipes-kernel/lttng/lttng-tools/0002-Fix-check-for-lttng-modules-presence-before-testing.patch [moved from meta/recipes-kernel/lttng/lttng-tools/0008-Fix-check-for-lttng-modules-presence-before-testing.patch with 100% similarity]
meta/recipes-kernel/lttng/lttng-tools/0002-Fix-test-skip-test_getcpu_override-on-single-thread-.patch [deleted file]
meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch [deleted file]
meta/recipes-kernel/lttng/lttng-tools/0005-Tests-use-modprobe-to-test-for-the-presence-of-lttng.patch [deleted file]
meta/recipes-kernel/lttng/lttng-tools/0006-Tests-check-for-lttng-modules-presence.patch [deleted file]
meta/recipes-kernel/lttng/lttng-tools/0007-Fix-getgrnam-is-not-MT-Safe-use-getgrnam_r.patch [deleted file]
meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb [moved from meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb with 89% similarity]

diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-tests-link-libpause_consumer-on-liblttng-ctl.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-tests-link-libpause_consumer-on-liblttng-ctl.patch
deleted file mode 100644 (file)
index df18dc8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7244eac44be929fabd6ed1333f96929ef8da564f Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Tue, 19 Mar 2019 17:56:49 +0000
-Subject: [PATCH] fix: tests: link libpause_consumer on liblttng-ctl
-
-This preload test library uses symbols from liblttng-ctl which are
-resolved when preloaded by GLIBC but not by MUSL.
-
-Upstream-Status: Accepted [f667fbd7f8b9512f9943edb2597c226fcc424ee9]
-Backported to 2.11 and 2.10.
-
-Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
----
- tests/regression/tools/notification/Makefile.am | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/tests/regression/tools/notification/Makefile.am b/tests/regression/tools/notification/Makefile.am
-index 41adc69..a352bb8 100644
---- a/tests/regression/tools/notification/Makefile.am
-+++ b/tests/regression/tools/notification/Makefile.am
-@@ -20,7 +20,10 @@ FORCE_SHARED_LIB_OPTIONS = -module -shared -avoid-version \
-                          -rpath $(abs_builddir)
- libpause_consumer_la_SOURCES = consumer_testpoints.c
--libpause_consumer_la_LIBADD = $(top_builddir)/src/common/libcommon.la $(DL_LIBS)
-+libpause_consumer_la_LIBADD = \
-+     $(top_builddir)/src/common/libcommon.la \
-+     $(top_builddir)/src/lib/lttng-ctl/liblttng-ctl.la \
-+     $(DL_LIBS)
- libpause_consumer_la_LDFLAGS = $(FORCE_SHARED_LIB_OPTIONS)
- noinst_LTLIBRARIES = libpause_consumer.la
--- 
-2.17.1
-
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0002-Fix-test-skip-test_getcpu_override-on-single-thread-.patch b/meta/recipes-kernel/lttng/lttng-tools/0002-Fix-test-skip-test_getcpu_override-on-single-thread-.patch
deleted file mode 100644 (file)
index 5bb88d2..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From e7db27668a9d7fd279d45bc43f3a2d5847374e7b Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Tue, 12 Mar 2019 12:04:58 -0400
-Subject: [PATCH lttng-tools 1/2] Fix: test: skip test_getcpu_override on
- single thread system
-
-There is no value in performing this test on single thread system
-since the only valid value for the cpu field is 0.
-
-This test currently fails on single thread system (i.e yocto runquemu)
-on the test_getcpu_override_fail test case.
-
-Upstream-Status: Accepted [f87d0ca370c17b597762f5ee218f0e821ed2452d]
-Backported to 2.11 and 2.10
-
-Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
----
- .../ust/getcpu-override/test_getcpu_override     | 16 +++++++++++-----
- 1 file changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/tests/regression/ust/getcpu-override/test_getcpu_override b/tests/regression/ust/getcpu-override/test_getcpu_override
-index 4ca385aeb..ee3e31953 100755
---- a/tests/regression/ust/getcpu-override/test_getcpu_override
-+++ b/tests/regression/ust/getcpu-override/test_getcpu_override
-@@ -157,13 +157,19 @@ plan_tests $NUM_TESTS
- print_test_banner "$TEST_DESC"
--if [ -x "$CURDIR/.libs/lttng-ust-getcpu-override-test.so" ]; then
--      foundobj=1
--else
--      foundobj=0
-+if [ ! -x "$CURDIR/.libs/lttng-ust-getcpu-override-test.so" ]; then
-+      skip 0 "No shared object generated. Skipping all tests." $NUM_TESTS && exit 0
-+fi
-+
-+if [ "$num_cpus" -eq "1" ]; then
-+      # Skip the test since we cannot perform it as designed since N mod 1
-+      # is always equals to zero. There is no point testing this on a system
-+      # with a single thread. LTTng-UST limits the get_cpu function to return
-+      # value inside the [0, NUM_CPU - 1] range for a valid event (present in
-+      # trace).
-+      skip 0 "Test system only have a single thread. Skipping all tests." $NUM_TESTS && exit 0
- fi
--skip $foundobj "No shared object generated. Skipping all tests." $NUM_TESTS && exit 0
- TESTS=(
-       test_getcpu_override_fail
--- 
-2.17.1
-
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch b/meta/recipes-kernel/lttng/lttng-tools/0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch
deleted file mode 100644 (file)
index 822b26a..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From 83d165442d1c3658b6bafa28ddade8ffee7092ad Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Wed, 6 Mar 2019 16:46:49 -0500
-Subject: [PATCH lttng-tools 2/2] Fix: test: unit: the tree origin can be a
- symlink itself
-
-Problem:
-
-The base tree is defined as "/tmp/.....XXXXXX".
-On systems where "/tmp/" is itself a symlink utils_expand_path will
-expand the tree origin itself.
-
-For example on a base core-image-minimal Yocto build /tmp is a symlink
-to "/var/tmp", which is a symlink to "/var/volatile".
-
-utils_expand_path will return something like this for the symlink test:
-"/var/volative/.....XXXXXX/...." which is the valid result.
-
-Solution:
-
-Simply use realpath on the tree_origin and use this path to perform the
-test validation.
-
-This work was performed in the effort to support yocto fully and be able
-to run the test suite to detect problem as early as possible.
-
-
-Upstream-Status: Accepted [f66e964a2e0c75f5e1a55fbcc963b1c5e2b4519d]
-Backported to 2.11 and 2.10
-
-Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
----
- tests/unit/test_utils_expand_path.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/tests/unit/test_utils_expand_path.c b/tests/unit/test_utils_expand_path.c
-index d5cab002e..d047c207d 100644
---- a/tests/unit/test_utils_expand_path.c
-+++ b/tests/unit/test_utils_expand_path.c
-@@ -281,8 +281,8 @@ error:
- static void test_utils_expand_path(void)
- {
-       char *result;
--      char name[100], tmppath[PATH_MAX];
--      int i;
-+      char name[100], tmppath[PATH_MAX], real_tree_origin[PATH_MAX];
-+      int i, treelen;
-       /* Test valid cases */
-       for (i = 0; i < num_valid_tests; i++) {
-@@ -295,14 +295,24 @@ static void test_utils_expand_path(void)
-               free(result);
-       }
-+      /*
-+       * Get the realpath for the tree_origin since it can itself be a
-+       * symlink.
-+       */
-+      result = realpath(tree_origin, real_tree_origin);
-+      if (!result) {
-+              fail("realpath failed.");
-+              return;
-+      }
-+
-       /* Test symlink tree cases */
--      int treelen = strlen(tree_origin) + 1;
-+      treelen = strlen(real_tree_origin) + 1;
-       for (i = 0; i < num_symlink_tests; i++) {
-               sprintf(name, "symlink tree test case: [tmppath/]%s",
-                               symlink_tests_inputs[i].input);
-               snprintf(tmppath, PATH_MAX, "%s/%s",
--                              tree_origin, symlink_tests_inputs[i].input);
-+                              real_tree_origin, symlink_tests_inputs[i].input);
-               result = utils_expand_path(tmppath);
-               ok(result != NULL && strcmp(result + treelen,
-                                       symlink_tests_inputs[i].expected_result) == 0, name);
--- 
-2.17.1
-
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0005-Tests-use-modprobe-to-test-for-the-presence-of-lttng.patch b/meta/recipes-kernel/lttng/lttng-tools/0005-Tests-use-modprobe-to-test-for-the-presence-of-lttng.patch
deleted file mode 100644 (file)
index 16df3e6..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-From 9bc81a446d0a3ea9a884739eee48d3f14db3283c Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Wed, 28 Mar 2018 15:21:26 -0400
-Subject: [PATCH lttng-tools] Tests: use modprobe to test for the presence of
- lttng-modules
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Backport [28702730192ae1ded06105c54c5dc]
-
-Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
----
- tests/regression/tools/regen-metadata/test_kernel      |  8 ++------
- tests/regression/tools/regen-statedump/test_kernel     |  7 +------
- tests/regression/tools/snapshots/test_kernel           |  9 +++------
- tests/regression/tools/snapshots/test_kernel_streaming |  8 ++------
- tests/regression/tools/streaming/test_kernel           |  8 ++------
- tests/utils/utils.sh                                   | 10 ++++++++++
- 6 files changed, 20 insertions(+), 30 deletions(-)
-
-diff --git a/tests/regression/tools/regen-metadata/test_kernel b/tests/regression/tools/regen-metadata/test_kernel
-index fd139aeef..1849b9cd0 100755
---- a/tests/regression/tools/regen-metadata/test_kernel
-+++ b/tests/regression/tools/regen-metadata/test_kernel
-@@ -28,12 +28,6 @@ NUM_TESTS=18
- source $TESTDIR/utils/utils.sh
--# LTTng kernel modules check
--out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
--if [ -z "$out" ]; then
--      BAIL_OUT "LTTng modules not detected."
--fi
--
- function lttng_create_session_uri
- {
-       # Create session with default path
-@@ -91,6 +85,8 @@ fi
- skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
- {
-+      validate_lttng_modules_present
-+
-       start_lttng_relayd "-o $TRACE_PATH"
-       start_lttng_sessiond
-       modprobe lttng-test
-diff --git a/tests/regression/tools/regen-statedump/test_kernel b/tests/regression/tools/regen-statedump/test_kernel
-index 85afe76a1..50054eb07 100755
---- a/tests/regression/tools/regen-statedump/test_kernel
-+++ b/tests/regression/tools/regen-statedump/test_kernel
-@@ -29,12 +29,6 @@ NUM_TESTS=11
- source $TESTDIR/utils/utils.sh
--# LTTng kernel modules check
--out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
--if [ -z "$out" ]; then
--      BAIL_OUT "LTTng modules not detected."
--fi
--
- function test_kernel_local ()
- {
-       diag "Test kernel local with statedump regeneration"
-@@ -64,6 +58,7 @@ fi
- skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
- {
-+      validate_lttng_modules_present
-       start_lttng_sessiond
-       modprobe lttng-test
-diff --git a/tests/regression/tools/snapshots/test_kernel b/tests/regression/tools/snapshots/test_kernel
-index 886c4557a..ff563100b 100755
---- a/tests/regression/tools/snapshots/test_kernel
-+++ b/tests/regression/tools/snapshots/test_kernel
-@@ -29,12 +29,6 @@ NUM_TESTS=2060
- source $TESTDIR/utils/utils.sh
--# LTTng kernel modules check
--out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
--if [ -z "$out" ]; then
--      BAIL_OUT "LTTng modules not detected."
--fi
--
- function test_kernel_local_snapshot ()
- {
-       diag "Test local kernel snapshots"
-@@ -241,6 +235,9 @@ fi
- skip $isroot "Root access is needed. Skipping all kernel snapshot tests." $NUM_TESTS ||
- {
-+
-+      validate_lttng_modules_present
-+
-       start_lttng_sessiond
-       #tests=( test_kernel_1000_local_snapshots )
-diff --git a/tests/regression/tools/snapshots/test_kernel_streaming b/tests/regression/tools/snapshots/test_kernel_streaming
-index 7b96ef270..1d97519aa 100755
---- a/tests/regression/tools/snapshots/test_kernel_streaming
-+++ b/tests/regression/tools/snapshots/test_kernel_streaming
-@@ -29,12 +29,6 @@ NUM_TESTS=61
- source $TESTDIR/utils/utils.sh
--# LTTng kernel modules check
--out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
--if [ -z "$out" ]; then
--      BAIL_OUT "LTTng modules not detected."
--fi
--
- function snapshot_add_output ()
- {
-       local sess_name=$1
-@@ -169,6 +163,8 @@ fi
- skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
- {
-+      validate_lttng_modules_present
-+
-       start_lttng_relayd "-o $TRACE_PATH"
-       start_lttng_sessiond
-diff --git a/tests/regression/tools/streaming/test_kernel b/tests/regression/tools/streaming/test_kernel
-index d54bcedf5..6bb23d9f5 100755
---- a/tests/regression/tools/streaming/test_kernel
-+++ b/tests/regression/tools/streaming/test_kernel
-@@ -28,12 +28,6 @@ NUM_TESTS=10
- source $TESTDIR/utils/utils.sh
--# LTTng kernel modules check
--out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
--if [ -z "$out" ]; then
--      BAIL_OUT "LTTng modules not detected."
--fi
--
- function lttng_create_session_uri
- {
-       # Create session with default path
-@@ -80,6 +74,8 @@ fi
- skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
- {
-+      validate_lttng_modules_present
-+
-       start_lttng_relayd "-o $TRACE_PATH"
-       start_lttng_sessiond
-diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
-index af63824ce..26e59e383 100644
---- a/tests/utils/utils.sh
-+++ b/tests/utils/utils.sh
-@@ -125,6 +125,16 @@ function conf_proc_count()
-       echo
- }
-+# Check if base lttng-modules are present.
-+# Bail out on failure
-+function validate_lttng_modules_present ()
-+{
-+      modprobe -n lttng-tracer 2>/dev/null
-+      if [ $? -ne 0  ]; then
-+              BAIL_OUT "LTTng modules not detected."
-+      fi
-+}
-+
- function enable_kernel_lttng_event
- {
-       local withtap="$1"
--- 
-2.17.1
-
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0006-Tests-check-for-lttng-modules-presence.patch b/meta/recipes-kernel/lttng/lttng-tools/0006-Tests-check-for-lttng-modules-presence.patch
deleted file mode 100644 (file)
index 30aa66b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 92f93238f1df005aadc98e105c0dd0e04a5955a7 Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Mon, 25 Mar 2019 14:24:51 -0400
-Subject: [2/2] tests: check for lttng-modules presence
-
-Upstream-Status: Accepted [5da3fc8579a9f93ea4767729a107784bf2d034ae]
-Backported to 2.11 and 2.10
-
-Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
----
- tests/regression/tools/notification/test_notification_kernel | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/regression/tools/notification/test_notification_kernel b/tests/regression/tools/notification/test_notification_kernel
-index 6d7f256ae..e7368df26 100755
---- a/tests/regression/tools/notification/test_notification_kernel
-+++ b/tests/regression/tools/notification/test_notification_kernel
-@@ -108,6 +108,7 @@ function kernel_test
- }
- if [ "$(id -u)" == "0" ]; then
-+      validate_lttng_modules_present
-       kernel_test
- else
-       # Kernel tests are skipped.
--- 
-2.17.1
-
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0007-Fix-getgrnam-is-not-MT-Safe-use-getgrnam_r.patch b/meta/recipes-kernel/lttng/lttng-tools/0007-Fix-getgrnam-is-not-MT-Safe-use-getgrnam_r.patch
deleted file mode 100644 (file)
index a3362ea..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-From 10e8001ad876d8cb3b5a17c7492e713bbc047975 Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Thu, 28 Mar 2019 18:31:29 -0400
-Subject: [PATCH] Fix: getgrnam is not MT-Safe, use getgrnam_r
-
-Running the test suite under a Yocto musl build resulted in musl
-coredump due to double freeing.
-
-We get the following backtraces:
-
-0  a_crash () at ./arch/x86_64/atomic_arch.h:108
-1  unmap_chunk (self=<optimized out>) at src/malloc/malloc.c:515
-2  free (p=<optimized out>) at src/malloc/malloc.c:526
-3  0x00007f46d9dc3849 in __getgrent_a (f=f@entry=0x7f46d9d1f7e0, gr=gr@entry=0x7f46d9e24460 <gr>, line=line@entry=0x7f46d9e26058 <line>, size=size@entry=0x7f46d92db550, mem=mem@entry=0x7f46d9e26050 <mem>, nmem=nmem@entry=0x7f46d92db558, res=0x7f46d92db548) at src/passwd/getgrent_a.c:45
-4  0x00007f46d9dc2e6b in __getgr_a (name=0x487242 "tracing", gid=gid@entry=0, gr=gr@entry=0x7f46d9e24460 <gr>, buf=buf@entry=0x7f46d9e26058 <line>, size=size@entry=0x7f46d92db550, mem=mem@entry=0x7f46d9e26050 <mem>, nmem=0x7f46d92db558, res=0x7f46d92db548) at src/passwd/getgr_a.c:30
-5  0x00007f46d9dc3733 in getgrnam (name=<optimized out>) at src/passwd/getgrent.c:37
-6  0x0000000000460b29 in utils_get_group_id (name=<optimized out>) at ../../../lttng-tools-2.10.6/src/common/utils.c:1241
-7  0x000000000044ee69 in thread_manage_health (data=<optimized out>) at ../../../../lttng-tools-2.10.6/src/bin/lttng-sessiond/main.c:4115
-8  0x00007f46d9de1541 in start (p=<optimized out>) at src/thread/pthread_create.c:195
-9  0x00007f46d9dee661 in __clone () at src/thread/x86_64/clone.s:22
-
-From another run:
-
-0  a_crash () at ./arch/x86_64/atomic_arch.h:108
-1  unmap_chunk (self=<optimized out>) at src/malloc/malloc.c:515
-2  free (p=<optimized out>) at src/malloc/malloc.c:526
-3  0x00007f5abc210849 in __getgrent_a (f=f@entry=0x7f5abc2733e0, gr=gr@entry=0x7f5abc271460 <gr>, line=line@entry=0x7f5abc273058 <line>, size=size@entry=0x7f5abaef5510, mem=mem@entry=0x7f5abc273050 <mem>, nmem=nmem@entry=0x7f5abaef5518, res=0x7f5abaef5508) at src/passwd/getgrent_a.c:45
-4  0x00007f5abc20fe6b in __getgr_a (name=0x487242 "tracing", gid=gid@entry=0, gr=gr@entry=0x7f5abc271460 <gr>, buf=buf@entry=0x7f5abc273058 <line>, size=size@entry=0x7f5abaef5510, mem=mem@entry=0x7f5abc273050 <mem>, nmem=0x7f5abaef5518, res=0x7f5abaef5508) at src/passwd/getgr_a.c:30
-5  0x00007f5abc210733 in getgrnam (name=<optimized out>) at src/passwd/getgrent.c:37
-6  0x0000000000460b29 in utils_get_group_id (name=<optimized out>) at ../../../lttng-tools-2.10.6/src/common/utils.c:1241
-7  0x000000000042dee4 in notification_channel_socket_create () at ../../../../lttng-tools-2.10.6/src/bin/lttng-sessiond/notification-thread.c:238
-8  init_thread_state (state=0x7f5abaef5560, handle=0x7f5abbf9be40) at ../../../../lttng-tools-2.10.6/src/bin/lttng-sessiond/notification-thread.c:375
-9  thread_notification (data=0x7f5abbf9be40) at ../../../../lttng-tools-2.10.6/src/bin/lttng-sessiond/notification-thread.c:495
-10 0x00007f5abc22e541 in start (p=<optimized out>) at src/thread/pthread_create.c:195
-11 0x00007f5abc23b661 in __clone () at src/thread/x86_64/clone.s:22
-
-The problem was easily reproducible (~6 crash on ~300 runs). A prototype fix
-using mutex around the getgrnam yielded no crash in over 1000 runs. This
-patch yielded the same results as the prototype fix.
-
-Unfortunately we cannot rely on a mutex in liblttng-ctl since we cannot
-enforce the locking for the application using the lib.
-
-Use getgrnam_r instead.
-
-The previous implementation of utils_get_group_id returned the gid of
-the root group (0) on error/not found. lttng_check_tracing_group needs
-to know if an error/not found occured, returning the root group is not
-enough. We now return the gid via the passed parameter. The caller is
-responsible for either defaulting to the root group or propagating the
-error.
-
-We also do not want to warn when used in liblttng-ctl context. We might
-want to move the warning elsewhere in the future. For now, pass a bool
-if we need to warn or not.
-
-Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-
-Upstream-Status: Submitted [https://patchwork.lttng.org/patch/2314703]
----
- src/bin/lttng-consumerd/health-consumerd.c   | 10 ++-
- src/bin/lttng-relayd/health-relayd.c         | 20 ++++--
- src/bin/lttng-sessiond/main.c                | 24 +++++--
- src/bin/lttng-sessiond/notification-thread.c | 10 ++-
- src/common/utils.c                           | 75 +++++++++++++++++---
- src/common/utils.h                           |  4 +-
- src/lib/lttng-ctl/lttng-ctl.c                |  8 +--
- 7 files changed, 122 insertions(+), 29 deletions(-)
-
-diff --git a/src/bin/lttng-consumerd/health-consumerd.c b/src/bin/lttng-consumerd/health-consumerd.c
-index 1e2f31e4..6045401a 100644
---- a/src/bin/lttng-consumerd/health-consumerd.c
-+++ b/src/bin/lttng-consumerd/health-consumerd.c
-@@ -184,8 +184,14 @@ void *thread_manage_health(void *data)
-       is_root = !getuid();
-       if (is_root) {
-               /* lttng health client socket path permissions */
--              ret = chown(health_unix_sock_path, 0,
--                              utils_get_group_id(tracing_group_name));
-+              gid_t gid;
-+
-+              ret = utils_get_group_id(tracing_group_name, true, &gid);
-+              if (ret) {
-+                      gid = 0; /* Default to root group. */
-+              }
-+
-+              ret = chown(health_unix_sock_path, 0, gid);
-               if (ret < 0) {
-                       ERR("Unable to set group on %s", health_unix_sock_path);
-                       PERROR("chown");
-diff --git a/src/bin/lttng-relayd/health-relayd.c b/src/bin/lttng-relayd/health-relayd.c
-index ba996621..962e88c4 100644
---- a/src/bin/lttng-relayd/health-relayd.c
-+++ b/src/bin/lttng-relayd/health-relayd.c
-@@ -105,8 +105,14 @@ static int create_lttng_rundir_with_perm(const char *rundir)
-               int is_root = !getuid();
-               if (is_root) {
--                      ret = chown(rundir, 0,
--                                      utils_get_group_id(tracing_group_name));
-+                      gid_t gid;
-+
-+                      ret = utils_get_group_id(tracing_group_name, true, &gid);
-+                      if (ret) {
-+                              gid = 0; /* Default to root group.*/
-+                      }
-+
-+                      ret = chown(rundir, 0, gid);
-                       if (ret < 0) {
-                               ERR("Unable to set group on %s", rundir);
-                               PERROR("chown");
-@@ -256,8 +262,14 @@ void *thread_manage_health(void *data)
-       is_root = !getuid();
-       if (is_root) {
-               /* lttng health client socket path permissions */
--              ret = chown(health_unix_sock_path, 0,
--                              utils_get_group_id(tracing_group_name));
-+              gid_t gid;
-+
-+              ret = utils_get_group_id(tracing_group_name, true, &gid);
-+              if (ret) {
-+                      gid = 0; /* Default to root group */
-+              }
-+
-+              ret = chown(health_unix_sock_path, 0, gid);
-               if (ret < 0) {
-                       ERR("Unable to set group on %s", health_unix_sock_path);
-                       PERROR("chown");
-diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c
-index fa6fa483..49307064 100644
---- a/src/bin/lttng-sessiond/main.c
-+++ b/src/bin/lttng-sessiond/main.c
-@@ -4112,8 +4112,14 @@ static void *thread_manage_health(void *data)
-       if (is_root) {
-               /* lttng health client socket path permissions */
--              ret = chown(config.health_unix_sock_path.value, 0,
--                              utils_get_group_id(config.tracing_group_name.value));
-+              gid_t gid;
-+
-+              ret = utils_get_group_id(config.tracing_group_name.value, true, &gid);
-+              if (ret) {
-+                      gid = 0; /* Default to root group */
-+              }
-+
-+              ret = chown(config.health_unix_sock_path.value, 0, &gid);
-               if (ret < 0) {
-                       ERR("Unable to set group on %s", config.health_unix_sock_path.value);
-                       PERROR("chown");
-@@ -5238,7 +5244,10 @@ static int set_permissions(char *rundir)
-       int ret;
-       gid_t gid;
--      gid = utils_get_group_id(config.tracing_group_name.value);
-+      ret = utils_get_group_id(config.tracing_group_name.value, true, &gid);
-+      if (ret) {
-+              gid = 0; /* Default to root group */
-+      }
-       /* Set lttng run dir */
-       ret = chown(rundir, 0, gid);
-@@ -5349,7 +5358,14 @@ static int set_consumer_sockets(struct consumer_data *consumer_data)
-               goto error;
-       }
-       if (is_root) {
--              ret = chown(path, 0, utils_get_group_id(config.tracing_group_name.value));
-+              gid_t gid;
-+
-+              ret = utils_get_group_id(config.tracing_group_name.value, true, &gid);
-+              if (ret) {
-+                      gid = 0; /* Default to root group */
-+              }
-+
-+              ret = chown(path, 0, gid);
-               if (ret < 0) {
-                       ERR("Unable to set group on %s", path);
-                       PERROR("chown");
-diff --git a/src/bin/lttng-sessiond/notification-thread.c b/src/bin/lttng-sessiond/notification-thread.c
-index 92ac597f..18a264d9 100644
---- a/src/bin/lttng-sessiond/notification-thread.c
-+++ b/src/bin/lttng-sessiond/notification-thread.c
-@@ -235,8 +235,14 @@ int notification_channel_socket_create(void)
-       }
-       if (getuid() == 0) {
--              ret = chown(sock_path, 0,
--                              utils_get_group_id(config.tracing_group_name.value));
-+              gid_t gid;
-+
-+              ret =  utils_get_group_id(config.tracing_group_name.value, true, &gid);
-+              if (ret) {
-+                      gid = 0; /* Default to root group. */
-+              }
-+
-+              ret = chown(sock_path, 0, gid);
-               if (ret) {
-                       ERR("Failed to set the notification channel socket's group");
-                       ret = -1;
-diff --git a/src/common/utils.c b/src/common/utils.c
-index c0bb031e..778bc00f 100644
---- a/src/common/utils.c
-+++ b/src/common/utils.c
-@@ -1231,24 +1231,77 @@ size_t utils_get_current_time_str(const char *format, char *dst, size_t len)
- }
- /*
-- * Return the group ID matching name, else 0 if it cannot be found.
-+ * Return 0 on success and set *gid to the group_ID matching the passed name.
-+ * Else -1 if it cannot be found or an error occurred.
-  */
- LTTNG_HIDDEN
--gid_t utils_get_group_id(const char *name)
-+int utils_get_group_id(const char *name, bool warn, gid_t *gid)
- {
--      struct group *grp;
-+      static volatile int warn_once;
--      grp = getgrnam(name);
--      if (!grp) {
--              static volatile int warn_once;
-+      int ret;
-+      long sys_len;
-+      size_t len;
-+      struct group grp;
-+      struct group *result;
-+      char *buffer = NULL;
--              if (!warn_once) {
--                      WARN("No tracing group detected");
--                      warn_once = 1;
-+      /* Get the system limit if it exists */
-+      sys_len = sysconf(_SC_GETGR_R_SIZE_MAX);
-+      if (sys_len == -1) {
-+              len = 1024;
-+      } else {
-+              len = (size_t) sys_len;
-+      }
-+
-+      buffer = malloc(len);
-+      if (!buffer) {
-+              PERROR("getgrnam_r malloc");
-+              ret = -1;
-+              goto error;
-+      }
-+
-+      while ((ret = getgrnam_r(name, &grp, buffer, len, &result)) == ERANGE)
-+      {
-+              /* Buffer is not big enough, increase its size. */
-+              size_t new_len = 2 * len;
-+              char *new_buffer = NULL;
-+              if (new_len < len) {
-+                      ERR("getgrnam_r buffer size overflow");
-+                      ret = -1;
-+                      goto error;
-+              }
-+              len = new_len;
-+              new_buffer = realloc(buffer, len);
-+              if (!new_buffer) {
-+                      PERROR("getgrnam_r realloc");
-+                      ret = -1;
-+                      goto error;
-               }
--              return 0;
-+              buffer = new_buffer;
-+      }
-+      if (ret != 0) {
-+              PERROR("getgrnam_r");
-+              ret = -1;
-+              goto error;
-+      }
-+
-+      /* Group not found. */
-+      if (!result) {
-+              ret = -1;
-+              goto error;
-+      }
-+
-+      *gid = result->gr_gid;
-+      ret = 0;
-+
-+error:
-+      free(buffer);
-+      if (ret && warn && !warn_once) {
-+              WARN("No tracing group detected");
-+              warn_once = 1;
-       }
--      return grp->gr_gid;
-+      return ret;
- }
- /*
-diff --git a/src/common/utils.h b/src/common/utils.h
-index 18f19ef1..9c72431d 100644
---- a/src/common/utils.h
-+++ b/src/common/utils.h
-@@ -22,6 +22,8 @@
- #include <unistd.h>
- #include <stdint.h>
- #include <getopt.h>
-+#include <stdbool.h>
-+#include <sys/types.h>
- #define KIBI_LOG2 10
- #define MEBI_LOG2 20
-@@ -52,7 +54,7 @@ int utils_get_count_order_u64(uint64_t x);
- char *utils_get_home_dir(void);
- char *utils_get_user_home_dir(uid_t uid);
- size_t utils_get_current_time_str(const char *format, char *dst, size_t len);
--gid_t utils_get_group_id(const char *name);
-+int utils_get_group_id(const char *name, bool warn, gid_t *gid);
- char *utils_generate_optstring(const struct option *long_options,
-               size_t opt_count);
- int utils_create_lock_file(const char *filepath);
-diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c
-index 2d84aad9..561b0bcf 100644
---- a/src/lib/lttng-ctl/lttng-ctl.c
-+++ b/src/lib/lttng-ctl/lttng-ctl.c
-@@ -208,15 +208,13 @@ end:
- LTTNG_HIDDEN
- int lttng_check_tracing_group(void)
- {
--      struct group *grp_tracing;      /* no free(). See getgrnam(3) */
--      gid_t *grp_list;
-+      gid_t *grp_list, tracing_gid;
-       int grp_list_size, grp_id, i;
-       int ret = -1;
-       const char *grp_name = tracing_group;
-       /* Get GID of group 'tracing' */
--      grp_tracing = getgrnam(grp_name);
--      if (!grp_tracing) {
-+      if (utils_get_group_id(grp_name, false, &tracing_gid)) {
-               /* If grp_tracing is NULL, the group does not exist. */
-               goto end;
-       }
-@@ -241,7 +239,7 @@ int lttng_check_tracing_group(void)
-       }
-       for (i = 0; i < grp_list_size; i++) {
--              if (grp_list[i] == grp_tracing->gr_gid) {
-+              if (grp_list[i] == tracing_gid) {
-                       ret = 1;
-                       break;
-               }
--- 
-2.17.1
-
similarity index 89%
rename from meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb
rename to meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb
index 58c7864c304dd1dc69b391e3040bab6be9e83ccf..469ad111c43d99ec6ed964b7d740d1e0d9941e5d 100644 (file)
@@ -32,18 +32,12 @@ SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
            file://x32.patch \
            file://run-ptest \
            file://lttng-sessiond.service \
-           file://0001-Fix-tests-link-libpause_consumer-on-liblttng-ctl.patch \
-           file://0002-Fix-test-skip-test_getcpu_override-on-single-thread-.patch \
-           file://0003-Fix-test-unit-the-tree-origin-can-be-a-symlink-itsel.patch \
-           file://0004-Skip-when-testapp-is-not-present.patch\
-           file://0005-Tests-use-modprobe-to-test-for-the-presence-of-lttng.patch \
-           file://0006-Tests-check-for-lttng-modules-presence.patch \
-           file://0007-Fix-getgrnam-is-not-MT-Safe-use-getgrnam_r.patch \
-           file://0008-Fix-check-for-lttng-modules-presence-before-testing.patch \
+           file://0001-Skip-when-testapp-is-not-present.patch \
+           file://0002-Fix-check-for-lttng-modules-presence-before-testing.patch \
            "
 
-SRC_URI[md5sum] = "e88c521b5da6bb48a8187af633336ecc"
-SRC_URI[sha256sum] = "f05df52bbebf8ce88d1b29e9e98cfc957d2ed738a345118018237ebdb581537c"
+SRC_URI[md5sum] = "e7804d10e4cade381e241601f6047373"
+SRC_URI[sha256sum] = "ed71ebe00c5d985c74f30e97b614e909573cbd9276c85e05d9557a0b817a1312"
 
 inherit autotools ptest pkgconfig useradd python3-dir manpages systemd