* [LTP] [PATCH] lib/tst_test: avoid cleanup by cloned test threads
@ 2017-09-20 20:23 Steve Muckle
2017-09-22 8:47 ` Jan Stancek
0 siblings, 1 reply; 2+ messages in thread
From: Steve Muckle @ 2017-09-20 20:23 UTC (permalink / raw)
To: ltp
Some versions of glibc and bionic report the same PID for parent and
child when clone() is called with CLONE_VM but not CLONE_THREAD. This
can cause cleanup to be incorrectly run by the child.
Avoid this by using a direct syscall for getpid when running the
cleanup.
Signed-off-by: Steve Muckle <smuckle.linux@gmail.com>
---
lib/tst_test.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/tst_test.c b/lib/tst_test.c
index f72de82d4..0cc78589e 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -29,6 +29,7 @@
#include "tst_test.h"
#include "tst_device.h"
#include "lapi/futex.h"
+#include "lapi/syscalls.h"
#include "tst_ansi_color.h"
#include "tst_timer_test.h"
@@ -276,7 +277,13 @@ void tst_vbrk_(const char *file, const int lineno, int ttype,
{
print_result(file, lineno, ttype, fmt, va);
- if (getpid() == main_pid)
+ /*
+ * The getpid implementation in some C library versions may cause cloned
+ * test threads to show the same pid as their parent when CLONE_VM is
+ * specified but CLONE_THREAD is not. Use direct syscall to avoid
+ * cleanup running in the child.
+ */
+ if (syscall(SYS_getpid) == main_pid)
do_test_cleanup();
if (getpid() == lib_pid)
--
2.14.1.821.g8fa685d3b7-goog
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [LTP] [PATCH] lib/tst_test: avoid cleanup by cloned test threads
2017-09-20 20:23 [LTP] [PATCH] lib/tst_test: avoid cleanup by cloned test threads Steve Muckle
@ 2017-09-22 8:47 ` Jan Stancek
0 siblings, 0 replies; 2+ messages in thread
From: Jan Stancek @ 2017-09-22 8:47 UTC (permalink / raw)
To: ltp
----- Original Message -----
> Some versions of glibc and bionic report the same PID for parent and
> child when clone() is called with CLONE_VM but not CLONE_THREAD. This
> can cause cleanup to be incorrectly run by the child.
>
> Avoid this by using a direct syscall for getpid when running the
> cleanup.
>
Pushed.
Thanks,
Jan
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-09-22 8:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-20 20:23 [LTP] [PATCH] lib/tst_test: avoid cleanup by cloned test threads Steve Muckle
2017-09-22 8:47 ` Jan Stancek
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.