The platform will undergo maintenance on Sep 14 at about 9:30 AM EST and will be unavailable for approximately 1 hour.
2012
DOI: 10.1109/tse.2011.101
|View full text |Cite
|
Sign up to set email alerts
|

Evaluating Dynamic Software Update Safety Using Systematic Testing

Abstract: Dynamic software updating (DSU) systems patch programs on the fly without incurring downtime.To avoid failures due to the updating process itself, many DSU systems employ timing restrictions.However, timing restrictions are theoretically imperfect, and their practical effectiveness is an open question. This paper presents the first significant empirical evaluation of three popular timing restrictions: activeness safety (AS), which prevents updates to active functions; con-freeness safety (CFS), which only allo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
47
0

Year Published

2012
2012
2019
2019

Publication Types

Select...
4
2
2

Relationship

3
5

Authors

Journals

citations
Cited by 29 publications
(47 citation statements)
references
References 19 publications
0
47
0
Order By: Relevance
“…To automatically quiesce a program in a stable and reproducible configuration, MCR requires instrumenting perthread quiescent points that specify safe locations to block long-lived threads-avoiding synchronization and updatesafety issues [29]-and yield short call stacks with minimal stack-resident state-avoiding pervasive stack instrumentation to trace stack-allocated data structures, a nontrivial source of overhead in prior solutions [38]. To fulfill both requirements, MCR selects blocking calls (e.g., accept) found at the top of long-running thread loops as ideal quiescent point candidates, similar to analogous update point-based strategies adopted in prior work in the area [30,41,42].…”
Section: Quiescence Detectionmentioning
confidence: 99%
See 1 more Smart Citation
“…To automatically quiesce a program in a stable and reproducible configuration, MCR requires instrumenting perthread quiescent points that specify safe locations to block long-lived threads-avoiding synchronization and updatesafety issues [29]-and yield short call stacks with minimal stack-resident state-avoiding pervasive stack instrumentation to trace stack-allocated data structures, a nontrivial source of overhead in prior solutions [38]. To fulfill both requirements, MCR selects blocking calls (e.g., accept) found at the top of long-running thread loops as ideal quiescent point candidates, similar to analogous update point-based strategies adopted in prior work in the area [30,41,42].…”
Section: Quiescence Detectionmentioning
confidence: 99%
“…Quiescence detection algorithms proposed in prior work operate at the level of individual functions [7,10,22,25] or generic events [12,13,23,41,42,45]. The former approach is known for its weak consistency guarantees [23,29] and typically relies on passive stack inspection [7,10,22,25] that cannot guarantee convergence in bounded time [38,39]. The latter approach relies on either update-friendly system design [12,23,45]-rarely an option for existing C programs-or explicit per-thread update points [30,38,41,42]-typically annotated at the top of longrunning loops.…”
Section: Introductionmentioning
confidence: 99%
“…While this delay makes sense, it is not sufficient to avoid trouble. Hayden et al [7] studied several years' worth of changes to three server programs and found that dynamic updates derived from actual releases sometimes fail even while adhering to this "activeness" restriction. Other work [8] suggests that simply asking programmers to specify a few program points (dubbed update points) at which updates are permitted makes the system easier to reason about.…”
Section: Dynamic Software Updatingmentioning
confidence: 99%
“…This section formalizes a semantics for dynamic updates to single-threaded programs, then defines the merging transformation and proves it correct with respect to the semantics. Many server programs for which dynamic updating is useful are single-threaded [12,18,11]. However, an important next step for this work would be to adapt it to support updates to multi-threaded (and distributed) programs.…”
Section: Verification Via Program Mergingmentioning
confidence: 99%
“…For instance, Hayden et al observed that OpenSSH's test suite only grew between versions-all of the old tests continued to hold as time went on [11]. This makes intuitive sense: many updates simply add new features, leaving the old features (and properties about them) unchanged, or refactor the program to improve non-functional aspects such as performance.…”
Section: A1 Backward Compatible Co-specsmentioning
confidence: 99%