274 lines
8.3 KiB
JSON
274 lines
8.3 KiB
JSON
{
|
|
"approved_consumer_manifest_sha256": {},
|
|
"batch": "B38",
|
|
"benchmark_contract": {
|
|
"control_drift_limit_percent": 3.0,
|
|
"hot_path_median_regression_limit_percent": 3.0,
|
|
"minimum_timed_iterations_per_sample": 100000,
|
|
"outlier_deletion": false,
|
|
"pair_order": "five AB and five BA pairs",
|
|
"raw_sample_retention": true,
|
|
"required_runs": 10,
|
|
"unstable_control_status": "INFRA_BLOCKED",
|
|
"warmup_runs": 3
|
|
},
|
|
"build_contract": {
|
|
"configurations": [
|
|
"WITH_ZSTDIO=0",
|
|
"WITH_ZSTDIO=1"
|
|
],
|
|
"disabled_probe_mode": true,
|
|
"new_undefined_symbols_allowed": 0
|
|
},
|
|
"candidate": "P15-031",
|
|
"consumer_contract": {
|
|
"allowed_transports": [
|
|
"dtrace-sdt",
|
|
"ktr"
|
|
],
|
|
"manifest_prefix": "repo-pre-15/diagnostics/",
|
|
"nonqualifying_examples": [
|
|
"hypothetical maintainer",
|
|
"Linux tracepoints",
|
|
"generic observability value",
|
|
"proposed B38 test",
|
|
"gate prototype",
|
|
"installed dtrace without a project consumer"
|
|
],
|
|
"prohibited_implementation_prefixes": [
|
|
"planning/",
|
|
"repo-pre-15/current/",
|
|
"repo-pre-15/docs/",
|
|
"repo-pre-15/src/",
|
|
"repo-pre-15/tests/"
|
|
],
|
|
"required_access_mode": "privileged-diagnostic",
|
|
"required_fields": [
|
|
"schema",
|
|
"consumer_id",
|
|
"consumer_class",
|
|
"owner",
|
|
"version",
|
|
"production_use",
|
|
"freebsd_version",
|
|
"transport",
|
|
"access_mode",
|
|
"implementation_path",
|
|
"implementation_sha256",
|
|
"entrypoint",
|
|
"workflow",
|
|
"deployment_reference",
|
|
"event_schema_sha256",
|
|
"event_ids",
|
|
"actual_capture",
|
|
"capture_evidence_path",
|
|
"capture_evidence_sha256",
|
|
"captured_event_counts"
|
|
],
|
|
"schema_marker": "pre15-p15-031-consumer-v1"
|
|
},
|
|
"consumer_inventory": {
|
|
"expected_reference_counts": {
|
|
"historical-evidence": 3,
|
|
"linux-reference": 0,
|
|
"planning-proposal": 16,
|
|
"possible-project-consumer": 0,
|
|
"project-report-or-documentation": 4,
|
|
"test-only": 10,
|
|
"total": 33
|
|
},
|
|
"expected_scoped_path_count": 3243,
|
|
"maximum_candidate_bytes": 2097152,
|
|
"reference_patterns": [
|
|
"dtrace",
|
|
"(^|[^[:alnum:]_])sdt([^[:alnum:]_]|$)|sdt_(probe|provider)",
|
|
"(^|[^[:alnum:]_])ktr([^[:alnum:]_]|$)|ktrdump|ktr_[[:alnum:]_]+",
|
|
"(^|[^[:alnum:]_])tracepoints?([^[:alnum:]_]|$)",
|
|
"(^|[^[:alnum:]_])observability([^[:alnum:]_]|$)"
|
|
],
|
|
"scope": "tracked repo-pre-15 and planning/pre15 at required_base, excluding planning/pre15/introduction.md and the P15-031 addendum"
|
|
},
|
|
"event_schema": {
|
|
"forbidden_fields": [
|
|
"kernel_pointer",
|
|
"credential",
|
|
"path",
|
|
"xattr_name",
|
|
"xattr_value",
|
|
"uuid",
|
|
"volume_label",
|
|
"raw_unvalidated_metadata"
|
|
],
|
|
"provider": "erofs",
|
|
"events": [
|
|
{
|
|
"fields": [
|
|
"parse_stage",
|
|
"error"
|
|
],
|
|
"id": "mount_parse_fail",
|
|
"rule": "emit only bounded stage enum and positive errno; no image-derived value"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"logical_offset",
|
|
"mapped_length",
|
|
"device_id",
|
|
"map_flags",
|
|
"error"
|
|
],
|
|
"id": "map_result",
|
|
"rule": "emit only after range validation; zero mapping fields on validation failure"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid"
|
|
],
|
|
"id": "vget_hit",
|
|
"rule": "validated numeric inode identity only"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid"
|
|
],
|
|
"id": "vget_miss",
|
|
"rule": "validated numeric inode identity only"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid"
|
|
],
|
|
"id": "vget_loser",
|
|
"rule": "validated numeric inode identity only"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"name_index"
|
|
],
|
|
"id": "xattr_cache_hit",
|
|
"rule": "namespace index only; no xattr name or value"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"name_index"
|
|
],
|
|
"id": "xattr_cache_miss",
|
|
"rule": "namespace index only; no xattr name or value"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"algorithm",
|
|
"offset",
|
|
"input_length",
|
|
"output_length"
|
|
],
|
|
"id": "decode_start",
|
|
"rule": "validated numeric decode request only"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"algorithm",
|
|
"offset",
|
|
"decoded_length"
|
|
],
|
|
"id": "decode_end",
|
|
"rule": "validated numeric decode result only"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"algorithm",
|
|
"offset",
|
|
"error"
|
|
],
|
|
"id": "decode_error",
|
|
"rule": "validated numeric identity and positive errno only"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"offset",
|
|
"decoded_length"
|
|
],
|
|
"id": "cache_wait",
|
|
"rule": "validated cache key components only"
|
|
},
|
|
{
|
|
"fields": [
|
|
"nid",
|
|
"offset",
|
|
"decoded_length",
|
|
"reason"
|
|
],
|
|
"id": "cache_evict",
|
|
"rule": "bounded reason enum and validated cache key components only"
|
|
}
|
|
]
|
|
},
|
|
"gate": "G08",
|
|
"go_requirements": [
|
|
"a concrete existing project diagnostic consumer captures the complete predeclared schema through FreeBSD DTrace/SDT or a justified KTR path",
|
|
"no kernel pointers, credentials, or unauthenticated metadata leakage",
|
|
"an owned-temp pre-source prototype generated from this JSON and the gate script closes fields, counts, failure, detach, and unload without linking into EROFS",
|
|
"disabled WITH_ZSTDIO=0 and WITH_ZSTDIO=1 builds add no undefined symbols",
|
|
"ten-run hot-path median regression is at most three percent with raw interleaved controls and no outlier deletion"
|
|
],
|
|
"probe_order": [
|
|
"consumer-inventory",
|
|
"privacy-schema",
|
|
"freebsd15-native-owned-temp-prototype",
|
|
"disabled-dual-build-undefined-symbols",
|
|
"ten-run-hot-path-microbenchmark"
|
|
],
|
|
"prohibited_paths": [
|
|
"planning/pre15/introduction.md"
|
|
],
|
|
"protected": {
|
|
"pid": 26318,
|
|
"port": 9222
|
|
},
|
|
"prototype_contract": {
|
|
"expected_event_count_each": 1,
|
|
"generated_from": [
|
|
"P15-031-input.json",
|
|
"P15-031.sh"
|
|
],
|
|
"lifecycle_scenarios": [
|
|
"consumer attach and complete capture",
|
|
"failed consumer enable",
|
|
"consumer termination and detach",
|
|
"provider unload and reload",
|
|
"final unload with zero owned processes, modules, and temporary paths"
|
|
],
|
|
"linked_into_erofs": false,
|
|
"location": "owned temporary directory only",
|
|
"native_target": "FreeBSD 15"
|
|
},
|
|
"required_base": "0f696ad1e2c6628022d02ce52d07eb66704769dd",
|
|
"schema": 1,
|
|
"scope_tree_oids": {
|
|
"planning/pre15": "bb8801a7696465fce1607b671c96473c044773b5",
|
|
"repo-pre-15": "231f9d5566d0a6bee4672a89f93451daa4f4b5de"
|
|
},
|
|
"source_sha256": {
|
|
"planning/pre15/20-final-candidate-ledger.md": "c47338623686ce352fd80cf9b39635900bcde8c2abc960feebe24837f8a67460",
|
|
"planning/pre15/30-stage0-gates.md": "34708bacf4a0668dfd834b3639900ca23b28b9833a387ac6e2c0399c9316cdb8",
|
|
"planning/pre15/40-execution-batches.md": "1d1ffdf8fec799aeec063bb1dc4a0fda9703300d414eabef8905522b2c18db20",
|
|
"planning/pre15/50-feature-test-matrix.md": "ce39b44ef3989f4fcdbcd8eb677193ef53b630080c74d8539664fb2be3f38408",
|
|
"planning/pre15/90-honesty-and-evidence.md": "69f96908f5ab436a2f5359548e4e6f5dc2942fcf00148d999d513558f1c59c2d",
|
|
"repo-pre-15/src/Makefile": "b722f7ec658e0ada0640c80a7b527921bd96cdf0e93e9623cece29766f2fc9c8",
|
|
"repo-pre-15/src/data.c": "a511146d2d1ff56bc88bae6c550cfdc49a8e978c5c2c88d735de92adaaa836b6",
|
|
"repo-pre-15/src/decompressor.c": "ccaa934f837ecbf3b3b678dbddf35d29dd7e3b4e80d1a7ab78b18a07e555419f",
|
|
"repo-pre-15/src/inode.c": "50c40fe403bd06b17f6976707ad4a8f03f95af49753f450df3d132130ab2dcf4",
|
|
"repo-pre-15/src/super.c": "61f31906bb7d1872c99cd3cf3859a34daf29a02d91a3caa1bfc8187af562a3d2",
|
|
"repo-pre-15/src/xattr.c": "7ce78b7af8838715fed10843f412458bdacb8c9b6811f08f660549f18a0743b0",
|
|
"repo-pre-15/src/zdata.c": "ee241c83fe7152569414594a3b4acf8c5028a35573d53ace0e3bb4a51dd0d191",
|
|
"repo-pre-15/tests/pre15/EVIDENCE-SCHEMA.json": "8a4d3fe076eed3a2f17e3ebd9337ca8697f09d6717c05835e076f6812cf38102"
|
|
}
|
|
}
|