{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,15]],"date-time":"2025-08-15T01:10:00Z","timestamp":1755220200111,"version":"3.43.0"},"reference-count":33,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2025,8,8]],"date-time":"2025-08-08T00:00:00Z","timestamp":1754611200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2025,8,8]],"date-time":"2025-08-08T00:00:00Z","timestamp":1754611200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["52274160","51874300"],"award-info":[{"award-number":["52274160","51874300"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]},{"name":"National Innovation and Entrepreneurship Training Programme for Undergraduates of China University of Mining and Technology","award":["202210290077Z"],"award-info":[{"award-number":["202210290077Z"]}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Cybersecurity"],"abstract":"<jats:title>Abstract<\/jats:title>\n          <jats:p>Repairing software defects is crucial to improving the security and robustness of software. Traditional methods repair software defects by using the \u201cstop-repair-restart\u201d approach. Unfortunately, in some scenarios, such as cloud environments, restarting critical software is expensive. Dynamic methods enable the defect repair while the software is running, which can avoid software restart. However, dynamic repair requires capture the safe state of the running software (process). Otherwise, it will cause execution exceptions or even process crashes. To address the complex state issues in multi-threaded environments, existing methods modify the kernel or compiler, or even pre-adding custom code to the target software, which reduces their generality. To solve this problem, we propose a hot repair method HotFix, which can fix the defects without any software suspending. HotFix places probes in the process to receive state signals, which can avoid complex and time-consuming state identification. Then, it selects the safe zone and repairs the defects when the code in the safe zone is called, which can prevent the target process from hanging for a long time. Finally, HotFix completes multi-threaded automated migration online. Experiments and analysis show that HotFix can achieve hot repair in complex environments. We found that the affected function was executed no more than 1,000 times during the fix. Introducing 3us and 11us delays per request respectively when repairing Redis and Mem cached, and the requests influenced are limited.<\/jats:p>","DOI":"10.1186\/s42400-024-00354-1","type":"journal-article","created":{"date-parts":[[2025,8,8]],"date-time":"2025-08-08T01:02:28Z","timestamp":1754614948000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["A hot-repair method for the running software with zero suspends"],"prefix":"10.1186","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0009-0000-5841-6365","authenticated-orcid":false,"given":"Guoyuan","family":"Lin","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jiazhen","family":"Cai","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yonggang","family":"Li","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Haonan","family":"Li","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jiahui","family":"Zhou","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Wei","family":"Chen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zhong","family":"Chen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shanqing","family":"Guo","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2025,8,8]]},"reference":[{"key":"354_CR1","doi-asserted-by":"crossref","unstructured":"Arnold J, Kaashoek MF (2009) Ksplice: automatic rebootless kernel updates. In: proceedings of the 4th ACM European conference on computer systems pp 187\u2013198","DOI":"10.1145\/1519065.1519085"},{"issue":"5","key":"354_CR2","doi-asserted-by":"publisher","first-page":"679","DOI":"10.1109\/TSE.2010.79","volume":"37","author":"H Chen","year":"2010","unstructured":"Chen H, Yu J, Hang C, Zang B, Yew P-C (2010) Dynamic software updating using a relaxed consistency model. IEEE Trans Softw Eng 37(5):679\u2013694","journal-title":"IEEE Trans Softw Eng"},{"issue":"4","key":"354_CR3","doi-asserted-by":"publisher","first-page":"941","DOI":"10.1109\/TPDS.2015.2430854","volume":"27","author":"G Chen","year":"2015","unstructured":"Chen G, Jin H, Zou D, Liang Z, Zhou BB, Wang H (2015) A framework for practical dynamic software updating. IEEE Trans Parallel Distrib Syst 27(4):941\u2013950","journal-title":"IEEE Trans Parallel Distrib Syst"},{"key":"354_CR4","doi-asserted-by":"crossref","unstructured":"Chen Z, Qiang W (2017) Islus: an immediate and safe live update system for c program. In: 2017 IEEE second international conference on data science in cyberspace (DSC), pp. 267\u2013274. IEEE","DOI":"10.1109\/DSC.2017.50"},{"key":"354_CR5","doi-asserted-by":"crossref","unstructured":"Farhang S, Weidman J, Kamani MM, Grossklags J, Liu P (2018) Take it or leave it: a survey study on operating system upgrade practices. In: proceedings of the 34th annual computer security applications conference, pp 490\u2013504","DOI":"10.1145\/3274694.3274733"},{"issue":"4","key":"354_CR6","doi-asserted-by":"publisher","first-page":"279","DOI":"10.1145\/2499368.2451147","volume":"48","author":"C Giuffrida","year":"2013","unstructured":"Giuffrida C, Kuijsten A, Tanenbaum AS (2013a) Safe and automatic live update for operating systems. ACM Sigplan Notices 48(4):279\u2013292","journal-title":"ACM Sigplan Notices"},{"issue":"3","key":"354_CR7","doi-asserted-by":"publisher","first-page":"207","DOI":"10.1109\/TSE.2016.2584066","volume":"43","author":"C Giuffrida","year":"2016","unstructured":"Giuffrida C, Tamburrelli G, Tanenbaum AS (2016) Automating live update for generic server programs. IEEE Trans Softw Eng 43(3):207\u2013225","journal-title":"IEEE Trans Softw Eng"},{"key":"354_CR8","unstructured":"Giuffrida C, Iorgulescu C, Kuijsten A, Tanenbaum AS (2013) Back to the future: fault-tolerant live update with time-traveling state transfer. In: 27th Large Installation System Administration Conference (LISA 13), pp. 89\u2013104"},{"key":"354_CR9","unstructured":"Hanna C, Clark D, Sarro F, Petke J (2024) Hot fixing software: A comprehensive review of terminology, techniques, and applications. arXiv preprint arXiv:2401.09275"},{"issue":"4","key":"354_CR10","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/2629460","volume":"36","author":"CM Hayden","year":"2014","unstructured":"Hayden CM, Saur K, Smith EK, Hicks M, Foster JS (2014) Kitsune: efficient, general-purpose dynamic software updating for c. ACM Trans Progr Lang Syst (TOPLAS) 36(4):1\u201338","journal-title":"ACM Trans Progr Lang Syst (TOPLAS)"},{"key":"354_CR11","doi-asserted-by":"crossref","unstructured":"Hayden CM, Smith EK, Denchev M, Hicks M, Foster JS (2012) Kitsune: efficient, general-purpose dynamic software updating for c. In: proceedings of the ACM international conference on object oriented programming systems languages and applications, pp. 249\u2013264","DOI":"10.1145\/2384616.2384635"},{"key":"354_CR12","doi-asserted-by":"crossref","unstructured":"Huang H, Tsai W-K, Chen Y (2005) Autonomous hot patching for web-based applications. In: 29th annual international computer software and applications conference (COMPSAC\u201905), vol. 2, pp. 51\u201356. IEEE","DOI":"10.1109\/COMPSAC.2005.51"},{"key":"354_CR13","unstructured":"Huang, H., Xiang, C., Zhong, L., Zhou, Y.: {PYLIVE}:{On-the-Fly} code change for python-based online services. In: 2021 USENIX Annual Technical Conference (USENIX ATC 21), pp. 349\u2013363 (2021)"},{"key":"354_CR14","doi-asserted-by":"crossref","unstructured":"Jeong H, Baik J, Kang K (2017) Functional level hot-patching platform for executable and linkable format binaries. In: 2017 IEEE international conference on systems, man, and cybernetics (SMC), pp. 489\u2013494. IEEE","DOI":"10.1109\/SMC.2017.8122653"},{"key":"354_CR15","unstructured":"Keniston J, Mavinakayanahalli A, Panchamukhi P, Prasad V (2007) Ptrace, utrace, uprobes: lightweight, dynamic tracing of user apps. In: proceedings of the 2007 linux symposium, pp. 215\u2013224"},{"key":"354_CR16","unstructured":"LibCare\u2013patch Userspace code on live processes (2020). https:\/\/github.com\/cloudlinux\/libcare\/"},{"key":"354_CR17","unstructured":"Live Kernel Patching Using kGraft (2023) https:\/\/documentation.suse.com\/sles\/12-SP4\/html\/SLES-kgraft\/index.html\/"},{"key":"354_CR18","doi-asserted-by":"crossref","unstructured":"Makris K, Bazzi RA (2009) Immediate multi-threaded dynamic software updates using stack reconstruction. In: USENIX Annual Technical Conference, vol. 2009. San Diego, CA","DOI":"10.1145\/1656437.1656447"},{"issue":"1","key":"354_CR19","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3105906","volume":"51","author":"M Monperrus","year":"2018","unstructured":"Monperrus M (2018) Automatic software repair: a bibliography. ACM Comput Surv (CSUR) 51(1):1\u201324","journal-title":"ACM Comput Surv (CSUR)"},{"issue":"6","key":"354_CR20","doi-asserted-by":"publisher","first-page":"72","DOI":"10.1145\/1133255.1133991","volume":"41","author":"I Neamtiu","year":"2006","unstructured":"Neamtiu I, Hicks M, Stoyle G, Oriol M (2006) Practical dynamic software updating for c. ACM SIGPLAN Notices 41(6):72\u201383","journal-title":"ACM SIGPLAN Notices"},{"key":"354_CR21","doi-asserted-by":"crossref","unstructured":"Neamtiu I, Hicks M (2009) Safe and timely updates to multi-threaded programs. In: proceedings of the 30th ACM SIGPLAN conference on programming language design and implementation, pp 13\u201324","DOI":"10.1145\/1542476.1542479"},{"key":"354_CR22","unstructured":"Payer M, Bluntschli B, Gross TR (2013) {DynSec}:{On-the-fly} code rewriting and repair. In: 5th Workshop on Hot Topics in Software Upgrades (HotSWUp 13) 22"},{"key":"354_CR23","doi-asserted-by":"crossref","unstructured":"Pina L, Hicks M (2016) Tedsuto: a general framework for testing dynamic software updates. In: 2016 IEEE international conference on software testing, verification and validation (ICST), pp. 278\u2013287. IEEE 21","DOI":"10.1109\/ICST.2016.27"},{"key":"354_CR24","doi-asserted-by":"crossref","unstructured":"Pina L, Andronidis A, Hicks M, Cadar C (2019) Mvedsua: higher availability dynamic software updates via multi-version execution. In: proceedings of the twenty-fourth international conference on architectural support for programming languages and operating systems, pp. 573\u2013585","DOI":"10.1145\/3297858.3304063"},{"key":"354_CR25","unstructured":"Poimboeuf J, Jennings S (2014) Introducing kpatch: Dynamic kernel patching. Red Hat Enterprise Linux Blog 26"},{"key":"354_CR26","doi-asserted-by":"crossref","unstructured":"Rommel F, Glauer L, Dietrich C, Lohmann D (2019) Wait-free code patching of multi-threaded processes. In: proceedings of the 10th workshop on programming languages and operating systems, pp. 23\u201329","DOI":"10.1145\/3365137.3365404"},{"key":"354_CR27","unstructured":"Rommel F, Dietrich C, Huang P, Friesel D, Jyothi SA, Grover K, K \u0308oppen M, Narodytska N, Sivathanu M, Borchert C et al (2020) From global to local quiescence: {Wait-Free} code patching of {Multi-Threaded} processes. In: 14th USENIX symposium on operating systems design and implementation (OSDI 20), pp 651\u2013666"},{"key":"354_CR28","doi-asserted-by":"crossref","unstructured":"Russinovich M, Govindaraju N, Raghuraman M, Hepkin D, Schwartz J, Kishan A (2021) Virtual machine preserving host updates for zero day patching in public cloud. In: proceedings of the sixteenth European conference on computer systems, pp. 114\u2013129","DOI":"10.1145\/3447786.3456232"},{"key":"354_CR29","doi-asserted-by":"crossref","unstructured":"Siniavine M, Goel A (2013) Seamless kernel updates. In: 2013 43rd annual IEEE\/IFIP international conference on dependable systems and networks (DSN), pp. 1\u201312. IEEE","DOI":"10.1109\/DSN.2013.6575312"},{"key":"354_CR30","doi-asserted-by":"crossref","unstructured":"Subramanian S, Hicks M, McKinley KS (2009) Dynamic software updates: a vm-centric approach. In: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp 1\u201312","DOI":"10.1145\/1542476.1542478"},{"issue":"2","key":"354_CR31","doi-asserted-by":"publisher","first-page":"146","DOI":"10.1137\/0201010","volume":"1","author":"R Tarjan","year":"1972","unstructured":"Tarjan R (1972) Depth-first search and linear graph algorithms. SIAM J Comput 1(2):146\u2013160","journal-title":"SIAM J Comput"},{"key":"354_CR32","doi-asserted-by":"crossref","unstructured":"Visalli N, Deng L, Al-Suwaida A, Brown Z, Joshi M, Wei B (2019) Towards automated security vulnerability and software defect localization. In: 2019 IEEE 17th International Conference on Software Engineering Research, Management and Applications (SERA), pp. 90\u201393","DOI":"10.1109\/SERA.2019.8886795"},{"key":"354_CR33","doi-asserted-by":"crossref","unstructured":"Zou D, Wang H, Jin H (2015) Strongupdate: an immediate dynamic software update system for multi-threaded applications. In: human Centered computing: first international conference, HCC 2014, Phnom Penh, Cambodia, November 27\u201329, 2014, Revised Selected Papers 1, pp. 365\u2013379 Springer","DOI":"10.1007\/978-3-319-15554-8_30"}],"container-title":["Cybersecurity"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s42400-024-00354-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1186\/s42400-024-00354-1\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s42400-024-00354-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,8,8]],"date-time":"2025-08-08T01:02:38Z","timestamp":1754614958000},"score":1,"resource":{"primary":{"URL":"https:\/\/cybersecurity.springeropen.com\/articles\/10.1186\/s42400-024-00354-1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,8,8]]},"references-count":33,"journal-issue":{"issue":"1","published-online":{"date-parts":[[2025,12]]}},"alternative-id":["354"],"URL":"https:\/\/doi.org\/10.1186\/s42400-024-00354-1","relation":{},"ISSN":["2523-3246"],"issn-type":[{"value":"2523-3246","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,8,8]]},"assertion":[{"value":"11 May 2024","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"25 December 2024","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"8 August 2025","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Competing interest"}}],"article-number":"52"}}