{
  "artifacts_not_published": [
    {
      "path": "fixtures/isa/tiny.hsaco",
      "sha256": "fb4587de48cf5d325ba515119e2528632647725fbb0360f1c7c61d2f5b6ab4a2"
    },
    {
      "path": "fixtures/bin/consan_tiny_load",
      "sha256": "d110a697d5866e8aedc0b2475ff3437719e1de59836432436ee11862bdaf4f75"
    }
  ],
  "case": "consan-tiny",
  "class": "survey",
  "command": "aorta sweep run --recipe recipes/sanitizers/daily-consan-tiny.yaml",
  "commit": "fe7f92211b6254aa3f6da5b634931a41ca921413",
  "container_image": "rocm/pytorch:rocm10.0_ubuntu26.04_py3.14_pytorch_release_2.13.0@sha256:3174cb7061d94c427da96c0edef4adea28046fa3f3b2ff3948dc4e995665ff8c",
  "date": "2026-09-24T14:22:27+00:00",
  "digests": {
    "code_object:tiny.hsaco": "fb4587de48cf5d325ba515119e2528632647725fbb0360f1c7c61d2f5b6ab4a2",
    "command": "/workspace/aorta/recipes/sanitizers/fixtures/bin/consan_tiny_load",
    "command_sha256": "d110a697d5866e8aedc0b2475ff3437719e1de59836432436ee11862bdaf4f75",
    "hook": "/workspace/aorta/.sanitizer-nightly/rocjitsu-prebuilt/lib/librocjitsu_dbi_hooks.so",
    "hook_sha256": "d918d7b5dd78a4b3079f4d874a9d58e7acc7b13d472a9e8a4435b688692d8ae0",
    "selected_identity_sha256": "87ad91444b5da5f5f5fd4837eb8ba94dd83355dc2999843996001e8c39eb40a0",
    "selected_kernel": "tiny_vecadd"
  },
  "inputs": [
    "fixtures/expected/verdict_baselines.json",
    "fixtures/kernels/tiny_vecadd.hip",
    "fixtures/kernels/consan_load.hip"
  ],
  "logs_published": true,
  "observed": {
    "execution": "error",
    "findings": 0,
    "kernel_reasons": [
      {
        "code_object": "/workspace/aorta/recipes/sanitizers/fixtures/isa/tiny.hsaco",
        "code_object_index": 0,
        "code_object_sha256": "fb4587de48cf5d325ba515119e2528632647725fbb0360f1c7c61d2f5b6ab4a2",
        "entry_offset": null,
        "kernel": "tiny_vecadd",
        "reason": "combined_hook_exit_86"
      }
    ],
    "reason": "combined_hook_exit_86",
    "verdict": "error"
  },
  "rebuild": [
    {
      "caveat": "The conditional matters: --genco emits a raw code object on some ROCm builds and a clang-offload bundle on others, and the recorded digest is of the unbundled object.",
      "commands": [
        "export PATH=\"$(python -c \"from aorta.instrumentation.rocm_paths import resolve_rocm_roots; print(resolve_rocm_roots().llvm_bin_dir)\"):${PATH}\"",
        "export LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$(python -c \"import os; from aorta.instrumentation.rocm_paths import resolve_rocm_roots as r; x = r(); print(os.pathsep.join(dict.fromkeys([str(x.core_lib_dir), str(x.lib_dir)])))\")\"",
        "mkdir -p recipes/sanitizers/fixtures/isa",
        "hipcc --genco --offload-arch=gfx950 recipes/sanitizers/fixtures/kernels/tiny_vecadd.hip -o tmp.o",
        "if head -c 24 tmp.o | grep -qF __CLANG_OFFLOAD_BUNDLE__; then clang-offload-bundler --type=o --unbundle --input=tmp.o --targets=hipv4-amdgcn-amd-amdhsa--gfx950 --output=recipes/sanitizers/fixtures/isa/tiny.hsaco; else cp tmp.o recipes/sanitizers/fixtures/isa/tiny.hsaco; fi && rm -f tmp.o"
      ],
      "path": "fixtures/isa/tiny.hsaco",
      "what": "a gfx code object built from fixtures/kernels/tiny_vecadd.hip"
    },
    {
      "caveat": "The -DOBJECT define is required: it is how the binary learns which code object to load.",
      "commands": [
        "export PATH=\"$(python -c \"from aorta.instrumentation.rocm_paths import resolve_rocm_roots; print(resolve_rocm_roots().llvm_bin_dir)\"):${PATH}\"",
        "export LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$(python -c \"import os; from aorta.instrumentation.rocm_paths import resolve_rocm_roots as r; x = r(); print(os.pathsep.join(dict.fromkeys([str(x.core_lib_dir), str(x.lib_dir)])))\")\"",
        "mkdir -p recipes/sanitizers/fixtures/bin",
        "hipcc --offload-arch=gfx950 -DOBJECT=\"\\\"$(pwd)/recipes/sanitizers/fixtures/isa/tiny.hsaco\\\"\" recipes/sanitizers/fixtures/kernels/consan_load.hip -o recipes/sanitizers/fixtures/bin/consan_tiny_load"
      ],
      "path": "fixtures/bin/consan_tiny_load",
      "what": "a host repro binary built from fixtures/kernels/consan_load.hip"
    }
  ],
  "recipe": "recipes/sanitizers/daily-consan-tiny.yaml",
  "required_env": [
    {
      "purpose": "unpacked rocjitsu bundle supplying rj_waitcheck and the ConSan hook",
      "set_by": "operator",
      "var": "ROCJITSU_PREBUILT"
    },
    {
      "purpose": "ConSan hook to load",
      "set_by": "aorta",
      "var": "HSA_TOOLS_LIB"
    },
    {
      "purpose": "must be 1 so the hook is not double-registered",
      "set_by": "aorta",
      "var": "HSA_TOOLS_DISABLE_REGISTER"
    },
    {
      "purpose": "ConSan detection mode",
      "set_by": "aorta",
      "var": "RJ_CONSAN_MODE"
    },
    {
      "purpose": "max default-detector preset for deterministic guardrail coverage",
      "set_by": "aorta",
      "var": "RJ_CONSAN_PRESET"
    },
    {
      "purpose": "ConSan reporting policy",
      "set_by": "aorta",
      "var": "RJ_CONSAN_POLICY"
    }
  ],
  "rocjitsu_commit": "58136f1944ecd7786a925454f76b7739c072f092",
  "rocjitsu_run_url": "https://github.com/ROCm/rocm-systems/actions/runs/35883377508",
  "run": "2026-09-24T142227-35998938187",
  "run_url": "https://github.com/ROCm/aorta/actions/runs/35998938187",
  "schema": "aorta.sanitizer_run_area/0.1",
  "target": "gfx950"
}
