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
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. GitHub:
aronisstav
Twitter:
@Vahnatai