Case pass

Run2026-09-19T141910-35442659743Commit684b4600dbb52b96603a27c553e995c183458403Date2026-09-19 14:19:10 UTCTargetgfx950Reciperecipes/sanitizers/daily-consan-lds-dispatch.yamlExecutioncompleteFindings0Containerrocm/pytorch:rocm10.0_ubuntu26.04_py3.14_pytorch_release_2.13.0@sha256:3174cb7061d94c427da96c0edef4adea28046fa3f3b2ff3948dc4e995665ff8crocjitsu bundle84bf947d98d6d166158c9626bc0857c9d66c457e

Reproduce

aorta sweep run --recipe recipes/sanitizers/daily-consan-lds-dispatch.yaml

Set ROCJITSU_PREBUILT (unpacked rocjitsu bundle supplying rj_waitcheck and the ConSan hook) before running. aorta sets HSA_TOOLS_LIB, HSA_TOOLS_DISABLE_REGISTER, RJ_CONSAN_MODE, RJ_CONSAN_PRESET, RJ_CONSAN_POLICY for you from the recipe's policy block.

Rebuild the fixtures

fixtures/isa/lds.hsaco

a gfx code object built from fixtures/kernels/lds_reduce.hip

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/lds_reduce.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/lds.hsaco; else cp tmp.o recipes/sanitizers/fixtures/isa/lds.hsaco; fi && rm -f tmp.o

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.

fixtures/bin/lds_dispatch

a host repro binary built from fixtures/kernels/lds_dispatch.hip

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 -DLDS_HSACO="\"$(pwd)/recipes/sanitizers/fixtures/isa/lds.hsaco\"" recipes/sanitizers/fixtures/kernels/lds_dispatch.hip -o recipes/sanitizers/fixtures/bin/lds_dispatch

The -DLDS_HSACO define is required: it is how the binary learns which code object to load.

The exact invocations the nightly used are in .github/workflows/sanitizers-nightly.yml.

Artifacts not published

PathSHA-256
fixtures/isa/lds.hsaco2ac9656b167182fd9acd28e1ae9744cf99fe38fb611cc94b22972e1162908438
fixtures/bin/lds_dispatchded4e7b336e6fea0b95c7f59f219c26dcd3a19ec83cbcdd5e8e5df30090ba708

Recorded digests

KeyValue
code_object:lds.hsaco2ac9656b167182fd9acd28e1ae9744cf99fe38fb611cc94b22972e1162908438
command/workspace/aorta/recipes/sanitizers/fixtures/bin/lds_dispatch
command_sha256ded4e7b336e6fea0b95c7f59f219c26dcd3a19ec83cbcdd5e8e5df30090ba708
hook/workspace/aorta/.sanitizer-nightly/rocjitsu-prebuilt/lib/librocjitsu_dbi_hooks.so
hook_sha2563ecd2de3786db4fd785c8ff1c2ae9939fa5bf5d28b928c409f678b9597b7fa95
selected_identity_sha256e783ac36a047e8002c4bf8a7e7b9215befa8c0e906977e05161cf413e83dcd9e
selected_kernellds_reduce

Files

Every file published for this case. Its logs, recipe copy and inputs were pruned for falling outside the nightly's log-retention window. It is not the whole recipe: 2 required inputs are CI-built and excluded by design, listed under artifacts not published with their SHA-256s.

FileSize
REPRODUCE.md4.8 KB
env.json4.8 KB
sanitizer_report.json5.9 KB