[PATCH] D35704: added reset feature to dfsan
Farah Hariri via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 28 11:23:12 PDT 2017
farahhariri marked 3 inline comments as done.
farahhariri added inline comments.
================
Comment at: lib/dfsan/dfsan.cc:179
+ // reset label count
+ atomic_store(&__dfsan_last_label, 0, memory_order_relaxed);
+}
----------------
kcc wrote:
> farahhariri wrote:
> > kcc wrote:
> > > Add some code to check-fail in case __dfsan_last_label has changed (i.e. to check that no other threads are messing around)
> > >
> > > Then, add a test with threads that will trigger that check-fail.
> > > Then, add a test with threads that will trigger that check-fail.
> >
> > That means I will have to add a flaky test that sometimes passes and sometimes fails.
> > I cannot guarantee that the scheduler will switch context between the atomic store and
> > the check-fail to another thread, and then switch back to the check-fail. That's the only
> > way to guarantee it will fail..
> You can create a test that runs a very long loop in a thread and thus guarantee that the test will crash 9999999999999999 our of 100000000000000 times.
I tried that and let it run for 12+ hours and could not trigger the assertion after the atomic store to fail. But what I did is control the thread scheduling from the test and make an assertion in that test fail (check the update).
https://reviews.llvm.org/D35704
More information about the llvm-commits
mailing list