#!/usr/bin/env bash # shellcheck disable=SC2035 # shellcheck disable=SC2061 # shellcheck disable=SC2086 # we want word splitting while true; do devcds=$(find /sys/devices/virtual/devcoredump/ -name data 2>/dev/null) for i in $devcds; do echo "Found a devcoredump at $i." if cp $i /results/first.devcore; then echo 1 > $i echo "Saved to the job artifacts at /first.devcore" exit 0 fi done i915_error_states=$(find /sys/devices/ -path */drm/card*/error) for i in $i915_error_states; do tmpfile=$(mktemp) cp "$i" "$tmpfile" filesize=$(stat --printf="%s" "$tmpfile") # Does the file contain "No error state collected" ? if [ "$filesize" = 25 ]; then rm "$tmpfile" else echo "Found an i915 error state at $i size=$filesize." if cp "$tmpfile" /results/first.i915_error_state; then rm "$tmpfile" echo 1 > "$i" echo "Saved to the job artifacts at /first.i915_error_state" exit 0 fi fi done sleep 10 done