1
0

runtime: publish VM160-LOCAL-ROOTCAUSE-001

This commit is contained in:
homelab-runtime-publisher
2026-07-21 07:55:40 +00:00
parent 4f155f921d
commit d6aedef73f
4 changed files with 149 additions and 27 deletions
+46 -17
View File
@@ -1,34 +1,63 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=STRICT-WORKFLOW-RULE-003
COMMAND_ID=VM160-LOCAL-ROOTCAUSE-001
STATUS=OK
RC=0
HOST=pve01
MODE=change
COMPONENT=assistant-workflow
MODE=read-only
COMPONENT=vm160-backup
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=f6f7749fda946015116cdbbd754c7e7f20356b4a6cf4df330a1b0b8fdf59cbb2
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=ab8308549db90d235b591af0581580c3c7ba1b287b129cc6111c2eef0a0f9ecc
COMMAND_SHA256=15030949d8cf7f97960e8c36ae20fcf9ec3e3402aada6a351d8c8ae203360d1a
COMMAND_SHA256=abe456bec06dfed260177703a3c57c723a6d506d59a2103104a1bbae3a1523c4
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGES_MADE=true
CHANGES_MADE=false
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=36f50179b9b0c3ad1f05f418bc6399dce57fd025609ca909da504e890ef6d36c
SANITIZED_OUTPUT_SHA256=36f50179b9b0c3ad1f05f418bc6399dce57fd025609ca909da504e890ef6d36c
RAW_EVIDENCE_SHA256=a6f5c40d21e4083664d8d699d1e2a10ad4f47e53c2716db0fde0148120fdaa97
SANITIZED_OUTPUT_SHA256=196da65bcc79aa66809cd6ec0bf42a1f59ea83cb1b63cad59e6d86e2ff08409f
OUTPUT_BEGIN
RULE_STATUS=STRICT
CONFIRMATION_TOKENS=BACKSLASH_OR_COMMA
COMMAND_DISPLAY=COLLAPSIBLE_DETAILS_ONLY
MANUAL_OUTPUT_OR_FILE_UPLOADS=FORBIDDEN
ONE_SHORT_TRANSPARENT_COMMAND_PER_STEP=YES
HEREDOC_BASE64_LARGE_PAYLOADS=FORBIDDEN
RESULT_SOURCE=IMMUTABLE_HISTORY_EXACT_COMMAND_ID
BEFORE_COMMAND=LOAD_BOOTSTRAP_ERRORS_AND_PREVIOUS_RESULT
AFTER_FAILURE=READ_PUBLISHED_RESULT_BEFORE_NEXT_COMMAND
NEW_CHAT_INPUT=BOOTSTRAP_URL_ONLY
===== VM160 LOCAL ROOT CAUSE =====
TIME=2026-07-21T10:55:39+03:00
===== HEALTH =====
STATUS=FAIL
SERVICE=homelab-vm160-remote-backup
TIMESTAMP_UTC=20260720T233913Z
VMID=160
TARGET_DIR=/mnt/staging/vzdump/vm160-pve02-20260720T233913Z
RC=1
===== TEMP LOG =====
TEMP_LOG_MISSING
===== SCRIPT FAILURE PATHS =====
2:set -Eeuo pipefail
7:KH=[SENSITIVE_PATH]
8:PARENT=/mnt/staging/vzdump
14:target_worker(){ ssh "${SSH[@]}" "$TARGET" bash -s -- "$@" < "$TARGET_WORKER"; }
17:flock -n 9
20:test "$(ssh "${SSH[@]}" "$SOURCE" "qm status $VMID" | awk '{print $2}')" = running
22:SOURCE_ACTIVE="$(ssh "${SSH[@]}" "$SOURCE" "pgrep -af '(^|/)(vzdump|qmrestore|pctrestore|vma|zstd)([[:space:]]|$)'")" || SOURCE_ACTIVE_RC=$?
27:NAME="vzdump-qemu-${VMID}-${TS}.vma.zst"
30:LOG="$(mktemp /tmp/vm160-remote-backup.XXXXXX.log)"
33: trap - EXIT
35: ssh "${SSH[@]}" "$TARGET" "rm -rf -- '$DIR'" >/dev/null 2>&1 || true
37: printf 'STATUS=FAIL\nSERVICE=homelab-vm160-remote-backup\nTIMESTAMP_UTC=%s\nVMID=%s\nTARGET_DIR=%s\nRC=%s\n' "$TS" "$VMID" "$DIR" "$rc" > "$tmp"
42: exit "$rc"
44:trap cleanup EXIT
45:REMOTE_FREE="$(ssh "${SSH[@]}" "$TARGET" "df -B1 --output=avail '$PARENT' | awk 'NR==2{print \$1}'")"
46:LATEST_SIZE="$(ssh "${SSH[@]}" "$TARGET" "find '$PARENT' -mindepth 2 -maxdepth 2 -type f -path '$PARENT/${PREFIX}*/vzdump-qemu-${VMID}-*.vma.zst' -printf '%s\n' | sort -nr | head -n1")"
54:ssh "${SSH[@]}" "$TARGET" "install -d -m 0700 '$DIR'"
55:ssh "${SSH[@]}" "$SOURCE" "vzdump $VMID --stdout 1 --mode snapshot --compress zstd --ionice 7" 2>"$LOG" | ssh "${SSH[@]}" "$TARGET" "cat > '$PART'"
57:ssh "${SSH[@]}" "$TARGET" "cat > '$DIR/vzdump.log'" < "$LOG"
58:SIZE="$(ssh "${SSH[@]}" "$TARGET" "stat -c %s '$FINAL'")"
59:SHA="$(ssh "${SSH[@]}" "$TARGET" "sha256sum '$FINAL' | awk '{print \$1}'")"
65:trap - EXIT
===== CURRENT PROCESS =====
3706440 00:00 S+ bash /usr/local/sbin/homelab-chat-run VM160-LOCAL-ROOTCAUSE-001 read-only vm160-backup -- /usr/bin/bash -lc echo "===== VM160 LOCAL ROOT CAUSE ====="; echo "TIME=$(date -Is)"; echo "===== HEALTH ====="; cat /var/lib/homelab-health/vm160-remote-backup.txt 2>/dev/null || echo "HEALTH_FILE_MISSING"; echo "===== TEMP LOG ====="; f="$(find /tmp -maxdepth 1 -type f -name "vm160-remote-backup.*.log" -printf "%T@|%p\n" 2>/dev/null | sort -t"|" -k1,1nr | head -n1 | cut -d"|" -f2-)"; if [ -n "$f" ] && [ -r "$f" ]; then stat -c "FILE=%n SIZE=%s MTIME=%y" "$f"; tail -n 200 "$f"; else echo "TEMP_LOG_MISSING"; fi; echo "===== SCRIPT FAILURE PATHS ====="; grep -nE "set -|trap|flock|ssh|vzdump|exit|return|STATUS=FAIL|rm -rf|mktemp" /usr/local/sbin/homelab-vm160-remote-backup 2>/dev/null; echo "===== CURRENT PROCESS ====="; ps -eo pid,etime,stat,args | grep -E "[h]omelab-vm160-remote-backup|[v]zdump.*160" || echo "PROCESS_PRESENT=no"; echo "CHANGES_MADE=NO"; true
3706463 00:00 S+ timeout --foreground --preserve-status 90 /usr/bin/bash -lc echo "===== VM160 LOCAL ROOT CAUSE ====="; echo "TIME=$(date -Is)"; echo "===== HEALTH ====="; cat /var/lib/homelab-health/vm160-remote-backup.txt 2>/dev/null || echo "HEALTH_FILE_MISSING"; echo "===== TEMP LOG ====="; f="$(find /tmp -maxdepth 1 -type f -name "vm160-remote-backup.*.log" -printf "%T@|%p\n" 2>/dev/null | sort -t"|" -k1,1nr | head -n1 | cut -d"|" -f2-)"; if [ -n "$f" ] && [ -r "$f" ]; then stat -c "FILE=%n SIZE=%s MTIME=%y" "$f"; tail -n 200 "$f"; else echo "TEMP_LOG_MISSING"; fi; echo "===== SCRIPT FAILURE PATHS ====="; grep -nE "set -|trap|flock|ssh|vzdump|exit|return|STATUS=FAIL|rm -rf|mktemp" /usr/local/sbin/homelab-vm160-remote-backup 2>/dev/null; echo "===== CURRENT PROCESS ====="; ps -eo pid,etime,stat,args | grep -E "[h]omelab-vm160-remote-backup|[v]zdump.*160" || echo "PROCESS_PRESENT=no"; echo "CHANGES_MADE=NO"; true
3706464 00:00 S+ /usr/bin/bash -lc echo "===== VM160 LOCAL ROOT CAUSE ====="; echo "TIME=$(date -Is)"; echo "===== HEALTH ====="; cat /var/lib/homelab-health/vm160-remote-backup.txt 2>/dev/null || echo "HEALTH_FILE_MISSING"; echo "===== TEMP LOG ====="; f="$(find /tmp -maxdepth 1 -type f -name "vm160-remote-backup.*.log" -printf "%T@|%p\n" 2>/dev/null | sort -t"|" -k1,1nr | head -n1 | cut -d"|" -f2-)"; if [ -n "$f" ] && [ -r "$f" ]; then stat -c "FILE=%n SIZE=%s MTIME=%y" "$f"; tail -n 200 "$f"; else echo "TEMP_LOG_MISSING"; fi; echo "===== SCRIPT FAILURE PATHS ====="; grep -nE "set -|trap|flock|ssh|vzdump|exit|return|STATUS=FAIL|rm -rf|mktemp" /usr/local/sbin/homelab-vm160-remote-backup 2>/dev/null; echo "===== CURRENT PROCESS ====="; ps -eo pid,etime,stat,args | grep -E "[h]omelab-vm160-remote-backup|[v]zdump.*160" || echo "PROCESS_PRESENT=no"; echo "CHANGES_MADE=NO"; true
CHANGES_MADE=NO
OUTPUT_END
CHAT_OUTPUT_END