{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,20]],"date-time":"2026-06-20T09:24:35Z","timestamp":1781947475711,"version":"3.54.5"},"reference-count":82,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2015,5,22]],"date-time":"2015-05-22T00:00:00Z","timestamp":1432252800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100004318","name":"Microsoft","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100004318","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100000781","name":"European Research Council","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100000781","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100016682","name":"VMware","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100016682","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/100006785","name":"Google","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100006785","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2015,6,18]]},"abstract":"<jats:p>Data races are one of the main causes of concurrency problems in multithreaded programs. Whether all data races are bad, or some are harmful and others are harmless, is still the subject of vigorous scientific debate [Narayanasamy et al. 2007; Boehm 2012]. What is clear, however, is that today's code has many data races [Kasikci et al. 2012; Jin et al. 2012; Erickson et al. 2010], and fixing data races without introducing bugs is time consuming [Godefroid and Nagappan 2008]. Therefore, it is important to efficiently identify data races in code and understand their consequences to prioritize their resolution.<\/jats:p>\n          <jats:p>\n            We present Portend\n            <jats:sup>+<\/jats:sup>\n            , a tool that not only detects races but also automatically classifies them based on their potential consequences: Could they lead to crashes or hangs? Could their effects be visible outside the program? Do they appear to be harmless? How do their effects change under weak memory models? Our proposed technique achieves high accuracy by efficiently analyzing multiple paths and multiple thread schedules in combination, and by performing symbolic comparison between program outputs.\n          <\/jats:p>\n          <jats:p>\n            We ran Portend\n            <jats:sup>+<\/jats:sup>\n            on seven real-world applications: it detected 93 true data races and correctly classified 92 of them, with no human effort. Six of them were harmful races. Portend\n            <jats:sup>+<\/jats:sup>\n            's classification accuracy is up to 89% higher than that of existing tools, and it produces easy-to-understand evidence of the consequences of \u201charmful\u201d races, thus both proving their harmfulness and making debugging easier. We envision Portend\n            <jats:sup>+<\/jats:sup>\n            being used for testing and debugging, as well as for automatically triaging bug reports.\n          <\/jats:p>","DOI":"10.1145\/2734118","type":"journal-article","created":{"date-parts":[[2015,5,26]],"date-time":"2015-05-26T14:36:05Z","timestamp":1432650965000},"page":"1-44","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["Automated Classification of Data Races Under Both Strong and Weak Memory Models"],"prefix":"10.1145","volume":"37","author":[{"given":"Baris","family":"Kasikci","sequence":"first","affiliation":[{"name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne (EPFL), Switzerland, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Cristian","family":"Zamfir","sequence":"additional","affiliation":[{"name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne (EPFL), Switzerland, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"George","family":"Candea","sequence":"additional","affiliation":[{"name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne (EPFL), Switzerland, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2015,5,22]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/325096.325100"},{"key":"e_1_2_1_2_1","volume-title":"GE Acknowledges Blackout Bug. Retrieved","author":"Press Associated","year":"2015","unstructured":"Associated Press. 2004. GE Acknowledges Blackout Bug. Retrieved April 2, 2015, from http:\/\/www.securityfocus.com\/news\/8032."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1706299.1706303"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924957"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1368088.1368118"},{"key":"e_1_2_1_6_1","volume-title":"Joseph Devietti and Luis Ceze","author":"Bergan Tom","year":"2011","unstructured":"Tom Bergan, Joseph Devietti and Luis Ceze. 2011. The deterministic execution hammer: How well does it actually pound nails&quest; In Proceedings of the Workshop on Determinism and Correctness in Parallel Programming."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736029"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640097"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1229428.1229470"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/2001252.2001255"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2414729.2414732"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2076450.2076465"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806626"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1966445.1966463"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/11817963_45"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855741.1855756"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the Symposium on Operating Systems Design and Implementation.","author":"Candea George","year":"2010","unstructured":"George Candea, Stefan Bucur, Vitaly Chipounov, Vova Kuznetsov, and Cristian Zamfir. 2010. Automated software reliability services: Using reliability tools should be as easy as Webmail. In Proceedings of the Symposium on Operating Systems Design and Implementation."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250662.1250697"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSNW.2011.5958815"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924958"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508255"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/17407.17406"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/945445.945468"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924954"},{"key":"e_1_2_1_25_1","volume-title":"Memcached Home Page. Retrieved","author":"Fitzpatrick Brad","year":"2015","unstructured":"Brad Fitzpatrick. 2013. Memcached Home Page. Retrieved April 2, 2015, from http:\/\/memcached.org."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542490"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806625"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1966445.1966465"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.5555\/1770351.1770421"},{"key":"e_1_2_1_30_1","unstructured":"Jeff Gilchrist. 2013. Parallel BZIP2 (PBZIP2). Retrieved April 2 2015 from http:\/\/compression.ca\/pbzip2."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629586"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065036"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the Network and Distributed System Security Symposium.","author":"Godefroid Patrice","year":"2008","unstructured":"Patrice Godefroid, Michael Y. Levin, and David Molnar. 2008. Automated whitebox fuzz testing. In Proceedings of the Network and Distributed System Security Symposium."},{"key":"e_1_2_1_34_1","volume-title":"Proceedings of the International Conference on Computer Aided Verification.","author":"Godefroid Patrice","year":"2008","unstructured":"Patrice Godefroid and Nachiappan Nagappan. 2008. Concurrency at Microsoft\u2014an exploratory survey. In Proceedings of the International Conference on Computer Aided Verification."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2160718.2160741"},{"key":"e_1_2_1_36_1","volume-title":"Helgrind Home Page. Retrieved","year":"2015","unstructured":"Helgrind. 2012. Helgrind Home Page. Retrieved April 2, 2015, from http:\/\/valgrind.org\/docs\/manual\/hg-manual.html."},{"key":"e_1_2_1_37_1","unstructured":"Intel Corp. 2012. Parallel Inspector. Retrieved April 2 2015 from https:\/\/software.intel.com\/en-us\/intel-inspector-xe."},{"key":"e_1_2_1_38_1","volume-title":"Information Technology\u2014Programming languages\u2014C&plus;&plus;","author":"IEC","unstructured":"ISO14882. 2011. ISO\/IEC 14882:2011: Information Technology\u2014Programming languages\u2014C&plus;&plus;. International Organization for Standardization, London, UK."},{"key":"e_1_2_1_39_1","volume-title":"Information Technology\u2014Programming Languages\u2014C","author":"IEC","unstructured":"ISO9899. 2011. ISO\/IEC 9899:2011: Information Technology\u2014Programming Languages\u2014C. International Organization for Standardization, London, UK."},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of the International Parallel and Distributed Processing Symposium.","author":"Jannesari Ali","unstructured":"Ali Jannesari and Walter F. Tichy. 2010. Identifying ad-hoc synchronization for enhanced race detection. In Proceedings of the International Parallel and Distributed Processing Symposium."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.5555\/2387880.2387902"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1007\/11513988_49"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2150976.2150997"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/359545.359563"},{"key":"e_1_2_1_45_1","volume-title":"C&plus;&plus","author":"Lattner Chris","year":"2015","unstructured":"Chris Lattner. 2012. \u201clibc&plus;&plus;\u201d C&plus;&plus; Standard Library. Retrieved April 2, 2015, from http:\/\/libcxx.llvm.org\/."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.5555\/977395.977673"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.5555\/538583"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.1993.274940"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043587"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168864"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040336"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542491"},{"key":"e_1_2_1_53_1","volume-title":"Ctrace Home Page. Retrieved","author":"McPherson Cal","year":"2015","unstructured":"Cal McPherson. 2012. Ctrace Home Page. Retrieved April 2, 2015, from http:\/\/ctrace.sourceforge.net."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/125826.125861"},{"key":"e_1_2_1_55_1","volume-title":"Issue 127: INCR\/DECR Operations Are Not Thread Safe. Retrieved","year":"2015","unstructured":"Memcached. 2009. Issue 127: INCR\/DECR Operations Are Not Thread Safe. Retrieved April 2, 2015, from http:\/\/code.google.com\/p\/memcached\/issues\/detail&quest;id&lowbar;127."},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/106972.106996"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736040"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855741.1855760"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250738"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669180"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/781498.781528"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/859618.859632"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/265924.265927"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/989393.989426"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375584"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/1081706.1081750"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/1791194.1791203"},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","unstructured":"Richard L. Sites (Ed.). 1992. Alpha Architecture Reference Manual. Digital Press.","DOI":"10.5555\/129616"},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103621.2103702"},{"key":"e_1_2_1_70_1","volume-title":"SQLite Home Page. Retrieved","year":"2015","unstructured":"SQLite. 2013. SQLite Home Page. Retrieved April 2, 2015, from http:\/\/www.sqlite.org\/."},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.5555\/647478.727935"},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/1390630.1390649"},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043590"},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/1287624.1287654"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.5555\/174556"},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1145\/223982.223990"},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924953"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924955"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.5555\/1770532.1770541"},{"key":"e_1_2_1_80_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095832"},{"key":"e_1_2_1_81_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755946"},{"key":"e_1_2_1_82_1","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155645"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2734118","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2734118","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T06:17:02Z","timestamp":1750227422000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2734118"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,5,22]]},"references-count":82,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2015,6,18]]}},"alternative-id":["10.1145\/2734118"],"URL":"https:\/\/doi.org\/10.1145\/2734118","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2015,5,22]]},"assertion":[{"value":"2013-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-02-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-05-22","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}