skip to main content
10.1145/2384616.2384636acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Automating object transformations for dynamic software updating

Published: 19 October 2012 Publication History

Abstract

Dynamic software updating (DSU) systems eliminate costly downtime by dynamically fixing bugs and adding features to executing programs. Given a static code patch, most DSU systems construct runtime code changes automatically. However, a dynamic update must also specify how to change the running program's execution state, e.g., the stack and heap, to make it compatible with the new code. Constructing such state transformations correctly and automatically remains an open problem. This paper presents a solution called Targeted Object Synthesis (TOS). TOS first executes the same tests on the old and new program versions separately, observing the program heap state at a few corresponding points. Given two corresponding heap states, TOS matches objects in the two versions using key fields that uniquely identify objects and correlate old and new-version objects. Given example object pairs, TOS then synthesizes the simplest-possible function that transforms an old-version object to its new-version counterpart. We show that TOS is effective on updates to four open-source server programs for which it generates non-trivial transformation functions that use conditionals, operate on collections, and fix memory leaks. These transformations help programmers understand their changes and apply dynamic software updates.

References

[1]
J. Arnold and F. Kaashoek. Ksplice: Automatic rebootless kernel updates. In EuroSys, 2009.
[2]
M. D. Bond and K. S. McKinley. Bell: Bit-Encoding Online Memory Leak Detection. In ASPLOS, 2006.
[3]
M. D. Bond and K. S. McKinley. Leak pruning. In ASPLOS, 2009.
[4]
H. Chen, J. Yu, R. Chen, B. Zang, and P.-C. Yew. POLUS: A POwerful Live Updating System. In ICSE, 2007.
[5]
S. Gulwani. Automating string processing in spreadsheets using input-output examples. In POPL, 2011.
[6]
W. R. Harris and S. Gulwani. Spreadsheet table transformations from examples. In PLDI, 2011.
[7]
C. M. Hayden, E. K. Smith, E. A. Hardisty, M. Hicks, and J. S. Foster. Evaluating dynamic software update safety using efficient systematic testing. IEEE Transactions on Software Engineering, 99 (PrePrints), Sept. 2011.
[8]
M. Hicks and S. M. Nettles. Dynamic Software Updating. Transactions on Programming Languages and Systems, 27 (6): 1049--1096, November 2005.
[9]
M. Jump and K. S. McKinley. Cork: Dynamic Memory Leak Detection for Java. In POPL, 2007.
[10]
K. Makris and R. Bazzi. Immediate Multi-Threaded Dynamic Software Updates Using Stack Reconstruction. In USENIX ATC, 2009.
[11]
N. Mitchell and G. Sevitsky. The causes of bloat, the limits of health. In OOPSLA, 2007.
[12]
N. Mitchell and G. Sevitzky. LeakBot: An Automated and Lightweight Tool for Diagnosing Memory Leaks in Large Java Applications. In ECOOP, 2003.
[13]
I. Neamtiu, M. Hicks, G. Stoyle, and M. Oriol. Practical Dynamic Software Updating for C. In PLDI, 2006.
[14]
S. Subramanian, M. Hicks, and K. S. McKinley. Dynamic Software Updates: A VM-centric Approach. In PLDI, 2009.
[15]
G. Xu and A. Rountev. Detecting inefficiently-used containers to avoid bloat. In PLDI, 2010.
[16]
ZeroTurnaround. LiveRebel. http://www.zeroturnaround.com/liverebel.

Cited By

View all
  • (2024)Active DSU: Dynamic Software Updates for Active FunctionsProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690046(26-37)Online publication date: 17-Oct-2024
  • (2022)TOAST: Automated Testing of Object Transformers in Dynamic Software UpdatesJournal of Computer Science and Technology10.1007/s11390-021-1693-137:1(50-66)Online publication date: 31-Jan-2022
  • (2021)Synthesizing Object State Transformers for Dynamic Software Updates2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)10.1109/ICSE43902.2021.00103(1111-1122)Online publication date: May-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
October 2012
1052 pages
ISBN:9781450315616
DOI:10.1145/2384616
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 47, Issue 10
    OOPSLA '12
    October 2012
    1011 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2398857
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. DSU
  2. dynamic software update
  3. hot-swapping
  4. object correlation
  5. object matching
  6. program synthesis
  7. state transformation

Qualifiers

  • Research-article

Conference

SPLASH '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Active DSU: Dynamic Software Updates for Active FunctionsProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690046(26-37)Online publication date: 17-Oct-2024
  • (2022)TOAST: Automated Testing of Object Transformers in Dynamic Software UpdatesJournal of Computer Science and Technology10.1007/s11390-021-1693-137:1(50-66)Online publication date: 31-Jan-2022
  • (2021)Synthesizing Object State Transformers for Dynamic Software Updates2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)10.1109/ICSE43902.2021.00103(1111-1122)Online publication date: May-2021
  • (2021)PASTA: Synthesizing Object State Transformers for Dynamic Software Updates2021 IEEE/ACM 43rd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)10.1109/ICSE-Companion52605.2021.00094(211-212)Online publication date: May-2021
  • (2020)Testing for Dynamic Software Update: An Object-State-Oriented ApproachProceedings of the 12th Asia-Pacific Symposium on Internetware10.1145/3457913.3457942(41-50)Online publication date: 1-Nov-2020
  • (2018)On-stack replacement, distilledACM SIGPLAN Notices10.1145/3296979.319239653:4(166-180)Online publication date: 11-Jun-2018
  • (2018)Object-oriented recovery for non-volatile memoryProceedings of the ACM on Programming Languages10.1145/32765232:OOPSLA(1-22)Online publication date: 24-Oct-2018
  • (2018)On-stack replacement, distilledProceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3192366.3192396(166-180)Online publication date: 11-Jun-2018
  • (2018)Software Is Not SoftEngineering Trustworthy Software Systems10.1007/978-3-030-02928-9_5(143-175)Online publication date: 13-Nov-2018
  • (2017)Synthesizing object transformation for dynamic software updatingProceedings of the 39th International Conference on Software Engineering Companion10.1109/ICSE-C.2017.96(336-338)Online publication date: 20-May-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media