Concuerror: Into Real Code

Stavros Aronis
Hunter of Discrepancies in Erlang Code

Debugging race conditions in concurrent programs is sometimes a sad story. There is lament about how difficult it is to reproduce the bug, a lot of guessing about the causes and maybe even some proposed fixes that "may or may not completely solve the problem". Concuerror is a tool whose vision is to make the process of isolating such problems easy: simply specify the entry point of your test and let the tool automatically instrument all the code and explore all interleavings of the processes, focusing smartly on pairs of "racing" events and even popping hints about what you can do to optimize the search. If a process crashes, Concuerror will then give you a detailed log of the events that lead up to the crash.
You may have already seen one of Kostis' tutorials or demos on how to use Concuerror with small toy programs; in this talk you will see how Concuerror is crawling through a real program and learn all the knobs, bells and whistles that you can use to apply its analysis efficiently on your own code.

Talk objectives: This talk's goal is to convince you that isolating concurrency bugs is trivial, with Concuerror

Target audience: Erlang testers

Slides
Video

Stavros finished his master's degree at NTUA, Greece with a thesis on the implementation of an extension for Dialyzer’s type system. He is currently studying towards a PhD degree in Uppsala University, doing research on Erlang tools. He has developed the parallel version of Dialyzer and is the main developer and maintainer of Concuerror.

Twitter: @Vahnatai

Github: aronisstav


Back to conference page