Skip to main content

Crate chaos_clock_skew

Crate chaos_clock_skew 

Source
Expand description

LD_PRELOAD-Shim fuer Clock-Skew-Chaos (WP 5.F.2 Phase-B).

Crate chaos-clock-skew. Safety classification: STANDARD (FFI-Boundary, dlsym-basiert).

Setzt clock_gettime() und gettimeofday() so um, dass eine konfigurierbare Drift addiert wird. Die Drift kommt aus Env- Variablen die der Test-Harness setzt:

  • CHAOS_CLOCK_SKEW_NS — fixe Offset in Nanosekunden (signed, negative Werte = Clock laeuft hinten).
  • CHAOS_CLOCK_DRIFT_PPM — kontinuierliche Drift in parts-per-million (z.B. 100 = 100 µs/s langsamer).

Aktivierung:

cargo build -p chaos-clock-skew --release
LD_PRELOAD=$(pwd)/target/release/libchaos_clock_skew.so \
  CHAOS_CLOCK_SKEW_NS=100000000 \
  ./my-process

Auf macOS/Windows kompiliert die Crate nicht (kein dlsym-Pendant fuer system clock). Fuer den CI laeuft sie nur auf Linux.

§Was wird NICHT abgefangen?

  • CLOCK_MONOTONIC_RAW — bleibt unveraendert (nur fuer Bench-Tools wichtig).
  • CLOCK_BOOTTIME — bleibt unveraendert.
  • Direct-syscall clock_gettime ueber vDSO-Bypass — LD_PRELOAD greift bei vDSO-Calls nur wenn das Programm explizit ueber libc callt; das ist bei stdlib-Code der Fall.

Structs§

Timespec
Linux-timespec. Layout glibc-kompatibel.
Timeval
Linux-timeval. Layout glibc-kompatibel.

Constants§

CLOCK_MONOTONIC
CLOCK_MONOTONIC.
CLOCK_REALTIME
CLOCK_REALTIME.

Functions§

clock_gettime
clock_gettime-Replacement.
gettimeofday
gettimeofday-Replacement.

Type Aliases§

ClockId
clockid_t-Enum, glibc-kompatibel.