{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,21]],"date-time":"2026-04-21T14:01:30Z","timestamp":1776780090719,"version":"3.51.2"},"publisher-location":"New York, NY, USA","reference-count":65,"publisher":"ACM","license":[{"start":{"date-parts":[[2019,4,4]],"date-time":"2019-04-04T00:00:00Z","timestamp":1554336000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2019,4,4]]},"DOI":"10.1145\/3297858.3304069","type":"proceedings-article","created":{"date-parts":[[2019,4,4]],"date-time":"2019-04-04T18:38:43Z","timestamp":1554403123000},"page":"865-878","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":64,"title":["Understanding Real-World Concurrency Bugs in Go"],"prefix":"10.1145","author":[{"given":"Tengfei","family":"Tu","sequence":"first","affiliation":[{"name":"Pennsylvania State University, State College, PA, USA"}]},{"given":"Xiaoyu","family":"Liu","sequence":"additional","affiliation":[{"name":"Purdue University, West Lafayette, IN, USA"}]},{"given":"Linhai","family":"Song","sequence":"additional","affiliation":[{"name":"Pennsylvania State University, State College, PA, USA"}]},{"given":"Yiying","family":"Zhang","sequence":"additional","affiliation":[{"name":"Purdue University, West Lafayette, IN, USA"}]}],"member":"320","published-online":{"date-parts":[[2019,4,4]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"Principles of designing Go APIs with channels. URL: https:\/\/inconshreveable.com\/07-08--2014\/principles-of-designing-go-apis-with-channels\/."},{"key":"e_1_3_2_1_2_1","unstructured":"The Go Blog: Share Memory By Communicating. URL: https:\/\/blog.golang.org\/share-memory-by-communicating."},{"key":"e_1_3_2_1_3_1","unstructured":"Sameer Ajmani. Advanced Go Concurrency Patterns. URL: https:\/\/talks.golang.org\/2013\/advconc.slide."},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2451116.2451128"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2541940.2541973"},{"key":"e_1_3_2_1_6_1","unstructured":"boltdb. An embedded key\/value database for Go. URL: https:\/\/github.com\/boltdb\/bolt."},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2014.2301725"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755945"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502042"},{"key":"e_1_3_2_1_10_1","unstructured":"Cockroach. CockroachDB is a cloud-native SQL database for building global scalable cloud services that survive disasters. URL: https:\/\/github.com\/cockroachdb\/cockroach."},{"key":"e_1_3_2_1_11_1","unstructured":"Russ Cox. Bell Labs and CSP Threads. URL: http:\/\/swtch.com\/ rsc\/thread\/."},{"key":"e_1_3_2_1_12_1","unstructured":"Graphql Developers. A thread-safe way of appending errors into Result.Errors. URL: https:\/\/github.com\/graphql-go\/graphql\/pull\/434."},{"key":"e_1_3_2_1_13_1","unstructured":"Docker. Docker - Build Ship and Run Any App Anywhere. URL: https:\/\/www.docker.com\/."},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924954"},{"key":"e_1_3_2_1_15_1","unstructured":"ETCD. A distributed reliable key-value store for the most critical data of a distributed system. URL: https:\/\/github.com\/coreos\/etcd."},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/964001.964023"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950394"},{"key":"e_1_3_2_1_18_1","unstructured":"GitHub. The fifteen most popular languages on GitHub. URL: https:\/\/octoverse.github.com\/."},{"key":"e_1_3_2_1_19_1","unstructured":"Google. A high performance open source general RPC framework that puts mobile and HTTP\/2 first. URL: https:\/\/github.com\/grpc\/grpc-go."},{"key":"e_1_3_2_1_20_1","unstructured":"Google. Effective Go. URL: https:\/\/golang.org\/doc\/effective_go.html."},{"key":"e_1_3_2_1_21_1","unstructured":"Google. Effective Go: Concurrency. URL: https:\/\/golang.org\/doc\/effective_go.html#concurrency."},{"key":"e_1_3_2_1_22_1","unstructured":"Google. RPC Benchmarking. URL: https:\/\/grpc.io\/docs\/guides\/benchmarking.html."},{"key":"e_1_3_2_1_23_1","unstructured":"Google. The Go Programming Language -- Release History. URL: https:\/\/golang.org\/doc\/devel\/release.html."},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2786815"},{"key":"e_1_3_2_1_25_1","unstructured":"Haryadi S. Gunawi Mingzhe Hao Tanakorn Leesatapornwongsa Tiratat Patana-anake Thanh Do Jeffry Adityatama Kurnia J. Eliazar Agung Laksono Jeffrey F. Lukman Vincentius Martin and Anang D. Satria. What bugs live in the cloud? a study of 3000"},{"key":"e_1_3_2_1_26_1","volume-title":"Proceedings of the ACM Symposium on Cloud Computing (SOCC' 14)","year":"2014","unstructured":"issues in cloud systems. In Proceedings of the ACM Symposium on Cloud Computing (SOCC' 14), Seattle, Washington, USA, November 2014."},{"key":"e_1_3_2_1_27_1","unstructured":"Hectane. Lightweight SMTP client written in Go. URL: https:\/\/github.com\/hectane."},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359585"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.108"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254075"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993544"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869481"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.5555\/2387880.2387902"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542489"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855741.1855762"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2970276.2970309"},{"key":"e_1_3_2_1_37_1","unstructured":"Kubernetes. Production-Grade Container Orchestration. URL: https:\/\/kubernetes.io\/."},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/359863.359878"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009847"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180157"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2872362.2872374"},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/1181309.1181314"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.87"},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950309"},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.5555\/2591272.2591276"},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168864"},{"key":"e_1_3_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669181"},{"key":"e_1_3_2_1_49_1","volume-title":"Workshop on Exploiting Concurrency Efficiently and Correctly","author":"Namjoshi Kedar S.","year":"2008","unstructured":"Kedar S. Namjoshi. Are concurrent programs that are easier to write also easier to check? In Workshop on Exploiting Concurrency Efficiently and Correctly, 2008."},{"key":"e_1_3_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892232"},{"key":"e_1_3_2_1_51_1","unstructured":"Rob Pike. Go Concurrency Patterns. URL: https:\/\/talks.golang.org\/2012\/concurrency.slide."},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/945445.945468"},{"key":"e_1_3_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/265924.265927"},{"key":"e_1_3_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1791194.1791203"},{"key":"e_1_3_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1109\/APSEC.2008.68"},{"key":"e_1_3_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-23404-5_13"},{"key":"e_1_3_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-47958-3_7"},{"key":"e_1_3_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.5555\/3155562.3155628"},{"key":"e_1_3_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855741.1855761"},{"key":"e_1_3_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480913"},{"key":"e_1_3_2_1_61_1","unstructured":"Wikipedia. Go (programming language). URL: https:\/\/en.wikipedia.org\/wiki\/Go_(programming_language)."},{"key":"e_1_3_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924955"},{"key":"e_1_3_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555796"},{"key":"e_1_3_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095832"},{"key":"e_1_3_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736041"}],"event":{"name":"ASPLOS '19: Architectural Support for Programming Languages and Operating Systems","location":"Providence RI USA","acronym":"ASPLOS '19","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","SIGOPS ACM Special Interest Group on Operating Systems","SIGARCH ACM Special Interest Group on Computer Architecture","SIGBED ACM Special Interest Group on Embedded Systems"]},"container-title":["Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3297858.3304069","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3297858.3304069","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:53:15Z","timestamp":1750204395000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3297858.3304069"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,4,4]]},"references-count":65,"alternative-id":["10.1145\/3297858.3304069","10.1145\/3297858"],"URL":"https:\/\/doi.org\/10.1145\/3297858.3304069","relation":{},"subject":[],"published":{"date-parts":[[2019,4,4]]},"assertion":[{"value":"2019-04-04","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}