Local Concurrent Error Detection and Correction in Data Structures Using Virtual Backpointers
IEEE Transactions on Computers
Using the consequence of failures for testing and reliability assessment
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modeling dynamic collections of interdependent objects using path-based rules
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The design and implementation of Kaleidoscope, a constraint imperative programming language
The design and implementation of Kaleidoscope, a constraint imperative programming language
Self-stabilization
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
A first order approximation to the optimum checkpoint interval
Communications of the ACM
Self-stabilizing systems in spite of distributed control
Communications of the ACM
A system and language for building system-specific, static analyses
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Constraint Analysis: A Design Process for Specifying Operations on Objects
IEEE Transactions on Knowledge and Data Engineering
Auditdraw: Generating Audits the FAST Way
RE '97 Proceedings of the 3rd IEEE International Symposium on Requirements Engineering
Software Rejuvenation: Analysis, Module and Applications
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
Recursive Restartability: Turning the Reboot Sledgehammer into a Scalpel
HOTOS '01 Proceedings of the Eighth Workshop on Hot Topics in Operating Systems
Recovery Oriented Computing (ROC): Motivation, Definition, Techniques,
Recovery Oriented Computing (ROC): Motivation, Definition, Techniques,
Automatic detection and repair of errors in data structures
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Static Specification Analysis for Termination of Specification-Based Data Structure Repair
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Basic Concepts and Taxonomy of Dependable and Secure Computing
IEEE Transactions on Dependable and Secure Computing
Data structure repair using goal-directed reasoning
Proceedings of the 27th international conference on Software engineering
User-level checkpoint and recovery for LAM/MPI
ACM SIGOPS Operating Systems Review
Probabilistic accuracy bounds for fault-tolerant computations that discard tasks
Proceedings of the 20th annual international conference on Supercomputing
Data structure repair using goal-directed reasoning
Data structure repair using goal-directed reasoning
Libckpt: transparent checkpointing under Unix
TCON'95 Proceedings of the USENIX 1995 Technical Conference Proceedings
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Samurai: protecting critical data in unsafe languages
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
An Operating System Architecture for Future Information Appliances
SEUS '08 Proceedings of the 6th IFIP WG 10.2 international workshop on Software Technologies for Embedded and Ubiquitous Systems
Consistency oriented programming
SoD '07 Proceedings of the 2007 Symposium on Science of Design
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Partial constraint checking for context consistency in pervasive computing
ACM Transactions on Software Engineering and Methodology (TOSEM)
DDT: design and evaluation of a dynamic program analysis for optimizing data structure usage
Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture
What to do when things go wrong: recovery in complex (computer) systems
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
Recon: verifying file system consistency at runtime
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
Obtaining and reasoning about good enough software
Proceedings of the 49th Annual Design Automation Conference
Recon: Verifying file system consistency at runtime
ACM Transactions on Storage (TOS)
IDEA: improving dependability for self-adaptive applications
Proceedings of the 2013 Middleware Doctoral Symposium
Hi-index | 0.00 |
Software errors and hardware failures can cause data structures in running programs to violate key data structure consistency properties. As a result of this violation, the program may produce unacceptable results or even fail. We present a new data structure repair system. This system accepts a specification of data structure consistency properties stated in terms of an abstract set- and relation-based model of the data structures in the running program. It then automatically generates a repair algorithm that, during the execution of the program, detects and repairs any violations of these constraints. The goal is to enable the program to continue to execute acceptably in the face of otherwise crippling data structure corruption errors. We have applied our system to repair inconsistent data structures in five applications: CTAS (an air traffic control system), AbiWord (an open source word processing program), Freeciv (an interactive multiplayer game), a parallel x86 emulator, and a simplified Linux file system. Our results indicate that the generated repair algorithms can effectively repair inconsistent data structures in these applications to enable the applications to continue to operate successfully in cases where the original application would have failed. Without repair, all of the applications fail.