Some of our ﬁndings are as follows: (1) Around one third of the examined non-deadlock concurrency bugs are caused by violation to programmers’ order intentions, which may not be easily expressed via synchronization primitives like locks and transac- tional memories; (2) Around 34% of the examined non-deadlock concurrency bugs involve multiple variables, which are not well addressed by existing bug detection tools; (3) About 92% of the examined concurrency bugs can be reliably triggered by enforcing certain orders among no more than 4 memory accesses. This indi- cates that testing concurrent programs can target at exploring possi- ble orders among every small groups of memory accesses, instead of among all memory accesses; (4) About 73% of the examined non-deadlock concurrency bugs were not ﬁxed by simply adding or changing locks, and many of the ﬁxes were not correct at the ﬁrst try, indicating the difﬁculty of reasoning concurrent execution by programmers.
"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.
Wednesday, March 25, 2009
Learning from Mistakes — A Comprehensive Study on Real World Concurrency Bug Characteristics
- ► 2011 (19)
- ▼ 03/22 - 03/29 (7)
- ► 2008 (402)
- ► 2007 (388)
- ► 2006 (261)
- ► 2005 (335)
- ► 2004 (534)
- ► 2003 (286)
- Patrick Logan
- Portland, Oregon, United States
- I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.