[Lldb-commits] [PATCH] D114444: [lldb] Deflake TestTsanBasic.py

2021-11-23 Thread Dmitry Vyukov via Phabricator via lldb-commits
dvyukov created this revision.
dvyukov added reviewers: vitalybuka, melver.
dvyukov requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

The test flaked on bots:
http://green.lab.llvm.org/green/job/lldb-cmake/38666/
The test expects that tsan will detect a single race
with concurrent memory accesses. TSan doesn't do this reliably.
Run 100 iterations of the racing threads, which should
make the race much more likely to be detected.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D11

Files:
  lldb/test/API/functionalities/tsan/basic/main.c


Index: lldb/test/API/functionalities/tsan/basic/main.c
===
--- lldb/test/API/functionalities/tsan/basic/main.c
+++ lldb/test/API/functionalities/tsan/basic/main.c
@@ -16,14 +16,17 @@
 
 int main (int argc, char const *argv[])
 {
-pointer = (char *)malloc(10); // malloc line
+for (int i = 0; i < 100; i++) {
+pointer = (char *)malloc(10); // malloc line
 
-pthread_t t1, t2;
-pthread_create(&t1, NULL, f1, NULL);
-pthread_create(&t2, NULL, f2, NULL);
+pthread_t t1, t2;
+pthread_create(&t1, NULL, f1, NULL);
+pthread_create(&t2, NULL, f2, NULL);
 
-pthread_join(t1, NULL);
-pthread_join(t2, NULL);
+pthread_join(t1, NULL);
+pthread_join(t2, NULL);
 
+free(pointer);
+}
 return 0;
 }


Index: lldb/test/API/functionalities/tsan/basic/main.c
===
--- lldb/test/API/functionalities/tsan/basic/main.c
+++ lldb/test/API/functionalities/tsan/basic/main.c
@@ -16,14 +16,17 @@
 
 int main (int argc, char const *argv[])
 {
-pointer = (char *)malloc(10); // malloc line
+for (int i = 0; i < 100; i++) {
+pointer = (char *)malloc(10); // malloc line
 
-pthread_t t1, t2;
-pthread_create(&t1, NULL, f1, NULL);
-pthread_create(&t2, NULL, f2, NULL);
+pthread_t t1, t2;
+pthread_create(&t1, NULL, f1, NULL);
+pthread_create(&t2, NULL, f2, NULL);
 
-pthread_join(t1, NULL);
-pthread_join(t2, NULL);
+pthread_join(t1, NULL);
+pthread_join(t2, NULL);
 
+free(pointer);
+}
 return 0;
 }
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D114444: [lldb] Deflake TestTsanBasic.py

2021-11-23 Thread Dmitry Vyukov via Phabricator via lldb-commits
dvyukov added a comment.

In D11#3148963 , @melver wrote:

> Would using `__tsan_testonly_barrier` be appropriate here? If it's not meant 
> to use any tricks to achieve the race then I guess retrying a bunch of times 
> is fine.

I did not want to leak this internal interface from tsan tests.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D11/new/

https://reviews.llvm.org/D11

___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D114444: [lldb] Deflake TestTsanBasic.py

2021-11-23 Thread Dmitry Vyukov via Phabricator via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rGa114f151930d: [lldb] Deflake TestTsanBasic.py (authored by 
dvyukov).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D11/new/

https://reviews.llvm.org/D11

Files:
  lldb/test/API/functionalities/tsan/basic/main.c


Index: lldb/test/API/functionalities/tsan/basic/main.c
===
--- lldb/test/API/functionalities/tsan/basic/main.c
+++ lldb/test/API/functionalities/tsan/basic/main.c
@@ -16,14 +16,17 @@
 
 int main (int argc, char const *argv[])
 {
-pointer = (char *)malloc(10); // malloc line
+for (int i = 0; i < 100; i++) {
+pointer = (char *)malloc(10); // malloc line
 
-pthread_t t1, t2;
-pthread_create(&t1, NULL, f1, NULL);
-pthread_create(&t2, NULL, f2, NULL);
+pthread_t t1, t2;
+pthread_create(&t1, NULL, f1, NULL);
+pthread_create(&t2, NULL, f2, NULL);
 
-pthread_join(t1, NULL);
-pthread_join(t2, NULL);
+pthread_join(t1, NULL);
+pthread_join(t2, NULL);
 
+free(pointer);
+}
 return 0;
 }


Index: lldb/test/API/functionalities/tsan/basic/main.c
===
--- lldb/test/API/functionalities/tsan/basic/main.c
+++ lldb/test/API/functionalities/tsan/basic/main.c
@@ -16,14 +16,17 @@
 
 int main (int argc, char const *argv[])
 {
-pointer = (char *)malloc(10); // malloc line
+for (int i = 0; i < 100; i++) {
+pointer = (char *)malloc(10); // malloc line
 
-pthread_t t1, t2;
-pthread_create(&t1, NULL, f1, NULL);
-pthread_create(&t2, NULL, f2, NULL);
+pthread_t t1, t2;
+pthread_create(&t1, NULL, f1, NULL);
+pthread_create(&t2, NULL, f2, NULL);
 
-pthread_join(t1, NULL);
-pthread_join(t2, NULL);
+pthread_join(t1, NULL);
+pthread_join(t2, NULL);
 
+free(pointer);
+}
 return 0;
 }
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits