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

Testing a database for race conditions with QuickCheck: None

John Hughes (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)) ; H. Bolinder
Proceedings of the 2011 ACM SIGPLAN Erlang Workshop, Tokyo, 23 September 2011 p. 72-77. (2011)
[Konferensbidrag, refereegranskat]

In 2009, Claessen et al. presented a way of testing for race conditions in Erlang programs, using QuickCheck to generate parallel tests, a randomizing scheduler to provoke races, and a sequential consistency condition to detect failures of atomicity [1]. That work used a small industrial prototype as the main example, showing how two race conditions could be detected and diagnosed. In this paper, we apply the same methods to dets, a vital component of the mnesia database system, and more than an order of magnitude larger. dets is known to fail occasionally in production, making it a promising candidate for a race condition hunt. We found five race conditions with relatively little effort, two of which may account for the observed failures in production. We explain how the testing was done, present most of the QuickCheck specification used, and describe the problems we discovered and their causes.

Nyckelord: erlang, quickcheck



Denna post skapades 2011-12-20.
CPL Pubid: 150540

 

Läs direkt!


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


Institutioner (Chalmers)

Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)

Ämnesområden

Information Technology

Chalmers infrastruktur