diff --git a/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1.json b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1.json new file mode 100644 index 00000000..9d80f88f --- /dev/null +++ b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "infra-dr-backupv2-pve-lxc-perlpin-production-vs-fixture-rca", + "started_at_utc": "2026-09-15T06:42:22Z", + "finished_at_utc": "2026-09-15T06:42:36Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "ce479e4ad6140a4bafd6a423acbcb4b67a98d918a4ac13c9e637e7381de36632", + "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": "10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f", + "sanitized_output_sha256": "10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f", + "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-PRODUCTION-VS-FIXTURE-RCA-406R1\nMODE=READ_ONLY_PVE_LXC_PERLPIN_PRODUCTION_VS_FIXTURE_RCA\nNO_BACKUP_EXECUTION=YES\nNO_CLOUD_ACCESS=YES\nNO_SYSTEMD_MUTATION=YES\nANCHOR_BINDINGS=[true,true,true,true]\nPERLPIN_PARENT_TRUST_PREDICATE=\"s.st_uid == 0 and (not s.st_mode & 18)\"\nTEST_FIXTURE_METHODS={\"pin\":\"def pin(self):\\n return f.PerlPin(self.path, self.alias)\",\"setUp\":\"def setUp(self):\\n self.assertIsNotNone(f, '270 dedicated Perl executable guard is not implemented')\\n self.td = tempfile.TemporaryDirectory()\\n self.root = Path(self.td.name)\\n self.path = self.root / 'perl'\\n self.alias = self.root / 'perl5.40.1'\\n shutil.copyfile('/usr/bin/perl', self.path)\\n self.path.chmod(493)\\n os.link(self.path, self.alias)\"}\nPRODUCTION_VS_FIXTURE_PROBE={\"rc\":0,\"result\":{\"fixture_attrs\":{\"alias\":{\"exists\":true,\"gid\":0,\"kind\":\"file\",\"mode\":\"0755\",\"nlink\":2,\"uid\":0},\"path\":{\"exists\":true,\"gid\":0,\"kind\":\"file\",\"mode\":\"0755\",\"nlink\":2,\"uid\":0},\"root\":{\"exists\":true,\"gid\":0,\"kind\":\"dir\",\"mode\":\"0700\",\"nlink\":2,\"uid\":0}},\"fixture_pin\":{\"exception_class\":\"pve265.PVEError\",\"message_sha256\":\"161c60744d62f603cbd0479884f0ae3daa9fa4a152af30c36596add983daa423\",\"ok\":false,\"safe_code\":\"PERL_PARENT_UNTRUSTED\"},\"fixture_pin_signature\":\"()\",\"production\":{\"first\":0,\"ok\":true,\"result_type\":\"tuple\",\"tuple_len\":2}},\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"}\nRCA_PERLPIN_FIXTURE=HISTORICAL_TEST_FIXTURE_PARENT_TRUST_DRIFT\nSTATUS=OK\nPHASE=COMPLETE\nREASON=NONE\nNEXT_GATE=PVE_LXC_CANDIDATE_STAGE_WITH_PRODUCTION_PERLPIN_SELFTEST\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-PRODUCTION-VS-FIXTURE-RCA-406R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" +} diff --git a/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1.txt b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1.txt new file mode 100644 index 00000000..bb2346d4 --- /dev/null +++ b/runtime/history/SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1.txt @@ -0,0 +1,55 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=infra-dr-backupv2-pve-lxc-perlpin-production-vs-fixture-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=ce479e4ad6140a4bafd6a423acbcb4b67a98d918a4ac13c9e637e7381de36632 +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=10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f +SANITIZED_OUTPUT_SHA256=10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f +OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1 +MODE=READ_ONLY_PVE_LXC_PERLPIN_PRODUCTION_VS_FIXTURE_RCA +NO_BACKUP_EXECUTION=YES +NO_CLOUD_ACCESS=YES +NO_SYSTEMD_MUTATION=YES +ANCHOR_BINDINGS=[true,true,true,true] +PERLPIN_PARENT_TRUST_PREDICATE="s.st_uid == 0 and (not s.st_mode & 18)" +TEST_FIXTURE_METHODS={"pin":"def pin(self):\n return f.PerlPin(self.path, self.alias)","setUp":"def setUp(self):\n self.assertIsNotNone(f, '270 dedicated Perl executable guard is not implemented')\n self.td = tempfile.TemporaryDirectory()\n self.root = Path(self.td.name)\n self.path = self.root / 'perl'\n self.alias = self.root / 'perl5.40.1'\n shutil.copyfile('/usr/bin/perl', self.path)\n self.path.chmod(493)\n os.link(self.path, self.alias)"} +PRODUCTION_VS_FIXTURE_PROBE={"rc":0,"result":{"fixture_attrs":{"alias":{"exists":true,"gid":0,"kind":"file","mode":"0755","nlink":2,"uid":0},"path":{"exists":true,"gid":0,"kind":"file","mode":"0755","nlink":2,"uid":0},"root":{"exists":true,"gid":0,"kind":"dir","mode":"0700","nlink":2,"uid":0}},"fixture_pin":{"exception_class":"pve265.PVEError","message_sha256":"161c60744d62f603cbd0479884f0ae3daa9fa4a152af30c36596add983daa423","ok":false,"safe_code":"PERL_PARENT_UNTRUSTED"},"fixture_pin_signature":"()","production":{"first":0,"ok":true,"result_type":"tuple","tuple_len":2}},"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} +RCA_PERLPIN_FIXTURE=HISTORICAL_TEST_FIXTURE_PARENT_TRUST_DRIFT +STATUS=OK +PHASE=COMPLETE +REASON=NONE +NEXT_GATE=PVE_LXC_CANDIDATE_STAGE_WITH_PRODUCTION_PERLPIN_SELFTEST +CHANGES_MADE=false +MUTATION_OUTCOME=NO_MUTATION +BACKUP_EXECUTIONS=0 +CLOUD_WRITES=0 +CLOUD_DELETIONS=0 +SYSTEMD_MUTATIONS=0 +SCHEDULER_CUTOVER=NO +LEGACY_BACKUP_DISABLES=0 +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 69ebf2be..9d80f88f 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-RUNTIME-DRIFT-RCA-405R1", + "command_id": "SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1", "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", + "component": "infra-dr-backupv2-pve-lxc-perlpin-production-vs-fixture-rca", + "started_at_utc": "2026-09-15T06:42:22Z", + "finished_at_utc": "2026-09-15T06:42:36Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "5e5d0d3d26aa47dd9f272f130bc5ffe09cff46ca15687eb3db52d5337a7df8a5", + "command_sha256": "ce479e4ad6140a4bafd6a423acbcb4b67a98d918a4ac13c9e637e7381de36632", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "7d3ed5b87e0c41689d94681dc882915d788e042a42eaf2aa19ec6781e4bcd8bb", - "sanitized_output_sha256": "7d3ed5b87e0c41689d94681dc882915d788e042a42eaf2aa19ec6781e4bcd8bb", + "raw_evidence_sha256": "10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f", + "sanitized_output_sha256": "10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f", "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" + "output": "COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1\nMODE=READ_ONLY_PVE_LXC_PERLPIN_PRODUCTION_VS_FIXTURE_RCA\nNO_BACKUP_EXECUTION=YES\nNO_CLOUD_ACCESS=YES\nNO_SYSTEMD_MUTATION=YES\nANCHOR_BINDINGS=[true,true,true,true]\nPERLPIN_PARENT_TRUST_PREDICATE=\"s.st_uid == 0 and (not s.st_mode & 18)\"\nTEST_FIXTURE_METHODS={\"pin\":\"def pin(self):\\n return f.PerlPin(self.path, self.alias)\",\"setUp\":\"def setUp(self):\\n self.assertIsNotNone(f, '270 dedicated Perl executable guard is not implemented')\\n self.td = tempfile.TemporaryDirectory()\\n self.root = Path(self.td.name)\\n self.path = self.root / 'perl'\\n self.alias = self.root / 'perl5.40.1'\\n shutil.copyfile('/usr/bin/perl', self.path)\\n self.path.chmod(493)\\n os.link(self.path, self.alias)\"}\nPRODUCTION_VS_FIXTURE_PROBE={\"rc\":0,\"result\":{\"fixture_attrs\":{\"alias\":{\"exists\":true,\"gid\":0,\"kind\":\"file\",\"mode\":\"0755\",\"nlink\":2,\"uid\":0},\"path\":{\"exists\":true,\"gid\":0,\"kind\":\"file\",\"mode\":\"0755\",\"nlink\":2,\"uid\":0},\"root\":{\"exists\":true,\"gid\":0,\"kind\":\"dir\",\"mode\":\"0700\",\"nlink\":2,\"uid\":0}},\"fixture_pin\":{\"exception_class\":\"pve265.PVEError\",\"message_sha256\":\"161c60744d62f603cbd0479884f0ae3daa9fa4a152af30c36596add983daa423\",\"ok\":false,\"safe_code\":\"PERL_PARENT_UNTRUSTED\"},\"fixture_pin_signature\":\"()\",\"production\":{\"first\":0,\"ok\":true,\"result_type\":\"tuple\",\"tuple_len\":2}},\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"}\nRCA_PERLPIN_FIXTURE=HISTORICAL_TEST_FIXTURE_PARENT_TRUST_DRIFT\nSTATUS=OK\nPHASE=COMPLETE\nREASON=NONE\nNEXT_GATE=PVE_LXC_CANDIDATE_STAGE_WITH_PRODUCTION_PERLPIN_SELFTEST\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-PRODUCTION-VS-FIXTURE-RCA-406R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 84269bcf..bb2346d4 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-RUNTIME-DRIFT-RCA-405R1 +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1 STATUS=OK RC=0 HOST=pve01 MODE=read-only -COMPONENT=infra-dr-backupv2-pve-lxc-perlpin-runtime-drift-rca +COMPONENT=infra-dr-backupv2-pve-lxc-perlpin-production-vs-fixture-rca REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=5e5d0d3d26aa47dd9f272f130bc5ffe09cff46ca15687eb3db52d5337a7df8a5 +COMMAND_SHA256=ce479e4ad6140a4bafd6a423acbcb4b67a98d918a4ac13c9e637e7381de36632 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,31 +24,23 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=7d3ed5b87e0c41689d94681dc882915d788e042a42eaf2aa19ec6781e4bcd8bb -SANITIZED_OUTPUT_SHA256=7d3ed5b87e0c41689d94681dc882915d788e042a42eaf2aa19ec6781e4bcd8bb +RAW_EVIDENCE_SHA256=10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f +SANITIZED_OUTPUT_SHA256=10650bff8754a6470c8f43b204f0ddcfd326ee35d6b1a3677ef51c7cd177a64f OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-RUNTIME-DRIFT-RCA-405R1 -MODE=READ_ONLY_PVE_LXC_PERLPIN_RUNTIME_DRIFT_RCA +COMMAND_ID=SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1 +MODE=READ_ONLY_PVE_LXC_PERLPIN_PRODUCTION_VS_FIXTURE_RCA NO_BACKUP_EXECUTION=YES NO_CLOUD_ACCESS=YES NO_SYSTEMD_MUTATION=YES -ANCHOR_BINDINGS=[true,true,true] -PERL_META={"dev":64513,"gid":0,"ino":5112044,"mode":"0755","nlink":2,"path":"/usr/bin/perl","sha256":"2e341d06b8e72eae72cd72da47b38ba1174bedc83904ab177fe8fd9f89f220cd","size":3931280,"uid":0} -PERL_ALIAS_META={"dev":64513,"gid":0,"ino":5112044,"mode":"0755","nlink":2,"path":"/usr/bin/perl5.40.1","sha256":"2e341d06b8e72eae72cd72da47b38ba1174bedc83904ab177fe8fd9f89f220cd","size":3931280,"uid":0} -PERL_HARDLINK_PAIR=PASS -PROC_MOUNT=[{"mount_options":["relatime","rw"],"mountpoint":"/proc","super_options":["rw"]}] -PROC_NOEXEC=NO -PYTHON_RUNTIME={"executable":"/usr/bin/python3","execve_supports_fd":true,"version":[3,13,5]} -DIRECT_PERL_EXEC={"rc":0,"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} -PROC_FD_PERL_EXEC={"rc":0,"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} -FD_EXECVE_PERL={"rc":0,"supported":true} -PERL270_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"} -PERL270_ERROR_CLASS_COUNTS={"pve265.PVEError":13} -RCA_PERLPIN=PERL270_TEST_OTHER_RUNTIME_DRIFT +ANCHOR_BINDINGS=[true,true,true,true] +PERLPIN_PARENT_TRUST_PREDICATE="s.st_uid == 0 and (not s.st_mode & 18)" +TEST_FIXTURE_METHODS={"pin":"def pin(self):\n return f.PerlPin(self.path, self.alias)","setUp":"def setUp(self):\n self.assertIsNotNone(f, '270 dedicated Perl executable guard is not implemented')\n self.td = tempfile.TemporaryDirectory()\n self.root = Path(self.td.name)\n self.path = self.root / 'perl'\n self.alias = self.root / 'perl5.40.1'\n shutil.copyfile('/usr/bin/perl', self.path)\n self.path.chmod(493)\n os.link(self.path, self.alias)"} +PRODUCTION_VS_FIXTURE_PROBE={"rc":0,"result":{"fixture_attrs":{"alias":{"exists":true,"gid":0,"kind":"file","mode":"0755","nlink":2,"uid":0},"path":{"exists":true,"gid":0,"kind":"file","mode":"0755","nlink":2,"uid":0},"root":{"exists":true,"gid":0,"kind":"dir","mode":"0700","nlink":2,"uid":0}},"fixture_pin":{"exception_class":"pve265.PVEError","message_sha256":"161c60744d62f603cbd0479884f0ae3daa9fa4a152af30c36596add983daa423","ok":false,"safe_code":"PERL_PARENT_UNTRUSTED"},"fixture_pin_signature":"()","production":{"first":0,"ok":true,"result_type":"tuple","tuple_len":2}},"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} +RCA_PERLPIN_FIXTURE=HISTORICAL_TEST_FIXTURE_PARENT_TRUST_DRIFT STATUS=OK PHASE=COMPLETE REASON=NONE -NEXT_GATE=PVE_LXC_PERLPIN_RUNTIME_FOLLOWUP +NEXT_GATE=PVE_LXC_CANDIDATE_STAGE_WITH_PRODUCTION_PERLPIN_SELFTEST CHANGES_MADE=false MUTATION_OUTCOME=NO_MUTATION BACKUP_EXECUTIONS=0 @@ -57,7 +49,7 @@ CLOUD_DELETIONS=0 SYSTEMD_MUTATIONS=0 SCHEDULER_CUTOVER=NO LEGACY_BACKUP_DISABLES=0 -HOMELAB_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} +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260915-INFRA-DR-BACKUPV2-PVE-LXC-PERLPIN-PRODUCTION-VS-FIXTURE-RCA-406R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} OUTPUT_END CHAT_OUTPUT_END