A DSL Approach to Reconcile Equivalent Divergent Program Executions

Authors: 

Luís Pina, Daniel Grumberg, Anastasios Andronidis, and Cristian Cadar, Imperial College London

Abstract: 

Multi-Version Execution (MVE) deploys multiple versions of the same program, typically synchronizing their execution at the level of system calls. By default, MVE requires all deployed versions to issue the same sequence of system calls, which limits the types of versions which can be deployed.

In this paper, we propose a Domain-Specific Language (DSL) to reconcile expected divergences between different program versions deployed through MVE. We evaluate the DSL by adding it to an existing MVE system (Varan) and testing it via three scenarios: (1) deploying the same program under different configurations, (2) deploying different releases of the same program, and (3) deploying dynamic analyses in parallel with the native execution. We also present an algorithm to automatically extract DSL rules from pairs of system call traces. Our results show that each scenario requires a small number of simple rules (at most 14 rules in each case) and that writing DSL rules can be partially automated.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

Presentation Audio

BibTeX
@inproceedings {203233,
author = {Lu{\'\i}s Pina and Daniel Grumberg and Anastasios Andronidis and Cristian Cadar},
title = {A {DSL} Approach to Reconcile Equivalent Divergent Program Executions},
booktitle = {2017 {USENIX} Annual Technical Conference ({USENIX} {ATC} 17)},
year = {2017},
isbn = {978-1-931971-38-6},
address = {Santa Clara, CA},
pages = {417--429},
url = {https://www.usenix.org/conference/atc17/technical-sessions/presentation/pina},
publisher = {{USENIX} Association},
}