1
0

runtime: publish NEWFI-260922-NEWFDOM-DR221-418-OWNER-FD-PHASE-RCA419R1

This commit is contained in:
homelab-runtime-publisher
2026-09-22 14:41:08 +00:00
parent bf34449743
commit feb359175b
4 changed files with 638 additions and 189 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,314 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=NEWFI-260922-NEWFDOM-DR221-418-OWNER-FD-PHASE-RCA419R1
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=newfi-dr221-418-owner-fd-phase-rca
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=086ee022e9b084cfd4a2a9e59bd32b52470059e7d8713bec3b59065215adf353
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=0
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=ff062154f98216b8725381d01e1dd68d7dcceaa4097f2011a73103ceb6b600ad
SANITIZED_OUTPUT_SHA256=ff062154f98216b8725381d01e1dd68d7dcceaa4097f2011a73103ceb6b600ad
OUTPUT_BEGIN
NEWFI419_BEGIN=true
COMMAND_ID=NEWFI-260922-NEWFDOM-DR221-418-OWNER-FD-PHASE-RCA419R1
MODE=read-only
COMPONENT=newfi-dr221-418-owner-fd-phase-rca
TARGET=EXACT_CURRENT_HOMELAB_BACKUP_V2_OWNER_PHASE_AND_PROGRESS
MUTATION_BOUNDARY=NONE;PROC_AND_SOURCE_READ_ONLY;NO_SIGNAL;NO_PTRACE;NO_KILL;NO_SYSTEMD_ACTION;NO_BACKUP;NO_CLOUD_WRITE;NO_VM_WRITE;NO_GIT_WRITE
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
BACKUP_WRAPPER_SHA256=5077444065c732451cb84898680f62361b21a24ef9eb4f191253e82ead524ea2
ACCEPTED_RELEASE=/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b
ACCEPTED_RELEASE_GATE=PASS
RUNTIME_SOURCE_PHASE_HINTS_BEGIN=true
RUNTIME_SOURCE_FILE=entry504.py|SHA256=ca6876fa9c3b1465b045344a8ad46962de16972c7dadc4ac6257c7d225047793
1-from __future__ import annotations
2:import hashlib, importlib, json, os, pathlib, stat, sys, types
3-
4-BASE=pathlib.Path('/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1')
--
16-
17-def _sha(p):
18: h=hashlib.sha256()
19- with open(p,'rb',buffering=0) as f:
20- while True:
--
41- def __setattr__(self,n,v): self._g[n]=v
42-
43:def _wire(wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,base=BASE):
44- legacy_path=(pathlib.Path(base)/'legacy_engine.py').resolve()
45- found={}
--
48- g=vars(value); raw=g.get('__file__')
49- elif isinstance(value,types.FunctionType):
50: g=value.__globals__; raw=g.get('__file__')
51- else:
52- continue
--
79- if g.get('choose_due_target') is not scheduler_wired['choose_due_target'] or g.get('write_state') is not scheduler_wired['write_state']:
80- raise RuntimeError('SCHEDULER_ADAPTER_BIND_RESULT')
81: return {'legacy_globals':g,'legacy':proxy,'original_capture':original,'qemu_patched_capture':qemu_patched,'patched_capture':patched,'scheduler_wired':scheduler_wired}
82-
83-def _load():
--
86- sys.path.insert(0,str(BASE))
87- wrapper=importlib.import_module('wrapper')
88: # Baseline accepted wrapper selftest stays the compatibility gate; no full old legacy selftest is reintroduced.
89: wrapper.selftest()
90- sys.path.insert(0,str(HERE))
91- lxc_adapter=importlib.import_module('lxc_adapter')
--
97- return wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,wired
98-
99:def _target(wrapper,lid):
100- rows=wrapper.load_targets(); hits=[x for x in rows if x.get('logical_id')==lid]
101- if len(hits)!=1: raise RuntimeError('TARGET_CARDINALITY')
102- return hits[0]
103-
104:def selftest():
105- wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,wired=_load()
106: if wired['legacy_globals'].get('capture_pve_guest') is not wired['patched_capture']:
107- raise RuntimeError('PATCH_BINDING')
108: if wired['legacy_globals'].get('choose_due_target') is not wired['scheduler_wired']['choose_due_target']:
109- raise RuntimeError('SCHEDULER_CHOOSE_BINDING')
110: if wired['legacy_globals'].get('write_state') is not wired['scheduler_wired']['write_state']:
111- raise RuntimeError('SCHEDULER_WRITE_BINDING')
112- if [scheduler_adapter.backoff_seconds(n) for n in range(1,7)]!=[1800,3600,7200,14400,21600,21600]:
--
119-def main(argv=None):
120- argv=list(sys.argv[1:] if argv is None else argv)
121: if argv==['selftest']:
122: return selftest()
123- wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,wired=_load()
124- legacy=wired['legacy']
125- if argv==['scheduler-proof']:
126- import tempfile
127: legacy=wired['legacy']; g=wired['legacy_globals']
128- old_root=g.get('STATE_ROOT'); old_epoch=g.get('epoch')
129- if old_root is None or not callable(old_epoch): raise RuntimeError('SCHEDULER_PROOF_BASE')
--
133- g['STATE_ROOT']=pathlib.Path(td); (g['STATE_ROOT']/'state').mkdir(mode=0o700)
134- g['epoch']=lambda: now[0]
135: common={'payload_sha256':'a'*64,'manifest_sha256':'b'*64,'replicas':['proof-r1','proof-r2']}
136- legacy.write_state('proof-a','SUCCESS',generation='proof-a-good',**common)
137- legacy.write_state('proof-b','SUCCESS',generation='proof-b-good',**common)
RUNTIME_SOURCE_FILE=scheduler_adapter.py|SHA256=a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96
35- if prior.get('result')=='SUCCESS':
36- out={'last_success_epoch':_as_nonneg_int(prior.get('last_success_epoch'),0)}
37: mapping=(('generation','last_success_generation'),('payload_sha256','last_success_payload_sha256'),
38: ('manifest_sha256','last_success_manifest_sha256'),('replicas','last_success_replicas'),
39- ('green_verified','last_success_green_verified'))
40- for src,dst in mapping:
--
42- return out
43- out={}
44: for k in ('last_success_epoch','last_success_generation','last_success_payload_sha256',
45: 'last_success_manifest_sha256','last_success_replicas','last_success_green_verified'):
46- if k in prior: out[k]=prior[k]
47- return out
--
53- _need(hasattr(legacy,'STATE_ROOT'),'LEGACY_STATE_ROOT_REQUIRED')
54-
55: def choose_due_target(targets,state,now=None):
56- now=_as_nonneg_int(legacy.epoch() if now is None else now,0)
57- _need(isinstance(targets,list) and isinstance(state,dict),'SCHEDULER_INPUT_SCHEMA')
RUNTIME_SOURCE_FILE=producer_exec_helper.py|SHA256=b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3
1-from __future__ import annotations
2:import hashlib, json, os, pathlib, sys
3-
4-BASE=pathlib.Path('/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411')
--
8-
9-def sha_file(p:pathlib.Path)->str:
10: h=hashlib.sha256()
11- with open(p,'rb',buffering=0) as f:
12- for b in iter(lambda:f.read(1<<20),b''): h.update(b)
--
19- p=parent/'PRODUCER_PROCESS.json'
20- if not p.is_file() or p.is_symlink(): return None
21: try: d=json.loads(p.read_bytes())
22- except Exception: return {'summary_read':'FAILED'}
23: keys=('process_started','producer_rc','capture_success','archive_bytes','stderr_bytes_observed','stderr_bytes_retained','stderr_truncated','stderr_stream_sha256','raw_stderr_exported','child_umask')
24- return {k:d.get(k) for k in keys if k in d}
25-
26:def selftest()->int:
27- if sha_file(VZDUMP)!=VZDUMP_SHA: fail('VZDUMP_IDENTITY')
28- sys.path.insert(0,str(BASE))
--
33-
34-def main()->int:
35: if sys.argv[1:]==['selftest']: return selftest()
36- if sys.argv[1:]: fail('ARGC')
37- raw=sys.stdin.buffer.read(MAX_INPUT+1)
--
61- except Exception as e:
62- out={'status':'FAIL','exception_class':type(e).__module__+'.'+type(e).__name__,
63: 'exception_message_sha256':hashlib.sha256(str(e).encode()).hexdigest(),
64- 'process':safe_process_summary(dest.parent)}
65- print(json.dumps(out,separators=(',',':'),sort_keys=True),flush=True)
--
70- except Exception as e:
71- print(json.dumps({'status':'FAIL','exception_class':type(e).__module__+'.'+type(e).__name__,
72: 'exception_message_sha256':hashlib.sha256(str(e).encode()).hexdigest(),
73- 'process':None},separators=(',',':'),sort_keys=True),flush=True)
74- raise SystemExit(2)
RUNTIME_SOURCE_PHASE_HINTS_END=true
MainPID=335341
Result=success
ExecMainStartTimestamp=Tue 2026-09-22 14:51:24 MSK
ExecMainExitTimestamp=
ExecMainPID=335341
ExecMainStatus=0
LoadState=loaded
ActiveState=activating
SubState=start
InvocationID=124bde99379341a1bf82f318f31f9621
OWNER_PID_START=335341
OWNER_INVOCATION_ID=124bde99379341a1bf82f318f31f9621
HEAVY_LOCK_START=BUSY
CURRENT_INVOCATION_JOURNAL_LINES=1
CURRENT_INVOCATION_JOURNAL_SHA256=25b081a572c3c2feb67855d9294cbfad87cb01cd703b722db59fce65e936bf6b
CURRENT_INVOCATION_JOURNAL_BEGIN=true
2026-09-22T14:51:25+03:00 pve01 homelab-backup-v2[335341]: SELFTEST_REPLACEMENT486=PASS
CURRENT_INVOCATION_JOURNAL_END=true
CURRENT_INVOCATION_SELFTEST_PASS=true
CURRENT_INVOCATION_TARGET_SEEN=false
CURRENT_INVOCATION_RESULT_SEEN=false
CURRENT_INVOCATION_LATEST_TARGET=NONE
PROC_SNAPSHOT_BEGIN=A
PROC_PRESENT_A=true
335341 1 10152 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
WCHAN_A=poll_schedule_timeout.constprop.0
SYSCALL_A=7 [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR]
IO_A_rchar=2172298800
IO_A_wchar=1354968903
IO_A_syscr=838052
IO_A_syscw=96420
IO_A_read_bytes=0
IO_A_write_bytes=570032128
STATUS_A_STATE=S
CTX_A_VOL=31893
CTX_A_INVOL=288
FD_COUNT_A=7
FD_A|fd=0|cat=DEV|pos=0|size=0|base=null|path_sha16=fd5d32feb2d35625
FD_A|fd=1|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_A|fd=2|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_A|fd=3|cat=BACKUP_RUN|pos=0|size=0|base=homelab-backup-heavy.lock|path_sha16=2642241b0beaa737
FD_A|fd=4|cat=OTHER_FILE|pos=570032128|size=570032128|base=payload.tar.zst|path_sha16=a5bf89245089a1c8
FD_A|fd=5|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=18f487fd1dca338f
FD_A|fd=7|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=6f3886873903d4f2
CHILDREN_A
903072 335341 1 S ssh /usr/bin/ssh -o BatchMode=yes -o StrictHostKeyChecking=yes root@pve02 PATH=/usr/sbin:/usr/bin:/sbin:/bin; export PATH; exec qm guest exec 160 --synchronous 1 --timeout 60 -- /usr/bin/python3 -I -B -c 'import base64,sys; p=sys.argv[1]; o=int(sys.argv[2]); n=int(sys.argv[3]); f=open(p,'"'"'rb'"'"'); f.seek(o); b=f.read(n); f.close(); sys.stdout.write(base64.b64encode(b).decode())' /tmp/homelab-v2-xf-0922T115125Z1b7415a2313b.tar.zst 570032128 131072
SOCKETS_A
PROC_SNAPSHOT_END=A
PROC_SNAPSHOT_BEGIN=B
PROC_PRESENT_B=true
335341 1 10167 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
WCHAN_B=poll_schedule_timeout.constprop.0
SYSCALL_B=7 [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR]
IO_B_rchar=2175695809
IO_B_wchar=1357149803
IO_B_syscr=839397
IO_B_syscw=96576
IO_B_read_bytes=0
IO_B_write_bytes=570949632
STATUS_B_STATE=S
CTX_B_VOL=31943
CTX_B_INVOL=288
FD_COUNT_B=7
FD_B|fd=0|cat=DEV|pos=0|size=0|base=null|path_sha16=fd5d32feb2d35625
FD_B|fd=1|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_B|fd=2|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_B|fd=3|cat=BACKUP_RUN|pos=0|size=0|base=homelab-backup-heavy.lock|path_sha16=2642241b0beaa737
FD_B|fd=4|cat=OTHER_FILE|pos=570949632|size=570949632|base=payload.tar.zst|path_sha16=a5bf89245089a1c8
FD_B|fd=5|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=3a74719a8d200544
FD_B|fd=7|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=27db66d36b35c3d5
CHILDREN_B
903386 335341 0 S ssh /usr/bin/ssh -o BatchMode=yes -o StrictHostKeyChecking=yes root@pve02 PATH=/usr/sbin:/usr/bin:/sbin:/bin; export PATH; exec qm guest exec 160 --synchronous 1 --timeout 60 -- /usr/bin/python3 -I -B -c 'import base64,sys; p=sys.argv[1]; o=int(sys.argv[2]); n=int(sys.argv[3]); f=open(p,'"'"'rb'"'"'); f.seek(o); b=f.read(n); f.close(); sys.stdout.write(base64.b64encode(b).decode())' /tmp/homelab-v2-xf-0922T115125Z1b7415a2313b.tar.zst 570949632 131072
SOCKETS_B
PROC_SNAPSHOT_END=B
PROC_SNAPSHOT_BEGIN=C
PROC_PRESENT_C=true
335341 1 10182 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
WCHAN_C=poll_schedule_timeout.constprop.0
SYSCALL_C=7 [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR]
IO_C_rchar=2178607641
IO_C_wchar=1359019147
IO_C_syscr=840546
IO_C_syscw=96707
IO_C_read_bytes=0
IO_C_write_bytes=571736064
STATUS_C_STATE=S
CTX_C_VOL=31987
CTX_C_INVOL=288
FD_COUNT_C=7
FD_C|fd=0|cat=DEV|pos=0|size=0|base=null|path_sha16=fd5d32feb2d35625
FD_C|fd=1|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_C|fd=2|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_C|fd=3|cat=BACKUP_RUN|pos=0|size=0|base=homelab-backup-heavy.lock|path_sha16=2642241b0beaa737
FD_C|fd=4|cat=OTHER_FILE|pos=571736064|size=571736064|base=payload.tar.zst|path_sha16=a5bf89245089a1c8
FD_C|fd=5|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=e931a2a362f85fd8
FD_C|fd=7|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=8d16e18acde67925
CHILDREN_C
903565 335341 1 S ssh /usr/bin/ssh -o BatchMode=yes -o StrictHostKeyChecking=yes root@pve02 PATH=/usr/sbin:/usr/bin:/sbin:/bin; export PATH; exec qm guest exec 160 --synchronous 1 --timeout 60 -- /usr/bin/python3 -I -B -c 'import base64,sys; p=sys.argv[1]; o=int(sys.argv[2]); n=int(sys.argv[3]); f=open(p,'"'"'rb'"'"'); f.seek(o); b=f.read(n); f.close(); sys.stdout.write(base64.b64encode(b).decode())' /tmp/homelab-v2-xf-0922T115125Z1b7415a2313b.tar.zst 571736064 131072
SOCKETS_C
PROC_SNAPSHOT_END=C
OWNER_END_STATE|active=activating|sub=start|pid=335341|heavy=BUSY
PID_STABLE=true
DELTA_A_B_rchar=3397009
DELTA_A_B_wchar=2180900
DELTA_A_B_syscr=1345
DELTA_A_B_syscw=156
DELTA_A_B_read_bytes=0
DELTA_A_B_write_bytes=917504
DELTA_B_C_rchar=2911832
DELTA_B_C_wchar=1869344
DELTA_B_C_syscr=1149
DELTA_B_C_syscw=131
DELTA_B_C_read_bytes=0
DELTA_B_C_write_bytes=786432
DELTA_A_C_rchar=6308841
DELTA_A_C_wchar=4050244
DELTA_A_C_syscr=2494
DELTA_A_C_syscw=287
DELTA_A_C_read_bytes=0
DELTA_A_C_write_bytes=1703936
INTERNAL_IO_PROGRESS_30S=true
CURRENT_INVOCATION_END_JOURNAL_LINES=1
CURRENT_INVOCATION_END_JOURNAL_BEGIN=true
2026-09-22T14:51:25+03:00 pve01 homelab-backup-v2[335341]: SELFTEST_REPLACEMENT486=PASS
CURRENT_INVOCATION_END_JOURNAL_END=true
END_INVOCATION_SELFTEST_PASS=true
END_INVOCATION_TARGET_SEEN=false
END_INVOCATION_LATEST_TARGET=NONE
OWNER_PHASE=ACTIVE_AFTER_SELFTEST_BEFORE_TARGET_MARKER
DECISION=PASS_DR221_419_OWNER_PRETARGET_INTERNAL_IO_PROVEN
NEXT_GATE=WAIT_NATURAL_OWNER_COMPLETION_THEN_REISSUE_VM210_MEMBERSHIP_AND_FRESH_BACKUP
CHANGES_MADE_BY_419=false
PRODUCT_MUTATION_BY_419=false
VM_MUTATION_BY_419=false
CLOUD_MUTATION_BY_419=false
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"NEWFI-260922-NEWFDOM-DR221-418-OWNER-FD-PHASE-RCA419R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
NEWFI419_END=true
OUTPUT_END
CHAT_OUTPUT_END
+11 -11
View File
File diff suppressed because one or more lines are too long
+275 -178
View File
@@ -1,22 +1,22 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=NEWFI-260922-NEWFDOM-DR221-417-OWNER-PROGRESS-RCA418R1
STATUS=FAIL
RC=3
COMMAND_ID=NEWFI-260922-NEWFDOM-DR221-418-OWNER-FD-PHASE-RCA419R1
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=newfi-dr221-417-owner-progress-rca
COMPONENT=newfi-dr221-418-owner-fd-phase-rca
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=4a6ffa7e4be488f5525dbf860d798530d452370e871c3254cb9cb85347478085
COMMAND_SHA256=086ee022e9b084cfd4a2a9e59bd32b52470059e7d8713bec3b59065215adf353
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=3
COMMAND_RC=0
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
@@ -24,20 +24,154 @@ MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=9d7580ec86a29179a350ddd8360e39c55433c24b55cc87af9923dde088f53054
SANITIZED_OUTPUT_SHA256=9d7580ec86a29179a350ddd8360e39c55433c24b55cc87af9923dde088f53054
RAW_EVIDENCE_SHA256=ff062154f98216b8725381d01e1dd68d7dcceaa4097f2011a73103ceb6b600ad
SANITIZED_OUTPUT_SHA256=ff062154f98216b8725381d01e1dd68d7dcceaa4097f2011a73103ceb6b600ad
OUTPUT_BEGIN
NEWFI418_BEGIN=true
COMMAND_ID=NEWFI-260922-NEWFDOM-DR221-417-OWNER-PROGRESS-RCA418R1
NEWFI419_BEGIN=true
COMMAND_ID=NEWFI-260922-NEWFDOM-DR221-418-OWNER-FD-PHASE-RCA419R1
MODE=read-only
COMPONENT=newfi-dr221-417-owner-progress-rca
TARGET_FAILURE=NEWFI-260922-NEWFDOM-DR221-VM210-MEMBERSHIP-BACKUP417R1:OWNER_NOT_QUIESCENT
MUTATION_BOUNDARY=NONE;NO_SIGNAL;NO_KILL;NO_SYSTEMD_ACTION;NO_BACKUP;NO_CLOUD_WRITE;NO_VM_WRITE;NO_GIT_WRITE
COMPONENT=newfi-dr221-418-owner-fd-phase-rca
TARGET=EXACT_CURRENT_HOMELAB_BACKUP_V2_OWNER_PHASE_AND_PROGRESS
MUTATION_BOUNDARY=NONE;PROC_AND_SOURCE_READ_ONLY;NO_SIGNAL;NO_PTRACE;NO_KILL;NO_SYSTEMD_ACTION;NO_BACKUP;NO_CLOUD_WRITE;NO_VM_WRITE;NO_GIT_WRITE
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
BACKUP_WRAPPER_SHA256=5077444065c732451cb84898680f62361b21a24ef9eb4f191253e82ead524ea2
OWNER_SNAPSHOT_BEGIN=A
ACCEPTED_RELEASE=/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b
ACCEPTED_RELEASE_GATE=PASS
RUNTIME_SOURCE_PHASE_HINTS_BEGIN=true
RUNTIME_SOURCE_FILE=entry504.py|SHA256=ca6876fa9c3b1465b045344a8ad46962de16972c7dadc4ac6257c7d225047793
1-from __future__ import annotations
2:import hashlib, importlib, json, os, pathlib, stat, sys, types
3-
4-BASE=pathlib.Path('/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1')
--
16-
17-def _sha(p):
18: h=hashlib.sha256()
19- with open(p,'rb',buffering=0) as f:
20- while True:
--
41- def __setattr__(self,n,v): self._g[n]=v
42-
43:def _wire(wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,base=BASE):
44- legacy_path=(pathlib.Path(base)/'legacy_engine.py').resolve()
45- found={}
--
48- g=vars(value); raw=g.get('__file__')
49- elif isinstance(value,types.FunctionType):
50: g=value.__globals__; raw=g.get('__file__')
51- else:
52- continue
--
79- if g.get('choose_due_target') is not scheduler_wired['choose_due_target'] or g.get('write_state') is not scheduler_wired['write_state']:
80- raise RuntimeError('SCHEDULER_ADAPTER_BIND_RESULT')
81: return {'legacy_globals':g,'legacy':proxy,'original_capture':original,'qemu_patched_capture':qemu_patched,'patched_capture':patched,'scheduler_wired':scheduler_wired}
82-
83-def _load():
--
86- sys.path.insert(0,str(BASE))
87- wrapper=importlib.import_module('wrapper')
88: # Baseline accepted wrapper selftest stays the compatibility gate; no full old legacy selftest is reintroduced.
89: wrapper.selftest()
90- sys.path.insert(0,str(HERE))
91- lxc_adapter=importlib.import_module('lxc_adapter')
--
97- return wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,wired
98-
99:def _target(wrapper,lid):
100- rows=wrapper.load_targets(); hits=[x for x in rows if x.get('logical_id')==lid]
101- if len(hits)!=1: raise RuntimeError('TARGET_CARDINALITY')
102- return hits[0]
103-
104:def selftest():
105- wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,wired=_load()
106: if wired['legacy_globals'].get('capture_pve_guest') is not wired['patched_capture']:
107- raise RuntimeError('PATCH_BINDING')
108: if wired['legacy_globals'].get('choose_due_target') is not wired['scheduler_wired']['choose_due_target']:
109- raise RuntimeError('SCHEDULER_CHOOSE_BINDING')
110: if wired['legacy_globals'].get('write_state') is not wired['scheduler_wired']['write_state']:
111- raise RuntimeError('SCHEDULER_WRITE_BINDING')
112- if [scheduler_adapter.backoff_seconds(n) for n in range(1,7)]!=[1800,3600,7200,14400,21600,21600]:
--
119-def main(argv=None):
120- argv=list(sys.argv[1:] if argv is None else argv)
121: if argv==['selftest']:
122: return selftest()
123- wrapper,lxc_adapter,qemu_adapter,scheduler_adapter,wired=_load()
124- legacy=wired['legacy']
125- if argv==['scheduler-proof']:
126- import tempfile
127: legacy=wired['legacy']; g=wired['legacy_globals']
128- old_root=g.get('STATE_ROOT'); old_epoch=g.get('epoch')
129- if old_root is None or not callable(old_epoch): raise RuntimeError('SCHEDULER_PROOF_BASE')
--
133- g['STATE_ROOT']=pathlib.Path(td); (g['STATE_ROOT']/'state').mkdir(mode=0o700)
134- g['epoch']=lambda: now[0]
135: common={'payload_sha256':'a'*64,'manifest_sha256':'b'*64,'replicas':['proof-r1','proof-r2']}
136- legacy.write_state('proof-a','SUCCESS',generation='proof-a-good',**common)
137- legacy.write_state('proof-b','SUCCESS',generation='proof-b-good',**common)
RUNTIME_SOURCE_FILE=scheduler_adapter.py|SHA256=a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96
35- if prior.get('result')=='SUCCESS':
36- out={'last_success_epoch':_as_nonneg_int(prior.get('last_success_epoch'),0)}
37: mapping=(('generation','last_success_generation'),('payload_sha256','last_success_payload_sha256'),
38: ('manifest_sha256','last_success_manifest_sha256'),('replicas','last_success_replicas'),
39- ('green_verified','last_success_green_verified'))
40- for src,dst in mapping:
--
42- return out
43- out={}
44: for k in ('last_success_epoch','last_success_generation','last_success_payload_sha256',
45: 'last_success_manifest_sha256','last_success_replicas','last_success_green_verified'):
46- if k in prior: out[k]=prior[k]
47- return out
--
53- _need(hasattr(legacy,'STATE_ROOT'),'LEGACY_STATE_ROOT_REQUIRED')
54-
55: def choose_due_target(targets,state,now=None):
56- now=_as_nonneg_int(legacy.epoch() if now is None else now,0)
57- _need(isinstance(targets,list) and isinstance(state,dict),'SCHEDULER_INPUT_SCHEMA')
RUNTIME_SOURCE_FILE=producer_exec_helper.py|SHA256=b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3
1-from __future__ import annotations
2:import hashlib, json, os, pathlib, sys
3-
4-BASE=pathlib.Path('/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411')
--
8-
9-def sha_file(p:pathlib.Path)->str:
10: h=hashlib.sha256()
11- with open(p,'rb',buffering=0) as f:
12- for b in iter(lambda:f.read(1<<20),b''): h.update(b)
--
19- p=parent/'PRODUCER_PROCESS.json'
20- if not p.is_file() or p.is_symlink(): return None
21: try: d=json.loads(p.read_bytes())
22- except Exception: return {'summary_read':'FAILED'}
23: keys=('process_started','producer_rc','capture_success','archive_bytes','stderr_bytes_observed','stderr_bytes_retained','stderr_truncated','stderr_stream_sha256','raw_stderr_exported','child_umask')
24- return {k:d.get(k) for k in keys if k in d}
25-
26:def selftest()->int:
27- if sha_file(VZDUMP)!=VZDUMP_SHA: fail('VZDUMP_IDENTITY')
28- sys.path.insert(0,str(BASE))
--
33-
34-def main()->int:
35: if sys.argv[1:]==['selftest']: return selftest()
36- if sys.argv[1:]: fail('ARGC')
37- raw=sys.stdin.buffer.read(MAX_INPUT+1)
--
61- except Exception as e:
62- out={'status':'FAIL','exception_class':type(e).__module__+'.'+type(e).__name__,
63: 'exception_message_sha256':hashlib.sha256(str(e).encode()).hexdigest(),
64- 'process':safe_process_summary(dest.parent)}
65- print(json.dumps(out,separators=(',',':'),sort_keys=True),flush=True)
--
70- except Exception as e:
71- print(json.dumps({'status':'FAIL','exception_class':type(e).__module__+'.'+type(e).__name__,
72: 'exception_message_sha256':hashlib.sha256(str(e).encode()).hexdigest(),
73- 'process':None},separators=(',',':'),sort_keys=True),flush=True)
74- raise SystemExit(2)
RUNTIME_SOURCE_PHASE_HINTS_END=true
MainPID=335341
Result=success
ExecMainStartTimestamp=Tue 2026-09-22 14:51:24 MSK
@@ -48,170 +182,133 @@ LoadState=loaded
ActiveState=activating
SubState=start
InvocationID=124bde99379341a1bf82f318f31f9621
MAINPID_A=335341
MAINPID_PROC_A=present
335341 1 9526 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
MAINPID_IO_A_rchar=2042268866
MAINPID_IO_A_wchar=1271471823
MAINPID_IO_A_syscr=786464
MAINPID_IO_A_syscw=90470
MAINPID_IO_A_read_bytes=0
MAINPID_IO_A_write_bytes=534904832
MAINPID_STAT_A_UTIME=273
MAINPID_STAT_A_STIME=78
PROCESS_TREE_A
335341 1 9526 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
HEAVY_LOCK_HOLDERS_A
HEAVY_LOCK_A=BUSY
JOURNAL_A_LINES=220
JOURNAL_A_SHA256=cd10cf61914d21797c6a1f23a43639a2ea6d514a82cd2d4062170cfb3ace9e04
JOURNAL_A_TAIL_BEGIN=true
2026-09-21T23:25:05+03:00 pve01 homelab-backup-v2[1454793]: SCHEDULE_TARGET=xf-zakrutim
2026-09-21T23:25:05+03:00 pve01 homelab-backup-v2[1454793]: SCHEDULE_RESULT=SUCCESS
2026-09-21T23:25:27+03:00 pve01 vzdump[1496015]: <root@pam> starting task UPID:pve01:0016D3D0:0C81F46A:6AB192B7:vzdump:110:root@pam:
2026-09-21T23:25:27+03:00 pve01 vzdump[1496016]: INFO: starting new backup job: vzdump 110 --remove 0 --prune-backups 'keep-all=1' --compress zstd --tmpdir /var/tmp/homelab-vzdump-v2-v2-ct110-20260921T202514Z-1c872adccfab --mode snapshot --stdexcludes 0 --bwlimit 32768 --ionice 7 --node pve01 --zstd 1 --lockwait 0
2026-09-21T23:25:27+03:00 pve01 vzdump[1496016]: INFO: Starting Backup of VM 110 (lxc)
2026-09-21T23:27:32+03:00 pve01 vzdump[1496016]: INFO: Finished Backup of VM 110 (00:02:05)
2026-09-21T23:27:32+03:00 pve01 vzdump[1496016]: INFO: Backup job finished successfully
2026-09-21T23:27:32+03:00 pve01 vzdump[1496015]: <root@pam> end task UPID:pve01:0016D3D0:0C81F46A:6AB192B7:vzdump:110:root@pam: OK
2026-09-21T23:27:32+03:00 pve01 homelab-backup-v2[1495880]: SCHEDULE_TARGET=ct110
2026-09-21T23:28:28+03:00 pve01 homelab-backup-v2[1495880]: SCHEDULE_RESULT=SUCCESS
2026-09-21T23:30:13+03:00 pve01 homelab-backup-v2[1511723]: SCHEDULE_TARGET=ct111
2026-09-21T23:30:55+03:00 pve01 homelab-backup-v2[1511723]: SCHEDULE_RESULT=SUCCESS
2026-09-22T00:04:00+03:00 pve01 vzdump[1627437]: <root@pam> starting task UPID:pve01:0018D52E:0C857BF7:6AB19BC0:vzdump:210:root@pam:
2026-09-22T00:04:00+03:00 pve01 vzdump[1627438]: INFO: starting new backup job: vzdump 210 --mode snapshot --compress zstd --dumpdir /var/tmp/homelab-vzdump-v2-v2-vm210-20260921T210359Z-571fa9dac984
2026-09-22T00:04:00+03:00 pve01 vzdump[1627438]: INFO: Starting Backup of VM 210 (qemu)
2026-09-22T00:04:14+03:00 pve01 vzdump[1627438]: INFO: Finished Backup of VM 210 (00:00:14)
2026-09-22T00:04:14+03:00 pve01 vzdump[1627438]: INFO: Backup job finished successfully
2026-09-22T00:04:14+03:00 pve01 vzdump[1627437]: <root@pam> end task UPID:pve01:0018D52E:0C857BF7:6AB19BC0:vzdump:210:root@pam: OK
2026-09-22T00:04:14+03:00 pve01 homelab-backup-v2[1627342]: SCHEDULE_TARGET=vm210
2026-09-22T00:05:17+03:00 pve01 homelab-backup-v2[1627342]: SCHEDULE_RESULT=SUCCESS
2026-09-22T02:00:53+03:00 pve01 vzdump[2000007]: <root@pam> starting task UPID:pve01:001E8488:0C902F77:6AB1B725:vzdump:170:root@pam:
2026-09-22T02:00:53+03:00 pve01 vzdump[2000008]: INFO: starting new backup job: vzdump 170 --mode snapshot --dumpdir /var/tmp/homelab-vzdump-v2-v2-vm170-20260921T230052Z-7b6556baa842 --compress zstd
2026-09-22T02:00:53+03:00 pve01 vzdump[2000008]: INFO: Starting Backup of VM 170 (qemu)
2026-09-22T02:02:23+03:00 pve01 vzdump[2000008]: INFO: Finished Backup of VM 170 (00:01:30)
2026-09-22T02:02:23+03:00 pve01 vzdump[2000008]: INFO: Backup job finished successfully
2026-09-22T02:02:23+03:00 pve01 vzdump[2000007]: <root@pam> end task UPID:pve01:001E8488:0C902F77:6AB1B725:vzdump:170:root@pam: OK
2026-09-22T02:02:23+03:00 pve01 homelab-backup-v2[1999915]: SCHEDULE_TARGET=vm170
2026-09-22T02:12:47+03:00 pve01 homelab-backup-v2[1999915]: SCHEDULE_RESULT=SUCCESS
2026-09-22T02:37:13+03:00 pve01 homelab-backup-v2[2121414]: SCHEDULE_TARGET=us-netbird
2026-09-22T02:37:13+03:00 pve01 homelab-backup-v2[2121414]: SCHEDULE_RESULT=FAIL
2026-09-22T02:37:13+03:00 pve01 homelab-backup-v2[2121414]: SCHEDULE_REASON=PIPE_FAILED
2026-09-22T03:46:31+03:00 pve01 homelab-backup-v2[2408783]: SCHEDULE_TARGET=control-bootstrap-v2
2026-09-22T03:46:31+03:00 pve01 homelab-backup-v2[2408783]: SCHEDULE_RESULT=SUCCESS
2026-09-22T04:29:13+03:00 pve01 homelab-backup-v2[2510842]: SCHEDULE_TARGET=vm9130
2026-09-22T04:44:11+03:00 pve01 homelab-backup-v2[2510842]: SCHEDULE_RESULT=SUCCESS
2026-09-22T06:31:51+03:00 pve01 homelab-backup-v2[2931093]: SCHEDULE_TARGET=vm211
2026-09-22T06:32:52+03:00 pve01 homelab-backup-v2[2931093]: SCHEDULE_RESULT=SUCCESS
2026-09-22T07:09:46+03:00 pve01 homelab-backup-v2[3046566]: SCHEDULE_TARGET=node-pve01
2026-09-22T07:09:46+03:00 pve01 homelab-backup-v2[3046566]: SCHEDULE_RESULT=SUCCESS
2026-09-22T08:53:31+03:00 pve01 homelab-backup-v2[3378768]: SCHEDULE_TARGET=us-netbird
2026-09-22T08:53:31+03:00 pve01 homelab-backup-v2[3378768]: SCHEDULE_RESULT=FAIL
2026-09-22T08:53:31+03:00 pve01 homelab-backup-v2[3378768]: SCHEDULE_REASON=PIPE_FAILED
2026-09-22T11:44:22+03:00 pve01 homelab-backup-v2[3608112]: SCHEDULE_TARGET=xf-dsmods
2026-09-22T11:44:22+03:00 pve01 homelab-backup-v2[3608112]: SCHEDULE_RESULT=SUCCESS
2026-09-22T11:54:41+03:00 pve01 homelab-backup-v2[3938337]: SCHEDULE_TARGET=xf-kingofwolk
2026-09-22T11:54:41+03:00 pve01 homelab-backup-v2[3938337]: SCHEDULE_RESULT=SUCCESS
2026-09-22T12:30:38+03:00 pve01 homelab-backup-v2[4066962]: SCHEDULE_TARGET=xf-newfi
2026-09-22T12:30:38+03:00 pve01 homelab-backup-v2[4066962]: SCHEDULE_RESULT=SUCCESS
JOURNAL_A_TAIL_END=true
OWNER_SNAPSHOT_END=A
OWNER_SNAPSHOT_BEGIN=B
MainPID=335341
Result=success
ExecMainStartTimestamp=Tue 2026-09-22 14:51:24 MSK
ExecMainExitTimestamp=
ExecMainPID=335341
ExecMainStatus=0
LoadState=loaded
ActiveState=activating
SubState=start
InvocationID=124bde99379341a1bf82f318f31f9621
MAINPID_B=335341
MAINPID_PROC_B=present
335341 1 9556 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
MAINPID_IO_B_rchar=2048577699
MAINPID_IO_B_wchar=1275522059
MAINPID_IO_B_syscr=788976
MAINPID_IO_B_syscw=90763
MAINPID_IO_B_read_bytes=0
MAINPID_IO_B_write_bytes=536608768
MAINPID_STAT_B_UTIME=274
MAINPID_STAT_B_STIME=78
PROCESS_TREE_B
335341 1 9556 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
HEAVY_LOCK_HOLDERS_B
HEAVY_LOCK_B=BUSY
JOURNAL_B_LINES=220
JOURNAL_B_SHA256=cd10cf61914d21797c6a1f23a43639a2ea6d514a82cd2d4062170cfb3ace9e04
JOURNAL_B_TAIL_BEGIN=true
2026-09-21T23:25:05+03:00 pve01 homelab-backup-v2[1454793]: SCHEDULE_TARGET=xf-zakrutim
2026-09-21T23:25:05+03:00 pve01 homelab-backup-v2[1454793]: SCHEDULE_RESULT=SUCCESS
2026-09-21T23:25:27+03:00 pve01 vzdump[1496015]: <root@pam> starting task UPID:pve01:0016D3D0:0C81F46A:6AB192B7:vzdump:110:root@pam:
2026-09-21T23:25:27+03:00 pve01 vzdump[1496016]: INFO: starting new backup job: vzdump 110 --remove 0 --prune-backups 'keep-all=1' --compress zstd --tmpdir /var/tmp/homelab-vzdump-v2-v2-ct110-20260921T202514Z-1c872adccfab --mode snapshot --stdexcludes 0 --bwlimit 32768 --ionice 7 --node pve01 --zstd 1 --lockwait 0
2026-09-21T23:25:27+03:00 pve01 vzdump[1496016]: INFO: Starting Backup of VM 110 (lxc)
2026-09-21T23:27:32+03:00 pve01 vzdump[1496016]: INFO: Finished Backup of VM 110 (00:02:05)
2026-09-21T23:27:32+03:00 pve01 vzdump[1496016]: INFO: Backup job finished successfully
2026-09-21T23:27:32+03:00 pve01 vzdump[1496015]: <root@pam> end task UPID:pve01:0016D3D0:0C81F46A:6AB192B7:vzdump:110:root@pam: OK
2026-09-21T23:27:32+03:00 pve01 homelab-backup-v2[1495880]: SCHEDULE_TARGET=ct110
2026-09-21T23:28:28+03:00 pve01 homelab-backup-v2[1495880]: SCHEDULE_RESULT=SUCCESS
2026-09-21T23:30:13+03:00 pve01 homelab-backup-v2[1511723]: SCHEDULE_TARGET=ct111
2026-09-21T23:30:55+03:00 pve01 homelab-backup-v2[1511723]: SCHEDULE_RESULT=SUCCESS
2026-09-22T00:04:00+03:00 pve01 vzdump[1627437]: <root@pam> starting task UPID:pve01:0018D52E:0C857BF7:6AB19BC0:vzdump:210:root@pam:
2026-09-22T00:04:00+03:00 pve01 vzdump[1627438]: INFO: starting new backup job: vzdump 210 --mode snapshot --compress zstd --dumpdir /var/tmp/homelab-vzdump-v2-v2-vm210-20260921T210359Z-571fa9dac984
2026-09-22T00:04:00+03:00 pve01 vzdump[1627438]: INFO: Starting Backup of VM 210 (qemu)
2026-09-22T00:04:14+03:00 pve01 vzdump[1627438]: INFO: Finished Backup of VM 210 (00:00:14)
2026-09-22T00:04:14+03:00 pve01 vzdump[1627438]: INFO: Backup job finished successfully
2026-09-22T00:04:14+03:00 pve01 vzdump[1627437]: <root@pam> end task UPID:pve01:0018D52E:0C857BF7:6AB19BC0:vzdump:210:root@pam: OK
2026-09-22T00:04:14+03:00 pve01 homelab-backup-v2[1627342]: SCHEDULE_TARGET=vm210
2026-09-22T00:05:17+03:00 pve01 homelab-backup-v2[1627342]: SCHEDULE_RESULT=SUCCESS
2026-09-22T02:00:53+03:00 pve01 vzdump[2000007]: <root@pam> starting task UPID:pve01:001E8488:0C902F77:6AB1B725:vzdump:170:root@pam:
2026-09-22T02:00:53+03:00 pve01 vzdump[2000008]: INFO: starting new backup job: vzdump 170 --mode snapshot --dumpdir /var/tmp/homelab-vzdump-v2-v2-vm170-20260921T230052Z-7b6556baa842 --compress zstd
2026-09-22T02:00:53+03:00 pve01 vzdump[2000008]: INFO: Starting Backup of VM 170 (qemu)
2026-09-22T02:02:23+03:00 pve01 vzdump[2000008]: INFO: Finished Backup of VM 170 (00:01:30)
2026-09-22T02:02:23+03:00 pve01 vzdump[2000008]: INFO: Backup job finished successfully
2026-09-22T02:02:23+03:00 pve01 vzdump[2000007]: <root@pam> end task UPID:pve01:001E8488:0C902F77:6AB1B725:vzdump:170:root@pam: OK
2026-09-22T02:02:23+03:00 pve01 homelab-backup-v2[1999915]: SCHEDULE_TARGET=vm170
2026-09-22T02:12:47+03:00 pve01 homelab-backup-v2[1999915]: SCHEDULE_RESULT=SUCCESS
2026-09-22T02:37:13+03:00 pve01 homelab-backup-v2[2121414]: SCHEDULE_TARGET=us-netbird
2026-09-22T02:37:13+03:00 pve01 homelab-backup-v2[2121414]: SCHEDULE_RESULT=FAIL
2026-09-22T02:37:13+03:00 pve01 homelab-backup-v2[2121414]: SCHEDULE_REASON=PIPE_FAILED
2026-09-22T03:46:31+03:00 pve01 homelab-backup-v2[2408783]: SCHEDULE_TARGET=control-bootstrap-v2
2026-09-22T03:46:31+03:00 pve01 homelab-backup-v2[2408783]: SCHEDULE_RESULT=SUCCESS
2026-09-22T04:29:13+03:00 pve01 homelab-backup-v2[2510842]: SCHEDULE_TARGET=vm9130
2026-09-22T04:44:11+03:00 pve01 homelab-backup-v2[2510842]: SCHEDULE_RESULT=SUCCESS
2026-09-22T06:31:51+03:00 pve01 homelab-backup-v2[2931093]: SCHEDULE_TARGET=vm211
2026-09-22T06:32:52+03:00 pve01 homelab-backup-v2[2931093]: SCHEDULE_RESULT=SUCCESS
2026-09-22T07:09:46+03:00 pve01 homelab-backup-v2[3046566]: SCHEDULE_TARGET=node-pve01
2026-09-22T07:09:46+03:00 pve01 homelab-backup-v2[3046566]: SCHEDULE_RESULT=SUCCESS
2026-09-22T08:53:31+03:00 pve01 homelab-backup-v2[3378768]: SCHEDULE_TARGET=us-netbird
2026-09-22T08:53:31+03:00 pve01 homelab-backup-v2[3378768]: SCHEDULE_RESULT=FAIL
2026-09-22T08:53:31+03:00 pve01 homelab-backup-v2[3378768]: SCHEDULE_REASON=PIPE_FAILED
2026-09-22T11:44:22+03:00 pve01 homelab-backup-v2[3608112]: SCHEDULE_TARGET=xf-dsmods
2026-09-22T11:44:22+03:00 pve01 homelab-backup-v2[3608112]: SCHEDULE_RESULT=SUCCESS
2026-09-22T11:54:41+03:00 pve01 homelab-backup-v2[3938337]: SCHEDULE_TARGET=xf-kingofwolk
2026-09-22T11:54:41+03:00 pve01 homelab-backup-v2[3938337]: SCHEDULE_RESULT=SUCCESS
2026-09-22T12:30:38+03:00 pve01 homelab-backup-v2[4066962]: SCHEDULE_TARGET=xf-newfi
2026-09-22T12:30:38+03:00 pve01 homelab-backup-v2[4066962]: SCHEDULE_RESULT=SUCCESS
JOURNAL_B_TAIL_END=true
OWNER_SNAPSHOT_END=B
LATEST_SCHEDULE_TARGET=xf-newfi
LATEST_SCHEDULE_TARGET_LINE=196
RESULT_AFTER_LATEST_TARGET=true
LATEST_RESULT_LINE=197
PROGRESS_EVENT_COUNT=30
JOURNAL_PROGRESS_30S=false
ACTIVE_BACKUP_CHILD_PRESENT=false
OWNER_FINAL_STATE|service=activating|sub=start|pid=335341|heavy=BUSY
OWNER_CLASS=ACTIVE_NO_PROGRESS_SIGNAL_30S
DECISION=HOLD_DR221_418_OWNER_STALL_SUSPECTED
NEXT_GATE=RCA_ONLY_CURRENT_BACKUP_TARGET_AND_CHILD_BEFORE_ANY_SERVICE_ACTION
CHANGES_MADE_BY_418=false
PRODUCT_MUTATION_BY_418=false
VM_MUTATION_BY_418=false
CLOUD_MUTATION_BY_418=false
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"NEWFI-260922-NEWFDOM-DR221-417-OWNER-PROGRESS-RCA418R1","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null}
NEWFI418_END=true
OWNER_PID_START=335341
OWNER_INVOCATION_ID=124bde99379341a1bf82f318f31f9621
HEAVY_LOCK_START=BUSY
CURRENT_INVOCATION_JOURNAL_LINES=1
CURRENT_INVOCATION_JOURNAL_SHA256=25b081a572c3c2feb67855d9294cbfad87cb01cd703b722db59fce65e936bf6b
CURRENT_INVOCATION_JOURNAL_BEGIN=true
2026-09-22T14:51:25+03:00 pve01 homelab-backup-v2[335341]: SELFTEST_REPLACEMENT486=PASS
CURRENT_INVOCATION_JOURNAL_END=true
CURRENT_INVOCATION_SELFTEST_PASS=true
CURRENT_INVOCATION_TARGET_SEEN=false
CURRENT_INVOCATION_RESULT_SEEN=false
CURRENT_INVOCATION_LATEST_TARGET=NONE
PROC_SNAPSHOT_BEGIN=A
PROC_PRESENT_A=true
335341 1 10152 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
WCHAN_A=poll_schedule_timeout.constprop.0
SYSCALL_A=7 [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR]
IO_A_rchar=2172298800
IO_A_wchar=1354968903
IO_A_syscr=838052
IO_A_syscw=96420
IO_A_read_bytes=0
IO_A_write_bytes=570032128
STATUS_A_STATE=S
CTX_A_VOL=31893
CTX_A_INVOL=288
FD_COUNT_A=7
FD_A|fd=0|cat=DEV|pos=0|size=0|base=null|path_sha16=fd5d32feb2d35625
FD_A|fd=1|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_A|fd=2|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_A|fd=3|cat=BACKUP_RUN|pos=0|size=0|base=homelab-backup-heavy.lock|path_sha16=2642241b0beaa737
FD_A|fd=4|cat=OTHER_FILE|pos=570032128|size=570032128|base=payload.tar.zst|path_sha16=a5bf89245089a1c8
FD_A|fd=5|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=18f487fd1dca338f
FD_A|fd=7|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=6f3886873903d4f2
CHILDREN_A
903072 335341 1 S ssh /usr/bin/ssh -o BatchMode=yes -o StrictHostKeyChecking=yes root@pve02 PATH=/usr/sbin:/usr/bin:/sbin:/bin; export PATH; exec qm guest exec 160 --synchronous 1 --timeout 60 -- /usr/bin/python3 -I -B -c 'import base64,sys; p=sys.argv[1]; o=int(sys.argv[2]); n=int(sys.argv[3]); f=open(p,'"'"'rb'"'"'); f.seek(o); b=f.read(n); f.close(); sys.stdout.write(base64.b64encode(b).decode())' /tmp/homelab-v2-xf-0922T115125Z1b7415a2313b.tar.zst 570032128 131072
SOCKETS_A
PROC_SNAPSHOT_END=A
PROC_SNAPSHOT_BEGIN=B
PROC_PRESENT_B=true
335341 1 10167 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
WCHAN_B=poll_schedule_timeout.constprop.0
SYSCALL_B=7 [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR]
IO_B_rchar=2175695809
IO_B_wchar=1357149803
IO_B_syscr=839397
IO_B_syscw=96576
IO_B_read_bytes=0
IO_B_write_bytes=570949632
STATUS_B_STATE=S
CTX_B_VOL=31943
CTX_B_INVOL=288
FD_COUNT_B=7
FD_B|fd=0|cat=DEV|pos=0|size=0|base=null|path_sha16=fd5d32feb2d35625
FD_B|fd=1|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_B|fd=2|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_B|fd=3|cat=BACKUP_RUN|pos=0|size=0|base=homelab-backup-heavy.lock|path_sha16=2642241b0beaa737
FD_B|fd=4|cat=OTHER_FILE|pos=570949632|size=570949632|base=payload.tar.zst|path_sha16=a5bf89245089a1c8
FD_B|fd=5|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=3a74719a8d200544
FD_B|fd=7|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=27db66d36b35c3d5
CHILDREN_B
903386 335341 0 S ssh /usr/bin/ssh -o BatchMode=yes -o StrictHostKeyChecking=yes root@pve02 PATH=/usr/sbin:/usr/bin:/sbin:/bin; export PATH; exec qm guest exec 160 --synchronous 1 --timeout 60 -- /usr/bin/python3 -I -B -c 'import base64,sys; p=sys.argv[1]; o=int(sys.argv[2]); n=int(sys.argv[3]); f=open(p,'"'"'rb'"'"'); f.seek(o); b=f.read(n); f.close(); sys.stdout.write(base64.b64encode(b).decode())' /tmp/homelab-v2-xf-0922T115125Z1b7415a2313b.tar.zst 570949632 131072
SOCKETS_B
PROC_SNAPSHOT_END=B
PROC_SNAPSHOT_BEGIN=C
PROC_PRESENT_C=true
335341 1 10182 S 0.0 0.0 homelab-backup- /usr/bin/python3 /usr/local/sbin/homelab-backup-v2 scheduled
WCHAN_C=poll_schedule_timeout.constprop.0
SYSCALL_C=7 [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR] [PTR]
IO_C_rchar=2178607641
IO_C_wchar=1359019147
IO_C_syscr=840546
IO_C_syscw=96707
IO_C_read_bytes=0
IO_C_write_bytes=571736064
STATUS_C_STATE=S
CTX_C_VOL=31987
CTX_C_INVOL=288
FD_COUNT_C=7
FD_C|fd=0|cat=DEV|pos=0|size=0|base=null|path_sha16=fd5d32feb2d35625
FD_C|fd=1|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_C|fd=2|cat=SOCKET|pos=0|size=NA|base=NA|path_sha16=feb8f1e1f9e2ba39
FD_C|fd=3|cat=BACKUP_RUN|pos=0|size=0|base=homelab-backup-heavy.lock|path_sha16=2642241b0beaa737
FD_C|fd=4|cat=OTHER_FILE|pos=571736064|size=571736064|base=payload.tar.zst|path_sha16=a5bf89245089a1c8
FD_C|fd=5|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=e931a2a362f85fd8
FD_C|fd=7|cat=PIPE|pos=0|size=NA|base=NA|path_sha16=8d16e18acde67925
CHILDREN_C
903565 335341 1 S ssh /usr/bin/ssh -o BatchMode=yes -o StrictHostKeyChecking=yes root@pve02 PATH=/usr/sbin:/usr/bin:/sbin:/bin; export PATH; exec qm guest exec 160 --synchronous 1 --timeout 60 -- /usr/bin/python3 -I -B -c 'import base64,sys; p=sys.argv[1]; o=int(sys.argv[2]); n=int(sys.argv[3]); f=open(p,'"'"'rb'"'"'); f.seek(o); b=f.read(n); f.close(); sys.stdout.write(base64.b64encode(b).decode())' /tmp/homelab-v2-xf-0922T115125Z1b7415a2313b.tar.zst 571736064 131072
SOCKETS_C
PROC_SNAPSHOT_END=C
OWNER_END_STATE|active=activating|sub=start|pid=335341|heavy=BUSY
PID_STABLE=true
DELTA_A_B_rchar=3397009
DELTA_A_B_wchar=2180900
DELTA_A_B_syscr=1345
DELTA_A_B_syscw=156
DELTA_A_B_read_bytes=0
DELTA_A_B_write_bytes=917504
DELTA_B_C_rchar=2911832
DELTA_B_C_wchar=1869344
DELTA_B_C_syscr=1149
DELTA_B_C_syscw=131
DELTA_B_C_read_bytes=0
DELTA_B_C_write_bytes=786432
DELTA_A_C_rchar=6308841
DELTA_A_C_wchar=4050244
DELTA_A_C_syscr=2494
DELTA_A_C_syscw=287
DELTA_A_C_read_bytes=0
DELTA_A_C_write_bytes=1703936
INTERNAL_IO_PROGRESS_30S=true
CURRENT_INVOCATION_END_JOURNAL_LINES=1
CURRENT_INVOCATION_END_JOURNAL_BEGIN=true
2026-09-22T14:51:25+03:00 pve01 homelab-backup-v2[335341]: SELFTEST_REPLACEMENT486=PASS
CURRENT_INVOCATION_END_JOURNAL_END=true
END_INVOCATION_SELFTEST_PASS=true
END_INVOCATION_TARGET_SEEN=false
END_INVOCATION_LATEST_TARGET=NONE
OWNER_PHASE=ACTIVE_AFTER_SELFTEST_BEFORE_TARGET_MARKER
DECISION=PASS_DR221_419_OWNER_PRETARGET_INTERNAL_IO_PROVEN
NEXT_GATE=WAIT_NATURAL_OWNER_COMPLETION_THEN_REISSUE_VM210_MEMBERSHIP_AND_FRESH_BACKUP
CHANGES_MADE_BY_419=false
PRODUCT_MUTATION_BY_419=false
VM_MUTATION_BY_419=false
CLOUD_MUTATION_BY_419=false
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"NEWFI-260922-NEWFDOM-DR221-418-OWNER-FD-PHASE-RCA419R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
NEWFI419_END=true
OUTPUT_END
CHAT_OUTPUT_END