{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,28]],"date-time":"2025-03-28T04:24:00Z","timestamp":1743135840588,"version":"3.40.3"},"publisher-location":"Cham","reference-count":44,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031747755"},{"type":"electronic","value":"9783031747762"}],"license":[{"start":{"date-parts":[[2025,1,1]],"date-time":"2025-01-01T00:00:00Z","timestamp":1735689600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,1,1]],"date-time":"2025-01-01T00:00:00Z","timestamp":1735689600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2025]]},"DOI":"10.1007\/978-3-031-74776-2_9","type":"book-chapter","created":{"date-parts":[[2025,1,20]],"date-time":"2025-01-20T05:35:34Z","timestamp":1737351334000},"page":"216-241","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["GoGuard: Efficient Static Blocking Bug Detection for\u00a0Go"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2137-2375","authenticated-orcid":false,"given":"Bozhen","family":"Liu","sequence":"first","affiliation":[]},{"given":"Dhruti","family":"Joshi","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,1,21]]},"reference":[{"key":"9_CR1","unstructured":"Cockroachdb. https:\/\/github.com\/cockroachdb\/cockroach"},{"key":"9_CR2","unstructured":"Cockroachdb issue: sqlstats: Persistedsqlstats.stop() blocking server drain. https:\/\/github.com\/cockroachdb\/cockroach\/issues\/102574"},{"key":"9_CR3","unstructured":"Cockroachdb pull request: sql,persistedsqlstats: prevent a deadlock during shutdown. https:\/\/github.com\/cockroachdb\/cockroach\/pull\/102590"},{"key":"9_CR4","unstructured":"etcd. https:\/\/github.com\/etcd-io\/etcd"},{"key":"9_CR5","unstructured":"fix deadlock when more than 1 plugin is installed by vieux:Pull Request#25384:moby. https:\/\/github.com\/moby\/moby\/pull\/25384\/commits\/42360d164b9f25fb4b150ef066fcf57fa39559a7"},{"key":"9_CR6","unstructured":"Go tools. https:\/\/pkg.go.dev\/golang.org\/x\/tools"},{"key":"9_CR7","unstructured":"gRPC. https:\/\/github.com\/grpc\/grpc-go"},{"key":"9_CR8","unstructured":"grpc-go\/server.go - github.com. https:\/\/github.com\/grpc\/grpc-go\/blob\/b128e7465a03dbf5359f95abe14fc2caa670c36e\/server.go#L798"},{"key":"9_CR9","unstructured":"Kubernetes. https:\/\/github.com\/kubernetes\/kubernetes"},{"key":"9_CR10","doi-asserted-by":"crossref","unstructured":"Albert, E., Genaim, S., Gordillo, P.: May-happen-in-parallel analysis for asynchronous programs with inter-procedural synchronization. In: Sensors Applications Symposium (2015). https:\/\/api.semanticscholar.org\/CorpusID:14081258","DOI":"10.1007\/978-3-662-48288-9_5"},{"key":"9_CR11","doi-asserted-by":"publisher","unstructured":"Angerer, C.M., Gross, T.R.: Now happens-before later: Static schedule analysis of fine-grained parallelism with explicit happens-before relationships. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, OOPSLA 2010, pp. 3\u201310. Association for Computing Machinery, New York, NY, USA (2010). https:\/\/doi.org\/10.1145\/1869542.1869544","DOI":"10.1145\/1869542.1869544"},{"issue":"3","key":"9_CR12","doi-asserted-by":"publisher","first-page":"456","DOI":"10.1109\/5.747866","volume":"87","author":"G Byrd","year":"1999","unstructured":"Byrd, G., Flynn, M.: Producer-consumer communication in distributed shared memory multiprocessors. Proc. IEEE 87(3), 456\u2013466 (1999). https:\/\/doi.org\/10.1109\/5.747866","journal-title":"Proc. IEEE"},{"key":"9_CR13","doi-asserted-by":"publisher","unstructured":"Chabbi, M., Ramanathan, M.K.: A study of real-world data races in golang. In: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2022, pp. 474\u2013489. Association for Computing Machinery, New York, NY, USA (2022). https:\/\/doi.org\/10.1145\/3519939.3523720","DOI":"10.1145\/3519939.3523720"},{"key":"9_CR14","doi-asserted-by":"publisher","unstructured":"Dilley, N., Lange, J.: Automated verification of go programs via bounded model checking. In: Proceedings of the 36th IEEE\/ACM International Conference on Automated Software Engineering, ASE 2021, pp. 1016\u20131027. IEEE Press (2022). https:\/\/doi.org\/10.1109\/ASE51524.2021.9678571","DOI":"10.1109\/ASE51524.2021.9678571"},{"issue":"2","key":"9_CR15","doi-asserted-by":"publisher","first-page":"29","DOI":"10.1109\/ASE51524.2021.9678571","volume":"30","author":"N Dilley","year":"2023","unstructured":"Dilley, N., Lange, J.: Automated verification of concurrent go programs via bounded model checking. Autom. Softw. Eng. 30(2), 29 (2023). https:\/\/doi.org\/10.1109\/ASE51524.2021.9678571","journal-title":"Autom. Softw. Eng."},{"key":"9_CR16","doi-asserted-by":"publisher","unstructured":"Engler, D., Ashcraft, K.: Racerx: effective, static detection of race conditions and deadlocks. In: Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, SOSP 2003, pp. 237\u2013252. Association for Computing Machinery, New York, NY, USA (2003). https:\/\/doi.org\/10.1145\/945445.945468","DOI":"10.1145\/945445.945468"},{"key":"9_CR17","doi-asserted-by":"publisher","unstructured":"Gabet, J., Yoshida, N.: Static race detection and mutex safety and liveness for go programs (extended version). CoRR abs\/2004.12859 (2020). https:\/\/doi.org\/10.48550\/arXiv.2004.12859","DOI":"10.48550\/arXiv.2004.12859"},{"key":"9_CR18","doi-asserted-by":"publisher","unstructured":"Inverso, O., Nguyen, T.L., Fischer, B., La\u00a0Torre, S., Parlato, G.: Lazy-cseq: a context-bounded model checking tool for multi-threaded C-programs. In: Proceedings of the 30th IEEE\/ACM International Conference on Automated Software Engineering, ASE 2015, pp. 807\u2013812. IEEE Press (2015). https:\/\/doi.org\/10.1109\/ASE.2015.108","DOI":"10.1109\/ASE.2015.108"},{"key":"9_CR19","doi-asserted-by":"publisher","unstructured":"Jeffay, K.: The real-time producer\/consumer paradigm: a paradigm for the construction of efficient, predictable real-time systems. In: Proceedings of the 1993 ACM\/SIGAPP Symposium on Applied Computing: States of the Art and Practice, SAC 1993, pp. 796\u2013804. Association for Computing Machinery, New York, NY, USA (1993). https:\/\/doi.org\/10.1145\/162754.168703","DOI":"10.1145\/162754.168703"},{"key":"9_CR20","doi-asserted-by":"publisher","unstructured":"Kahlon, V., Sinha, N., Kruus, E., Zhang, Y.: Static data race detection for concurrent programs with asynchronous calls. In: Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, ESEC\/FSE 2009, pp. 13\u201322. Association for Computing Machinery, New York, NY, USA (2009). https:\/\/doi.org\/10.1145\/1595696.1595701","DOI":"10.1145\/1595696.1595701"},{"issue":"7","key":"9_CR21","doi-asserted-by":"publisher","first-page":"558","DOI":"10.1145\/359545.359563","volume":"21","author":"L Lamport","year":"1978","unstructured":"Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558\u2013565 (1978). https:\/\/doi.org\/10.1145\/359545.359563","journal-title":"Commun. ACM"},{"key":"9_CR22","doi-asserted-by":"publisher","unstructured":"Lange, J., Ng, N., Toninho, B., Yoshida, N.: Fencing off go: liveness and safety for channel-based programming. In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, pp. 748\u2013761. Association for Computing Machinery, New York, NY, USA (2017). https:\/\/doi.org\/10.1145\/3009837.3009847","DOI":"10.1145\/3009837.3009847"},{"key":"9_CR23","doi-asserted-by":"publisher","unstructured":"Lange, J., Ng, N., Toninho, B., Yoshida, N.: A static verification framework for message passing in go using behavioural types. In: Proceedings of the 40th International Conference on Software Engineering, ICSE 2018, pp. 1137\u20131148. Association for Computing Machinery, New York, NY, USA (2018). https:\/\/doi.org\/10.1145\/3180155.3180157","DOI":"10.1145\/3180155.3180157"},{"key":"9_CR24","doi-asserted-by":"publisher","unstructured":"Liu, B., Huang, J.: D4: fast concurrency debugging with parallel differential analysis. In: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, pp. 359\u2013373. ACM, New York, NY, USA (2018). https:\/\/doi.org\/10.1145\/3192366.3192390","DOI":"10.1145\/3192366.3192390"},{"key":"9_CR25","doi-asserted-by":"publisher","unstructured":"Liu, B., Liu, P., Li, Y., Tsai, C.C., Da\u00a0Silva, D., Huang, J.: When threads meet events: efficient and precise static race detection with origins. In: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2021, pp. 725\u2013739. Association for Computing Machinery, New York, NY, USA (2021). https:\/\/doi.org\/10.1145\/3453483.3454073","DOI":"10.1145\/3453483.3454073"},{"key":"9_CR26","doi-asserted-by":"publisher","unstructured":"Liu, Z., Xia, S., Liang, Y., Song, L., Hu, H.: Who goes first? Detecting go concurrency bugs via message reordering. In: Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2022, pp. 888\u2013902. Association for Computing Machinery, New York, NY, USA (2022). https:\/\/doi.org\/10.1145\/3503222.3507753","DOI":"10.1145\/3503222.3507753"},{"key":"9_CR27","doi-asserted-by":"publisher","unstructured":"Liu, Z., Zhu, S., Qin, B., Chen, H., Song, L.: Automatically detecting and fixing concurrency bugs in go software systems. In: Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2021, pp. 616\u2013629. Association for Computing Machinery, New York, NY, USA (2021). https:\/\/doi.org\/10.1145\/3445814.3446756","DOI":"10.1145\/3445814.3446756"},{"key":"9_CR28","doi-asserted-by":"publisher","unstructured":"Naik, M., Aiken, A., Whaley, J.: Effective static race detection for Java. In: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2006, pp. 308\u2013319. Association for Computing Machinery, New York, NY, USA (2006). https:\/\/doi.org\/10.1145\/1133981.1134018","DOI":"10.1145\/1133981.1134018"},{"key":"9_CR29","doi-asserted-by":"publisher","unstructured":"Ng, N., Yoshida, N.: Static deadlock detection for concurrent go by global session graph synthesis. In: Proceedings of the 25th International Conference on Compiler Construction, CC 2016, pp. 174\u2013184. Association for Computing Machinery, New York, NY, USA (2016). https:\/\/doi.org\/10.1145\/2892208.2892232","DOI":"10.1145\/2892208.2892232"},{"key":"9_CR30","doi-asserted-by":"publisher","unstructured":"Par\u00edzek, P., Jan\u010d\u00edk, P.: Approximating happens-before order: interplay between static analysis and state space traversal. In: Proceedings of the 2014 International SPIN Symposium on Model Checking of Software, SPIN 2014, pp. 1\u201310. Association for Computing Machinery, New York, NY, USA (2014). https:\/\/doi.org\/10.1145\/2632362.2632365","DOI":"10.1145\/2632362.2632365"},{"key":"9_CR31","doi-asserted-by":"publisher","unstructured":"Pratikakis, P., Foster, J.S., Hicks, M.: Locksmith: context-sensitive correlation analysis for race detection. In: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2006, pp. 320\u2013331. Association for Computing Machinery, New York, NY, USA (2006). https:\/\/doi.org\/10.1145\/1133981.1134019","DOI":"10.1145\/1133981.1134019"},{"key":"9_CR32","doi-asserted-by":"publisher","unstructured":"Scalas, A., Yoshida, N., Benussi, E.: Verifying message-passing programs with dependent behavioural types. In: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, pp. 502\u2013516. Association for Computing Machinery, New York, NY, USA (2019). https:\/\/doi.org\/10.1145\/3314221.3322484","DOI":"10.1145\/3314221.3322484"},{"key":"9_CR33","doi-asserted-by":"publisher","unstructured":"Shanbhag, V.K.: Deadlock-detection in Java-library using static-analysis. In: 2008 15th Asia-Pacific Software Engineering Conference, pp. 361\u2013368 (2008). https:\/\/doi.org\/10.1109\/APSEC.2008.68","DOI":"10.1109\/APSEC.2008.68"},{"key":"9_CR34","doi-asserted-by":"crossref","unstructured":"Swain, B., Li, Y., Liu, P., Laguna, I., Georgakoudis, G., Huang, J.: Ompracer: a scalable and precise static race detector for openmp programs. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2020. IEEE Press (2020). https:\/\/api.semanticscholar.org\/CorpusID:231793198","DOI":"10.1109\/SC41405.2020.00058"},{"key":"9_CR35","doi-asserted-by":"publisher","unstructured":"Tu, T., Liu, X., Song, L., Zhang, Y.: Understanding real-world concurrency bugs in go. In: Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2019, pp. 865\u2013878. Association for Computing Machinery, New York, NY, USA (2019). https:\/\/doi.org\/10.1145\/3297858.3304069","DOI":"10.1145\/3297858.3304069"},{"key":"9_CR36","doi-asserted-by":"publisher","unstructured":"Veileborg, O.H., Saioc, G.V., M\u00f8ller, A.: Detecting blocking errors in go programs using localized abstract interpretation. In: Proceedings of the 37th IEEE\/ACM International Conference on Automated Software Engineering, ASE 2022. Association for Computing Machinery, New York, NY, USA (2023). https:\/\/doi.org\/10.1145\/3551349.3561154","DOI":"10.1145\/3551349.3561154"},{"key":"9_CR37","doi-asserted-by":"publisher","unstructured":"Voitsechov, D., Port, O., Etsion, Y.: Inter-thread communication in multithreaded, reconfigurable coarse-grain arrays. In: 2018 51st Annual IEEE\/ACM International Symposium on Microarchitecture (MICRO), pp. 42\u201354 (2018). https:\/\/doi.org\/10.1109\/MICRO.2018.00013","DOI":"10.1109\/MICRO.2018.00013"},{"key":"9_CR38","doi-asserted-by":"publisher","unstructured":"Voung, J.W., Jhala, R., Lerner, S.: Relay: static race detection on millions of lines of code. In: Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, ESEC-FSE 2007, pp. 205\u2013214. Association for Computing Machinery, New York, NY, USA (2007). https:\/\/doi.org\/10.1145\/1287624.1287654","DOI":"10.1145\/1287624.1287654"},{"key":"9_CR39","doi-asserted-by":"publisher","unstructured":"Wu, D., Liu, J., Sui, Y., Chen, S., Xue, J.: Precise static happens-before analysis for detecting UAF order violations in android. In: 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST), pp. 276\u2013287 (2019). https:\/\/doi.org\/10.1109\/ICST.2019.00035","DOI":"10.1109\/ICST.2019.00035"},{"key":"9_CR40","doi-asserted-by":"publisher","unstructured":"Yu-tao, F., Sheng-chen, Y., Yang, X.: System for performing resource management and control and task scheduling in grid computing. In: 2008 International Symposium on Computer Science and Computational Technology, vol.\u00a01, pp. 648\u2013651 (2008). https:\/\/doi.org\/10.1109\/ISCSCT.2008.229","DOI":"10.1109\/ISCSCT.2008.229"},{"key":"9_CR41","doi-asserted-by":"publisher","unstructured":"Yuan, T., Li, G., Lu, J., Liu, C., Li, L., Xue, J.: Gobench: a benchmark suite of real-world go concurrency bugs. In: 2021 IEEE\/ACM International Symposium on Code Generation and Optimization (CGO), pp. 187\u2013199. IEEE Computer Society, Los Alamitos, CA, USA (2021). https:\/\/doi.org\/10.1109\/CGO51591.2021.9370317","DOI":"10.1109\/CGO51591.2021.9370317"},{"key":"9_CR42","doi-asserted-by":"publisher","unstructured":"Zhan, S., Huang, J.: Echo: Instantaneous in situ race detection in the ide. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, pp. 775\u2013786. Association for Computing Machinery, New York, NY, USA (2016). https:\/\/doi.org\/10.1145\/2950290.2950332","DOI":"10.1145\/2950290.2950332"},{"key":"9_CR43","doi-asserted-by":"publisher","first-page":"136302","DOI":"10.1109\/ACCESS.2021.3116027","volume":"9","author":"D Zhang","year":"2021","unstructured":"Zhang, D., Qi, P., Zhang, Y.: Godetector: detecting concurrent bug in go. IEEE Access 9, 136302\u2013136312 (2021). https:\/\/doi.org\/10.1109\/ACCESS.2021.3116027","journal-title":"IEEE Access"},{"key":"9_CR44","doi-asserted-by":"publisher","unstructured":"Zhou, Q., Li, L., Wang, L., Xue, J., Feng, X.: May-happen-in-parallel analysis with static vector clocks. In: Proceedings of the 2018 International Symposium on Code Generation and Optimization, CGO 2018, pp. 228\u2013240. Association for Computing Machinery, New York, NY, USA (2018). https:\/\/doi.org\/10.1145\/3168813","DOI":"10.1145\/3168813"}],"container-title":["Lecture Notes in Computer Science","Static Analysis"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-74776-2_9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,20]],"date-time":"2025-01-20T05:35:38Z","timestamp":1737351338000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-74776-2_9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025]]},"ISBN":["9783031747755","9783031747762"],"references-count":44,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-74776-2_9","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2025]]},"assertion":[{"value":"21 January 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"SAS","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Static Analysis Symposium","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Pasadena, CA","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"USA","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2024","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"20 October 2024","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22 October 2024","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"31","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"sas2024","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/2024.splashcon.org\/home\/sas-2024","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}