CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

Accelerating race condition detection through procrastination

Thomas Arts (Institutionen för data- och informationsteknik, Software Engineering (Chalmers)) ; John Hughes (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)) ; Ulf Norell (Institutionen för data- och informationsteknik, Datavetenskap (Chalmers)) ; Nicholas Smallbone (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)) ; Hans Svensson (Institutionen för data- och informationsteknik, Software Engineering (Chalmers))
Proceedings of the 2011 ACM SIGPLAN Erlang Workshop, Tokyo, 23 September 2011 p. 14-22. (2011)
[Konferensbidrag, refereegranskat]

Race conditions are notoriously frustrating to find, and good tools can help. The main difficulty is reliably provoking the race condition. In previous work we presented a randomising scheduler for Erlang that helps with this task. In a language without pervasive shared mutable state, such as Erlang, performing scheduling decisions at random uncovers race conditions surprisingly well. However, it is not always enough. We describe a technique, procrastination, that aims to provoke race conditions more often than by random scheduling alone. It works by running the program and looking for pairs of events that might interfere, such as two message sends to the same process. Having found such a pair of events, we re-run the program but try to provoke a race condition by reversing the order of the two events. We apply our technique to a piece of industrial Erlang code. Compared to random scheduling alone, procrastination allows us to find minimal failing test cases more reliably and more quickly.

Nyckelord: erlang, quickcheck, race conditions

Denna post skapades 2011-12-20. Senast ändrad 2017-09-14.
CPL Pubid: 150531


Läs direkt!

Lokal fulltext (fritt tillgänglig)

Länk till annan sajt (kan kräva inloggning)