{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:41:34Z","timestamp":1780994494155,"version":"3.54.1"},"reference-count":58,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2020,12,31]],"date-time":"2020-12-31T00:00:00Z","timestamp":1609372800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"the CityU MF_EXT","award":["9678180"],"award-info":[{"award-number":["9678180"]}]},{"name":"NSFC of China","award":["61772056, 61690202"],"award-info":[{"award-number":["61772056, 61690202"]}]},{"name":"the GRF of HKSAR Research Grants Council","award":["11214116, 11200015"],"award-info":[{"award-number":["11214116, 11200015"]}]},{"name":"the HKSAR ITF","award":["ITS\/378\/18"],"award-info":[{"award-number":["ITS\/378\/18"]}]},{"name":"the CityU SRG","award":["7004882, 7005122, 7005216"],"award-info":[{"award-number":["7004882, 7005122, 7005216"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2021,1,31]]},"abstract":"<jats:p>\n            Atomicity is a correctness criterion to reason about isolated code regions in a multithreaded program when they are executed concurrently. However, dynamic instances of these code regions, called\n            <jats:italic>transactions<\/jats:italic>\n            , may fail to behave atomically, resulting in transactional atomicity violations. Existing dynamic online atomicity checkers incur either false positives or false negatives in detecting transactions experiencing transactional atomicity violations. This article proposes &lt;monospace&gt;RegionTrack&lt;\/monospace&gt;. &lt;monospace&gt;RegionTrack&lt;\/monospace&gt; tracks cross-thread dependences at the event, dynamic subregion, and transaction levels. It maintains both dynamic subregions within selected transactions and transactional happens-before relations through its novel timestamp propagation approach. We prove that &lt;monospace&gt;RegionTrack&lt;\/monospace&gt; is sound and complete in detecting both transactional atomicity violations and non-serializable traces. To the best of our knowledge, it is the first online technique that precisely captures the transitively closed set of happens-before relations over all conflicting events with respect to every running transaction for the above two kinds of issues. We have evaluated &lt;monospace&gt;RegionTrack&lt;\/monospace&gt; on 19 subjects of the DaCapo and the Java Grande Forum benchmarks. The empirical results confirm that &lt;monospace&gt;RegionTrack&lt;\/monospace&gt; precisely detected all those transactions which experienced transactional atomicity violations and identified all non-serializable traces. The overall results also show that &lt;monospace&gt;RegionTrack&lt;\/monospace&gt; incurred 1.10x and 1.08x lower memory and runtime overheads than &lt;monospace&gt;Velodrome&lt;\/monospace&gt; and 2.10x and 1.21x lower than &lt;monospace&gt;Aerodrome&lt;\/monospace&gt;, respectively. Moreover, it incurred 2.89x lower memory overhead than &lt;monospace&gt;DoubleChecker&lt;\/monospace&gt;. On average, &lt;monospace&gt;Velodrome&lt;\/monospace&gt; detected about 55% fewer violations than &lt;monospace&gt;RegionTrack&lt;\/monospace&gt;, which in turn reported about 3%\u201370% fewer violations than &lt;monospace&gt;DoubleChecker&lt;\/monospace&gt;.\n          <\/jats:p>","DOI":"10.1145\/3412377","type":"journal-article","created":{"date-parts":[[2020,12,31]],"date-time":"2020-12-31T18:48:06Z","timestamp":1609440486000},"page":"1-49","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["RegionTrack"],"prefix":"10.1145","volume":"30","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7745-7154","authenticated-orcid":false,"given":"Xiaoxue","family":"Ma","sequence":"first","affiliation":[{"name":"City University of Hong Kong"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Shangru","family":"Wu","sequence":"additional","affiliation":[{"name":"City University of Hong Kong"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Ernest","family":"Pobee","sequence":"additional","affiliation":[{"name":"City University of Hong Kong"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Xiupei","family":"Mei","sequence":"additional","affiliation":[{"name":"City University of Hong Kong"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Hao","family":"Zhang","sequence":"additional","affiliation":[{"name":"City University of Hong Kong"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Bo","family":"Jiang","sequence":"additional","affiliation":[{"name":"Beihang University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Wing-Kwong","family":"Chan","sequence":"additional","affiliation":[{"name":"City University of Hong Kong"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,12,31]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"RegionTrack. https:\/\/github.com\/LittleSnow321\/RegionTrack-v.  RegionTrack. https:\/\/github.com\/LittleSnow321\/RegionTrack-v."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.442.0399"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2009.06.035"},{"key":"e_1_2_1_4_1","unstructured":"Jikes RVM 3.1.3. http:\/\/www.jikesrvm.org\/.  Jikes RVM 3.1.3. http:\/\/www.jikesrvm.org\/."},{"key":"e_1_2_1_5_1","volume-title":"Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'14)","author":"Biswas S."},{"key":"e_1_2_1_6_1","unstructured":"The Implementations of DoubleChecker and Velodrome. http:\/\/sourceforge.net\/p\/jikesrvm\/research-archive\/45\/.  The Implementations of DoubleChecker and Velodrome. http:\/\/sourceforge.net\/p\/jikesrvm\/research-archive\/45\/."},{"key":"e_1_2_1_7_1","volume-title":"Proceedings of the 21st Annual ACM SIGPLAN Conference on Object Oriented Programming Systems Languages 8 Applications (OOPSLA'06)","author":"Blackburn S. M."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages 8 Applications (OOPSLA'13)","author":"Bond M. D."},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of the 30th International Conference on Software Engineering (ICSE'08)","author":"Chen F."},{"key":"e_1_2_1_10_1","volume-title":"Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering (FASE'09)","author":"Chen Q."},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the 26th International Symposium on Software Reliability Engineering (ISSRE'15)","author":"Eslamimehr M."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2017.06.001"},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the 20th International Conference on Computer Aided Verification (CAV'08)","author":"Farzan A."},{"key":"e_1_2_1_14_1","volume-title":"Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'04)","author":"Flanagan C."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2007.12.001"},{"key":"e_1_2_1_16_1","volume-title":"Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'08)","author":"Flanagan C."},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'09)","author":"Flanagan C."},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the 2011 International Symposium on Software Testing and Analysis (ISSTA'11)","author":"Huang J."},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the 37th International Conference on Software Engineering (ICSE'15)","author":"Huang J."},{"key":"e_1_2_1_20_1","volume-title":"Proceedings of the 2010 International Conference on Software Engineering (ICSE'10)","author":"Lai Z."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/359545.359563"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/361227.361234"},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'08)","author":"Lu S."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2011.35"},{"key":"e_1_2_1_25_1","unstructured":"F. Mattern. 1988. Virtual time and global states of distributed systems. In Parallel and Distributed Algorithms 215--226.  F. Mattern. 1988. Virtual time and global states of distributed systems. In Parallel and Distributed Algorithms 215--226."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3092703.3092733"},{"key":"e_1_2_1_27_1","volume-title":"Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE'08)","author":"Park C.-S."},{"key":"e_1_2_1_28_1","volume-title":"Proceedings of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'09)","author":"Park S."},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the 10th Joint Meeting on Foundations of Software Engineering (ESEC\/FSE'15)","author":"Samak M."},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP'97)","author":"Savage S."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-95246-8_2"},{"key":"e_1_2_1_32_1","volume-title":"Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'15)","author":"Sengupta A."},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS'18)","author":"Zhuo S."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2015.2477820"},{"key":"e_1_2_1_35_1","volume-title":"Proceedings of the 9th International Conference on Formal Methods and Models for Codesign (MEMOCODE'11)","author":"Sinha A."},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the 2010 ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE'10)","author":"Sorrentino F."},{"key":"e_1_2_1_37_1","volume-title":"Proceedings of the 23rd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'18)","author":"DeLozier C."},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the 2nd International Conference on Runtime Verification (RV'11)","author":"Sumner W. N."},{"key":"e_1_2_1_39_1","volume-title":"Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC\/FSE","author":"Pobee E.","year":"2019"},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of 34th IEEE\/ACM International Conference on Automated Software Engineering (ASE'19)","author":"Pobee E."},{"key":"e_1_2_1_41_1","volume-title":"Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE\u201910)","author":"Huang J."},{"key":"e_1_2_1_42_1","volume-title":"Proceedings of the 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'06)","author":"Wang L."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2006.1599419"},{"key":"e_1_2_1_44_1","volume-title":"Proceedings of the 30th IEEE\/ACM International Conference on Automated Software Engineering (ASE'15)","author":"Wilcox J. R."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2015.2412544"},{"key":"e_1_2_1_46_1","volume-title":"Proceedings of the 2015 IEEE International Conference on Software Quality, Reliability and Security (QRS'15)","author":"Wu S."},{"key":"e_1_2_1_47_1","volume-title":"Proceedings of the 41st International Conference on Software Engineering (ICSE'19)","author":"Chang X. N.","year":"2019"},{"key":"e_1_2_1_48_1","volume-title":"Proceedings of the 2001 ACM\/IEEE Conference on Supercomputing (SC\u201901)","author":"Smith L. A."},{"key":"e_1_2_1_49_1","volume-title":"SPEC Benchmark Workshop (17--35)","author":"Shiv K."},{"key":"e_1_2_1_50_1","volume-title":"Proceedings of the 27th ACM Symposium on Operating Systems Principles (SOSP'19)","author":"Li G."},{"key":"e_1_2_1_51_1","volume-title":"Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI\u201903)","author":"Praun C. V."},{"key":"e_1_2_1_52_1","volume-title":"Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS\u201920)","author":"Mathur U."},{"key":"e_1_2_1_54_1","unstructured":"2019. RAPID. https:\/\/github.com\/umangm\/rapid.  2019. RAPID. https:\/\/github.com\/umangm\/rapid."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491509.2491513"},{"key":"e_1_2_1_56_1","volume-title":"Proceedings of the 11th Australian Computer Science Conference (ACSC'88)","author":"Fidge J.","year":"1988"},{"key":"e_1_2_1_57_1","volume-title":"Proceedings of the 9th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP\u201903)","author":"Pozniansky E."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3168813"},{"key":"e_1_2_1_59_1","unstructured":"JikesRVM Project Status: https:\/\/www.jikesrvm.org\/ProjectStatus\/.  JikesRVM Project Status: https:\/\/www.jikesrvm.org\/ProjectStatus\/."}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3412377","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3412377","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:25:01Z","timestamp":1750195501000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3412377"}},"subtitle":["A Trace-Based Sound and Complete Checker to Debug Transactional Atomicity Violations and Non-Serializable Traces"],"short-title":[],"issued":{"date-parts":[[2020,12,31]]},"references-count":58,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2021,1,31]]}},"alternative-id":["10.1145\/3412377"],"URL":"https:\/\/doi.org\/10.1145\/3412377","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,12,31]]},"assertion":[{"value":"2019-12-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-07-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-12-31","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}