{"record":{"id":"d8316c706e48c3f7","repo":"dotnet/runtime","slug":"not-found","errorCode":null,"errorMessage":"{} not found","messagePattern":"(.+?) not found","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"src/coreclr/scripts/superpmi.py","lineNumber":5006,"sourceCode":"        pintool_filename = \"libclrjit_inscount.so\"\n\n    return os.path.join(get_pintools_path(coreclr_args), \"clrjit_inscount_\" + coreclr_args.arch, pintool_filename)\n\ndef download_clrjit_pintool(coreclr_args):\n    \"\"\" Download the pintool package for doing measurements of the JIT from Azure Storage.\n    \"\"\"\n\n    if os.path.isfile(get_pin_exe_path(coreclr_args)):\n        return\n\n    pin_dir_path = get_pintools_path(coreclr_args)\n    extension = \"zip\" if coreclr_args.host_os.lower() == \"windows\" else \"tar.gz\"\n    pintools_rel_path = \"{}/{}/{}.{}\".format(az_pintools_root_folder, pintools_current_version, coreclr_args.host_os.lower(), extension)\n    pintool_uri = \"{}/{}\".format(az_blob_storage_superpmi_container_uri, pintools_rel_path)\n    local_files = download_files([pintool_uri], pin_dir_path, verbose=False, is_azure_storage=True, fail_if_not_found=False)\n    if len(local_files) <= 0:\n        logging.error(\"Error: {} not found\".format(pintools_rel_path))\n        raise RuntimeError(\"{} not found\".format(pintools_rel_path))\n\ndef setup_args(args):\n    \"\"\" Setup the args for SuperPMI to use.\n\n    Args:\n        args (ArgParse): args parsed by arg parser\n\n    Returns:\n        args (CoreclrArguments)\n\n    \"\"\"\n\n    # Start setting up logging.\n    # Set up the console logger immediately. Later, after we've parsed some arguments, we'll add the file logger and\n    # change the console logger level to the one parsed by the arguments. We need to do this initial setup before the first\n    # logging command is executed.\n    logger = logging.getLogger()\n    logger.setLevel(logging.DEBUG)","sourceCodeStart":4988,"sourceCodeEnd":5024,"githubUrl":"https://github.com/dotnet/runtime/blob/290d5ab72cc1102813fbc0406fb186ceadabc340/src/coreclr/scripts/superpmi.py#L4988-L5024","documentation":"Raised by download_clrjit_pintool when download_files() for the Intel Pin pintools package returned no local files (the Azure blob `{pintools_root}/{version}/{os}.{zip|tar.gz}` is missing/unreachable). Pin is required for instruction-count measurements.","triggerScenarios":"isfile(get_pin_exe_path) is false on entry and the HTTP/azure download of the pintools archive yields zero files (fail_if_not_found=False suppresses the inner error).","commonSituations":"pintools_current_version bumped but the blob not yet published for this os; unsupported host_os; proxy blocking the storage endpoint; the version folder was rotated out.","solutions":["Confirm the exact blob exists: open az_blob_storage_superpmi_container_uri + '/' + pintools_rel_path in a browser/curl.","Verify network/proxy can reach the Azure storage container.","Check host_os is one the pintools package is published for (windows/linux/osx).","Manually download the archive and extract into get_pintools_path() to satisfy isfile(get_pin_exe_path)."],"exampleFix":"// before\n# pintools archive missing for new version -> raises [186]\n// after\n# pin a known-good pintools_current_version, or stage the archive manually\ncurl -o pin.tgz <pintool_uri> && tar -xzf pin.tgz -C $SPMI/pintools/<version>/<os>","handlingStrategy":"validation","validationCode":"import urllib.request, os\nuri = az_blob_storage_superpmi_container_uri + '/' + pintools_rel_path\nwith urllib.request.urlopen(uri, timeout=10) as r:\n    if r.status != 200:\n        raise SystemExit(f'pintools blob unreachable: {uri}')\nprint('pintools archive reachable')","typeGuard":"def pintools_blob_reachable(uri: str) -> bool:\n    import urllib.request\n    try:\n        with urllib.request.urlopen(uri, timeout=10) as r:\n            return r.status == 200\n    except Exception:\n        return False","tryCatchPattern":"try:\n    download_clrjit_pintool(coreclr_args)\nexcept RuntimeError as e:\n    if 'not found' in str(e) and 'pintools' in str(e).lower():\n        stage_pintools_archive_manually(); download_clrjit_pintool(coreclr_args)","preventionTips":["Pre-stage the pintools archive in spmi_location","Confirm pintools_current_version is published for your host_os","Whitelist the Azure storage endpoint on proxies"],"tags":["azure-storage","network","superpmi","pintools","caching"],"analyzedSha":"290d5ab72cc1102813fbc0406fb186ceadabc340","analyzedAt":"2026-08-06T19:57:01.276Z","schemaVersion":2},"datasetVersion":"2026-08-06T23:17:07.152Z"}