This repository is a collection of case studies (experiments) for bugs found with STS.
See the walkthrough and documentation for a description of the contents of these directories.
Running old experiments
To properly rerun an old experiment you may need to rollback STS, POX, Hassel, and the control software to the software versions when the experiment was originally recorded.
The original software versions are stored in each experiment's metadata
file. We provide two scripts in STS to automatically read the information stored there, rollback the software, and rerun experiments:
tools/run_old_experiment.rb: reruns a single experiment. See
-h
for usage.tools/run_cmd_per_experiment.rb: runs a shell command within each experiment directory from the SIGCOMM'14 paper. Usage:
Usage: run_cmd_per_experiment [options]
-c, --command-path PATH Absolute path to a command to run within each directory
-e, --exclude-synthetic Whether to exclude synthetic bug experiments
-r, --rollback-sts Whether to rollback STS + dependencies to the versions specified in metadata.json
We often write a simple shell script to execute some analysis on the experiment, and pass the path to the shell script to run_cmd_per_experiment
with -c
.