{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:22:02Z","timestamp":1750306922236,"version":"3.41.0"},"reference-count":67,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2013,3,1]],"date-time":"2013-03-01T00:00:00Z","timestamp":1362096000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000006","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["N00014-09-l-0510, N00014-10-M-0251"],"award-info":[{"award-number":["N00014-09-l-0510, N00014-10-M-0251"]}],"id":[{"id":"10.13039\/100000006","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100006754","name":"U.S. Army Research Laboratory","doi-asserted-by":"publisher","award":["W911NF-09-l-0413"],"award-info":[{"award-number":["W911NF-09-l-0413"]}],"id":[{"id":"10.13039\/100006754","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100006602","name":"Air Force Research Laboratory","doi-asserted-by":"publisher","award":["FA9550-09-l-0279, FA8650-10-C-7088"],"award-info":[{"award-number":["FA9550-09-l-0279, FA8650-10-C-7088"]}],"id":[{"id":"10.13039\/100006602","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000143","name":"Division of Computing and Communication Foundations","doi-asserted-by":"publisher","award":["CCF-1018180, CCF-1054616, CCF-0810053, CCF-0904371"],"award-info":[{"award-number":["CCF-1018180, CCF-1054616, CCF-0810053, CCF-0904371"]}],"id":[{"id":"10.13039\/100000143","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Claire Booth Luce faculty fellowship"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2013,3]]},"abstract":"<jats:p>Multicore technology is making concurrent programs increasingly pervasive. Unfortunately, it is difficult to deliver reliable concurrent programs, because of the huge and nondeterministic interleaving space. In reality, without the resources to thoroughly check the interleaving space, critical concurrency bugs can slip into production versions and cause failures in the field. Approaches to making the best use of the limited resources and exposing severe concurrency bugs before software release would be desirable.<\/jats:p>\n          <jats:p>Unlike previous work that focuses on bugs caused by specific interleavings (e.g., races and atomicity violations), this article targets concurrency bugs that result in one type of severe effect: program crashes. Our study of the error-propagation process of real-world concurrency bugs reveals a common pattern (50% in our nondeadlock concurrency bug set) that is highly correlated with program crashes. We call this pattern concurrency-memory bugs: buggy interleavings directly cause memory bugs (NULL-pointer-dereferences, dangling-pointers, buffer-overflows, uninitialized-reads) on shared memory objects.<\/jats:p>\n          <jats:p>Guided by this study, we built ConMem to monitor program execution, analyze memory accesses and synchronizations, and predictively detect these common and severe concurrency-memory bugs. We also built a validator,ConMem-v, to automatically prune false positives by enforcing potential bug-triggering interleavings.<\/jats:p>\n          <jats:p>We evaluated ConMem using 7 open-source programs with 10 real-world concurrency bugs. ConMem detects more tested bugs (9 out of 10 bugs) than a lock-set-based race detector and an unserializable-interleaving detector, which detect 4 and 6 bugs, respectively, with a false-positive rate about one tenth of the compared tools. ConMem-v further prunes out all the false positives. ConMem has reasonable overhead suitable for development usage.<\/jats:p>","DOI":"10.1145\/2430545.2430546","type":"journal-article","created":{"date-parts":[[2013,4,1]],"date-time":"2013-04-01T19:39:32Z","timestamp":1364845172000},"page":"1-33","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":11,"title":["ConMem"],"prefix":"10.1145","volume":"22","author":[{"given":"Wei","family":"Zhang","sequence":"first","affiliation":[{"name":"University of Wisconsin -- Madison"}]},{"given":"Chong","family":"Sun","sequence":"additional","affiliation":[{"name":"University of Wisconsin -- Madison"}]},{"given":"Junghee","family":"Lim","sequence":"additional","affiliation":[{"name":"University of Wisconsin -- Madison"}]},{"given":"Shan","family":"Lu","sequence":"additional","affiliation":[{"name":"University of Wisconsin -- Madison"}]},{"given":"Thomas","family":"Reps","sequence":"additional","affiliation":[{"name":"University of Wisconsin -- Madison and GrammaTech, Inc."}]}],"member":"320","published-online":{"date-parts":[[2013,3]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Apache Bugzilla. How important is the bug? http:\/\/issues.apache.org\/bugwritinghelp.html.  Apache Bugzilla. How important is the bug? http:\/\/issues.apache.org\/bugwritinghelp.html."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-31985-6_19"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640096"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0039704"},{"key":"e_1_2_1_5_1","unstructured":"Bugzilla@Mozilla. A bug\u2019s life cycle. https:\/\/bugzilla.mozilla.org\/page.cgi?id=fields.html#severity.  Bugzilla@Mozilla. A bug\u2019s life cycle. https:\/\/bugzilla.mozilla.org\/page.cgi?id=fields.html#severity."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1595696.1595700"},{"volume-title":"Proceedings of OSDI.","author":"Cadar C.","key":"e_1_2_1_7_1","unstructured":"Cadar , C. , Dunbar , D. , and Engler , D . 2008. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs . In Proceedings of OSDI. Cadar, C., Dunbar, D., and Engler, D. 2008. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of OSDI."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1368088.1368119"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375620"},{"key":"e_1_2_1_10_1","unstructured":"Click. 2010. The Click Modular Router Projec. http:\/\/read.cs.ucla.edu\/click\/click.  Click. 2010. The Click Modular Router Projec. http:\/\/read.cs.ucla.edu\/click\/click."},{"key":"e_1_2_1_11_1","unstructured":"Coverity. Software quality and security analysis. http:\/\/www.coverity.com\/.  Coverity. Software quality and security analysis. http:\/\/www.coverity.com\/."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508255"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508252"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/127695.122767"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.411.0111"},{"volume-title":"Proceedings of IPDPS.","author":"Farchi E.","key":"e_1_2_1_16_1","unstructured":"Farchi , E. , Nir , Y. , and Ur , S . 2003. Concurrent bug patterns and how to test them . In Proceedings of IPDPS. Farchi, E., Nir, Y., and Ur, S. 2003. Concurrent bug patterns and how to test them. In Proceedings of IPDPS."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/964001.964023"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542490"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040315"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375618"},{"volume-title":"Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem","author":"Godefroid P.","key":"e_1_2_1_21_1","unstructured":"Godefroid , P. 1996. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem . Springer-Verlag . Godefroid, P. 1996. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer-Verlag."},{"volume-title":"Proceedings of USENIX.","author":"Guo P. J.","key":"e_1_2_1_22_1","unstructured":"Guo , P. J. and Engler , D . 2009. Linux kernel developer responses to static analysis bug reports . In Proceedings of USENIX. Guo, P. J. and Engler, D. 2009. Linux kernel developer responses to static analysis bug reports. In Proceedings of USENIX."},{"volume-title":"Proceedings of USENIX Winter Technical Conference.","author":"Hastings R.","key":"e_1_2_1_23_1","unstructured":"Hastings , R. and Joyce , B . 1992. Purify: Fast detection of memory leaks and access errors . In Proceedings of USENIX Winter Technical Conference. Hastings, R. and Joyce, B. 1992. Purify: Fast detection of memory leaks and access errors. In Proceedings of USENIX Winter Technical Conference."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869481"},{"key":"e_1_2_1_25_1","unstructured":"Jones R. W. M. and Kelly P. H. J. 1997. Backwards-compatible bounds checking for arrays and pointers in C programs. In Automated and Algorithmic Debugging.  Jones R. W. M. and Kelly P. H. J. 1997. Backwards-compatible bounds checking for arrays and pointers in C programs. In Automated and Algorithmic Debugging ."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2008.39"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/359545.359563"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1181309.1181314"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168864"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669181"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1815961.1815988"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2008.4"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993543"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065034"},{"key":"e_1_2_1_36_1","unstructured":"Mozilla Developers. Bug 123930 (deadlock). https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=123930. Let them eat races.  Mozilla Developers. Bug 123930 (deadlock). https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=123930. Let them eat races."},{"volume-title":"Proceedings of OSDI.","author":"Musuvathi M.","key":"e_1_2_1_37_1","unstructured":"Musuvathi , M. , Qadeer , S. , Ball , T. , Basler , G. , Nainar , P. A. , and Neamtiu , I . 2008. Finding and reproducing heisenbugs in concurrent programs . In Proceedings of OSDI. Musuvathi, M., Qadeer, S., Ball, T., Basler, G., Nainar, P. A., and Neamtiu, I. 2008. Finding and reproducing heisenbugs in concurrent programs. In Proceedings of OSDI."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168886"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250738"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250746"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/109625.109640"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/781498.781528"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508256"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1453101.1453121"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508249"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629593"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806799.1806838"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/996841.996845"},{"volume-title":"Proceedings of WDDD.","author":"Rossbach C. J.","key":"e_1_2_1_49_1","unstructured":"Rossbach , C. J. , Hofmann , O. S. , and Witchel , E . 2009. Is transactional programming actually easier? In Proceedings of WDDD. Rossbach, C. J., Hofmann, O. S., and Witchel, E. 2009. Is transactional programming actually easier? In Proceedings of WDDD."},{"volume-title":"Proceedings of NDSS.","author":"Ruwase O.","key":"e_1_2_1_50_1","unstructured":"Ruwase , O. and Lam , M . 2004. CRED: A practical dynamic buffer overflow detector . In Proceedings of NDSS. Ruwase, O. and Lam, M. 2004. CRED: A practical dynamic buffer overflow detector. In Proceedings of NDSS."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00590-9_28"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/265924.265927"},{"key":"e_1_2_1_53_1","unstructured":"SecurityFocus. Software bug contributed to blackout. http:\/\/www.securityfocus.com\/news\/8016.  SecurityFocus. Software bug contributed to blackout. http:\/\/www.securityfocus.com\/news\/8016."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375584"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693017_25"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869474"},{"volume-title":"Proceedings of FTCS.","author":"Sullivan M.","key":"e_1_2_1_57_1","unstructured":"Sullivan , M. and Chillarege , R . 1992. A comparison of software defects in database management systems and operating systems . In Proceedings of FTCS. Sullivan, M. and Chillarege, R. 1992. A comparison of software defects in database management systems and operating systems. In Proceedings of FTCS."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.5555\/1533013.1533046"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/1390630.1390649"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111067"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/223982.223990"},{"volume-title":"Proceedings of OSDI.","author":"Xiong W.","key":"e_1_2_1_62_1","unstructured":"Xiong , W. , Park , S. , Zhang , J. , Zhou , Y. , and Ma , Z . 2010. Ad hoc synchronization considered harmful . In Proceedings of OSDI. Xiong, W., Park, S., Zhang, J., Zhou, Y., and Ma, Z. 2010. Ad hoc synchronization considered harmful. In Proceedings of OSDI."},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065013"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/1639622.1639630"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555796"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095832"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736041"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2430545.2430546","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2430545.2430546","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:35:23Z","timestamp":1750235723000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2430545.2430546"}},"subtitle":["Detecting Crash-Triggering Concurrency Bugs through an Effect-Oriented Approach"],"short-title":[],"issued":{"date-parts":[[2013,3]]},"references-count":67,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2013,3]]}},"alternative-id":["10.1145\/2430545.2430546"],"URL":"https:\/\/doi.org\/10.1145\/2430545.2430546","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"type":"print","value":"1049-331X"},{"type":"electronic","value":"1557-7392"}],"subject":[],"published":{"date-parts":[[2013,3]]},"assertion":[{"value":"2011-09-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-01-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-03-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}