[llvm-dev] tsan_interface_java.h; any users? reviving https://github.com/google/java-thread-sanitizer?

Jiri Danek via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 1 07:14:59 PDT 2017

On Fri, Sep 1, 2017 at 1:33 AM, Jaeheon Yi <jaeheon at google.com> wrote:

> The interface files you see are for a prototype of Java Tsan that's
> internal to Google. It's for use by a JDK that we customized with extensive
> JVM patches, and enables running the Tsan engine on Java and native code
> simultaneously.
> We presented this prototype recently at the JVM Language Summit. Here's
> the talk:
> https://www.youtube.com/watch?v=UykhZ36W04I
> We are starting to explore how to upstream the JVM patches. It's going to
> be tricky: The patches are fairly invasive, the setup and expectations are
> different in terms of upstream vs. home-grown build system, and the whole
> thing will require healthy upstream buy-in. This will all take time, so no
> promises of a speedy release, unfortunately.

I can imagine. Thanks for the info and the talk. I am not holding my breath.

> Since you seem to be ok with bytecode rewriting (we have reasons for not
> doing that), I would like to point you to FastTrack, a pure-Java
> implementation of the Happens-Before race detection algorithm.
> https://github.com/stephenfreund/RoadRunner
> (Disclosure) I worked with the tool and the authors in my grad student
> days.
> I see it's been updated recently too, so feel free to give it a spin.

Thanks! I did. It seems not to understand Thread Pools. JDK docs say
"Memory consistency effects: Actions in a thread prior to submitting a
Runnable object to an Executor happen-before its execution begins, perhaps
in another thread.", but if I am reading the errors from RoadRunner
properly, the tool does not see that. Other than that, it seems to work.
Jiří Daněk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170901/c166b2fd/attachment.html>

More information about the llvm-dev mailing list