39 lines
9.4 KiB
JSON
39 lines
9.4 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"channel": "homelab-runtime",
|
|
"command_id": "HOMELAB-CLUSTER-KB-V1-GITEA-ROUTE-DISCOVERY-TYPE-SAFE-READ-ONLY-20260805T075700Z",
|
|
"status": "OK",
|
|
"rc": 0,
|
|
"host": "pve01",
|
|
"mode": "verify",
|
|
"component": "cluster-knowledge-base-error-system",
|
|
"started_at_utc": "2026-08-05T07:57:46Z",
|
|
"finished_at_utc": "2026-08-05T07:57:47Z",
|
|
"reference_register_checked": true,
|
|
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
|
|
"error_register_checked": true,
|
|
"error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
|
|
"command_sha256": "4f98b851748b492d6e53892dc82950f7d973c2529e0c507e51ee3e5e2db278a4",
|
|
"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": "d89bb6fbb69e42ada9dda6bb83534f41a0a2e3abcd0f332added0ecdd9ce55fe",
|
|
"sanitized_output_sha256": "d89bb6fbb69e42ada9dda6bb83534f41a0a2e3abcd0f332added0ecdd9ce55fe",
|
|
"output_truncated_in_json": false,
|
|
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
|
|
"output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-GITEA-ROUTE-DISCOVERY-TYPE-SAFE-READ-ONLY-20260805T075700Z\",\"command_rc\":0,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-GITEA-ROUTE-DISCOVERY-TYPE-SAFE-READ-ONLY-20260805T075700Z\",\"command_rc\":0,\"context_inspections\":[],\"correction_of_latest_failure\":{\"exact_fix\":\"sanitize now converts Any to str before replace\",\"previous_error_fingerprint\":\"70d38404ad81f0157d3899f35a10ae0e8ae12b2fa22d508a8535c96ddf477986\",\"proven_error\":\"'bool' object has no attribute 'replace'\",\"proven_error_type\":\"AttributeError\",\"proven_source\":\"systemctl_show stored ExecStart_present as bool and passed all property values to sanitize\",\"regression_test\":\"sanitize(True) == 'True' and sanitize(False) == 'False'\"},\"correction_of_previous_probe\":{\"prevention\":\"exact executable basename or comm match only, with current process ancestry excluded\",\"process_probe\":{\"exact_runtime_count\":0,\"exact_runtimes\":[],\"previous_probe_false_positive_possible\":true,\"self_process_tree_excluded_count\":5,\"substring_only_non_runtime_count\":0},\"proven_issue\":\"the previous process detector matched the payload command line because its filename contained gitea; that is not proof of a Gitea runtime\"},\"error_fingerprint\":\"b1db0cdaafc7abc92b46743826a317d8fd6ca13e83e335d1a5f11a8fdc5195c7\",\"exact_owner_set\":[],\"latest_exact_result_basis\":{\"capsule_sha256\":\"27152598cc1ee210e91aa11ed1b0093cda30e81bb0047aa771be3d26ac42b4c8\",\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-GITEA-ROUTE-DISCOVERY-READ-ONLY-20260805T074300Z\",\"command_rc\":1,\"control_plane_error\":null,\"error\":\"'bool' object has no attribute 'replace'\",\"error_fingerprint\":\"70d38404ad81f0157d3899f35a10ae0e8ae12b2fa22d508a8535c96ddf477986\",\"error_source\":\"systemctl_show.properties.ExecStart_present passed to sanitize\",\"error_type\":\"AttributeError\",\"mutation_outcome\":\"NO_MUTATION\",\"output_complete\":true,\"output_sha256\":\"be6b08ef5f1585eb0a035fab178745ecdb1513589f774d2ed3ea23345adc0029\",\"output_truncated_in_json\":false,\"rollback_restored\":null,\"rollback_started\":false,\"runner_document_rc\":1,\"runner_json_sha256\":\"f1b7c079806a44bf2d2c0d6d8f7faae57b4af77e39eb27a903583a8753d9ef78\",\"runner_rc\":1,\"runner_status\":\"FAIL\",\"runner_text_sha256\":\"e50bd13cdd3a173caa7effd4b0a6621d0c3d76a6e3ce3c0d1ed64be548740dad\",\"runner_wrapper_matches_document\":true,\"state_status\":\"FAIL\"},\"lxc_marker_probes\":[],\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_READER_V3_EXACT_ROUTE_PROBE\",\"output_truncated_in_json\":false,\"owners_from_database\":[],\"owners_from_storage\":[],\"pre_command_known_error_gate\":{\"checked\":true,\"items\":[{\"id\":\"candidate-scan-limit-20260805\",\"prevention\":\"bounded exact-target discovery; no all-branch or unbounded filesystem scan\"},{\"id\":\"runner-wrapper-mismatch-20260805\",\"prevention\":\"structured output hard-limited below 49152 bytes; no complete success logs\"},{\"id\":\"gitea-owner-hardcoded-20260805\",\"prevention\":\"owner is accepted only from validated storage path or read-only Gitea database row\"},{\"id\":\"gitea-git-auth-unavailable-20260805\",\"prevention\":\"do not retry unauthenticated Git route; discover authoritative runtime/storage route first\"},{\"id\":\"pvesh-adapter-context-unreadable-20260805\",\"prevention\":\"use pvedaemon mount namespace only after exact PID and executable identity validation\"},{\"id\":\"gitea-process-self-match-20260805\",\"prevention\":\"runtime detection uses exact executable/comm identity and excludes this command process tree\"},{\"fingerprint\":\"70d38404ad81f0157d3899f35a10ae0e8ae12b2fa22d508a8535c96ddf477986\",\"id\":\"sanitize-non-string-attributeerror-20260805\",\"prevention\":\"sanitize accepts Any and converts with str before replace; embedded self-test covers bool values\"}]},\"prevention_test\":{\"must_run_before_future_gitea_commands\":true,\"name\":\"authoritative_gitea_runtime_storage_route_preflight\",\"requirements\":[\"reject substring-only process matches\",\"validate pvedaemon PID and executable before namespace entry\",\"derive guests from authoritative pvesh inventory\",\"derive owner only from validated bare storage path or read-only database row\",\"pin source context, symbolic HEAD and full HEAD before repository analysis\"]},\"proxmox_route\":{\"evidence\":{\"identity\":{\"cmdline_sha256\":\"53464dcf01d9d27afc34d49e95ed3d4ad1e8c6888aeff1a88e1e66805f1e2a54\",\"exe\":\"/usr/bin/perl\",\"exe_basename\":\"perl\",\"ns_ipc\":\"ipc:[4026531839]\",\"ns_mnt\":\"mnt:[4026531832]\",\"pid\":1799,\"pvedaemon_identity\":true},\"preconditions\":{\"effective_uid_zero\":true,\"nsenter_present\":true,\"pvedaemon_identity\":true,\"pvesh_present\":true,\"running_pid\":true},\"unit\":{\"probe\":{\"duration_seconds\":0.007,\"rc\":0,\"stderr\":\"\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stderr_truncated\":false,\"stdout_bytes\":297,\"stdout_sha256\":\"e50f474c2c7bd5324e11eb8c4e56848dd3bbdcd7e6910d88b0ed8faeeb056fbd\",\"stdout_truncated\":false},\"properties\":{\"ActiveState\":\"active\",\"ExecStart_present\":\"True\",\"ExecStart_sha256\":\"a3150f62d0b148854d825fc1ad00044d56247d9a482d99c87460dd73434f094e\",\"FragmentPath\":\"/usr/lib/systemd/system/pvedaemon.service\",\"Group\":\"\",\"LoadState\":\"loaded\",\"MainPID\":\"1799\",\"SubState\":\"running\",\"User\":\"\"},\"unit\":\"pvedaemon.service\"}},\"inventory\":{\"authoritative\":false,\"candidate_guests\":[],\"cluster_status_count\":null,\"endpoint_meta\":{\"cluster_status\":{\"duration_seconds\":0.46,\"rc\":255,\"stderr\":\"ipcc_send_rec[1] failed: Unknown error -1\\nipcc_send_rec[2] failed: Unknown error -1\\nipcc_send_rec[3] failed: Unknown error -1\\nUnable to load access control list: Unknown error -1\\n\",\"stderr_bytes\":179,\"stderr_sha256\":\"7f7c6a4e34d689a6246e2dda50729abf93fb15fdc56cc971b1690257d4e0d228\",\"stderr_truncated\":false,\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_truncated\":false},\"nodes\":{\"duration_seconds\":0.462,\"rc\":255,\"stderr\":\"ipcc_send_rec[1] failed: Unknown error -1\\nipcc_send_rec[2] failed: Unknown error -1\\nipcc_send_rec[3] failed: Unknown error -1\\nUnable to load access control list: Unknown error -1\\n\",\"stderr_bytes\":179,\"stderr_sha256\":\"7f7c6a4e34d689a6246e2dda50729abf93fb15fdc56cc971b1690257d4e0d228\",\"stderr_truncated\":false,\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_truncated\":false},\"resources_vm\":{\"duration_seconds\":0.462,\"rc\":255,\"stderr\":\"ipcc_send_rec[1] failed: Unknown error -1\\nipcc_send_rec[2] failed: Unknown error -1\\nipcc_send_rec[3] failed: Unknown error -1\\nUnable to load access control list: Unknown error -1\\n\",\"stderr_bytes\":179,\"stderr_sha256\":\"7f7c6a4e34d689a6246e2dda50729abf93fb15fdc56cc971b1690257d4e0d228\",\"stderr_truncated\":false,\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_truncated\":false}},\"guest_count\":0,\"node_count\":null,\"running_lxc_count\":0,\"running_qemu_count\":0}},\"rc\":0,\"read_only\":true,\"reader_v3\":null,\"ready_for_full_analysis\":false,\"repository_identities\":[],\"result_projection\":{\"bytes\":7153,\"compacted\":false,\"max_bytes\":49152},\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"AUTHORITATIVE_PROXMOX_ROUTE_UNAVAILABLE_FROM_ADAPTER_CONTEXT\",\"schema\":1,\"status\":\"OK\",\"target_resolution\":{\"answer_count\":1,\"domain\":\"git.gram1.ru\",\"families\":[2],\"ok\":true,\"unique_address_count\":1},\"valid_repositories\":[]}\n"
|
|
}
|