{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-RUNTIME-DRIFT-RCA-405R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", "component": "infra-dr-backupv2-pve-lxc-perlpin-runtime-drift-rca", "started_at_utc": "2026-09-15T06:27:18Z", "finished_at_utc": "2026-09-15T06:27:29Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", "command_sha256": "5e5d0d3d26aa47dd9f272f130bc5ffe09cff46ca15687eb3db52d5337a7df8a5", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, "change_declared": false, "result_contract_valid": true, "result_contract_status": null, "result_contract_error": null, "command_rc": 0, "changes_made": false, "rollback_started": false, "rollback_restored": null, "mutation_outcome": "NO_MUTATION", "sanitized": true, "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, "raw_evidence_sha256": "7d3ed5b87e0c41689d94681dc882915d788e042a42eaf2aa19ec6781e4bcd8bb", "sanitized_output_sha256": "7d3ed5b87e0c41689d94681dc882915d788e042a42eaf2aa19ec6781e4bcd8bb", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", "output": "COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-RUNTIME-DRIFT-RCA-405R1\nMODE=READ_ONLY_PVE_LXC_PERLPIN_RUNTIME_DRIFT_RCA\nNO_BACKUP_EXECUTION=YES\nNO_CLOUD_ACCESS=YES\nNO_SYSTEMD_MUTATION=YES\nANCHOR_BINDINGS=[true,true,true]\nPERL_META={\"dev\":64513,\"gid\":0,\"ino\":5112044,\"mode\":\"0755\",\"nlink\":2,\"path\":\"/usr/bin/perl\",\"sha256\":\"2e341d06b8e72eae72cd72da47b38ba1174bedc83904ab177fe8fd9f89f220cd\",\"size\":3931280,\"uid\":0}\nPERL_ALIAS_META={\"dev\":64513,\"gid\":0,\"ino\":5112044,\"mode\":\"0755\",\"nlink\":2,\"path\":\"/usr/bin/perl5.40.1\",\"sha256\":\"2e341d06b8e72eae72cd72da47b38ba1174bedc83904ab177fe8fd9f89f220cd\",\"size\":3931280,\"uid\":0}\nPERL_HARDLINK_PAIR=PASS\nPROC_MOUNT=[{\"mount_options\":[\"relatime\",\"rw\"],\"mountpoint\":\"/proc\",\"super_options\":[\"rw\"]}]\nPROC_NOEXEC=NO\nPYTHON_RUNTIME={\"executable\":\"/usr/bin/python3\",\"execve_supports_fd\":true,\"version\":[3,13,5]}\nDIRECT_PERL_EXEC={\"rc\":0,\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"}\nPROC_FD_PERL_EXEC={\"rc\":0,\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"}\nFD_EXECVE_PERL={\"rc\":0,\"supported\":true}\nPERL270_STRUCTURED_TEST={\"rc\":0,\"result\":{\"errors\":[{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_02_pair_is_read_pinned\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_03_old_private_guard_unchanged\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_18_replacement_rejected_before_execution\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_19_mode_drift_rejected\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_20_content_drift_rejected\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_21_exec_real_perl_via_fd\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_22_return_code_preserved\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_23_stdout_bound\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_24_stderr_never_returned\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_25_timeout\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_26_environment_not_inherited\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_27_no_file_descriptors_leaked\"},{\"errno\":null,\"exception_class\":\"pve265.PVEError\",\"frames\":[{\"file\":\"test_perl270.py\",\"func\":\"pin\",\"line\":17},{\"file\":\"pve270.py\",\"func\":\"__init__\",\"line\":69},{\"file\":\"pve265.py\",\"func\":\"need\",\"line\":32}],\"test\":\"test_29_alias_changed_while_open\"}],\"failures\":[],\"tests_run\":30},\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"}\nPERL270_ERROR_CLASS_COUNTS={\"pve265.PVEError\":13}\nRCA_PERLPIN=PERL270_TEST_OTHER_RUNTIME_DRIFT\nSTATUS=OK\nPHASE=COMPLETE\nREASON=NONE\nNEXT_GATE=PVE_LXC_PERLPIN_RUNTIME_FOLLOWUP\nCHANGES_MADE=false\nMUTATION_OUTCOME=NO_MUTATION\nBACKUP_EXECUTIONS=0\nCLOUD_WRITES=0\nCLOUD_DELETIONS=0\nSYSTEMD_MUTATIONS=0\nSCHEDULER_CUTOVER=NO\nLEGACY_BACKUP_DISABLES=0\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-RUNTIME-DRIFT-RCA-405R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" }