This repository contains the software components for the Error Injection Testbed, designed to evaluate the robustness of the Application Under Test (AUT) through system call error injection. The testbed simulates a faulty Linux OS by injecting faults into the arbitrary application running in Docker from an OS perspective. This is achieved by modifying the return values and the timing of system calls (syscalls).
The testbed involves two main procedures:
- Recording the Ground Truth: The execution of the application is traced, logging all invoked syscalls, their parameters and return values. This serves as the baseline ground truth for comparison and diagnosing the impacts of the injected faults.
- Fault Injection and Behavior Comparison: Faults are manually configured and injected into the return values or delays of syscalls. The application's behavior is recorded under these fault conditions and compared to the baseline for the failure analysis.
This project relies on the usage of open-source Python libraries.
| Name | License |
|---|---|
| docker | Apache Software License |
| grpcio | Apache Software License |
| grpcio-tools | Apache Software License |
| protobuf | 3-Clause BSD License |
| psutil | BSD License |
For any questions or issues, please contact Min Hee Jo.
SyscaLLM-Injection is open-sourced under the AGPL-3.0 license. See the LICENSE file for details.