nodejs/node · error · Exception
Could not generate pprof results
Error message
Could not generate pprof results
What it means
linux-perf-d8.py runs `pprof -symbolize=local -flame` on the d8 perf result and reads its stdout as a pprofresult URL. If pprof exits non-zero (CalledProcessError) and gcert (Google cert auth) is detected, the script re-raises this exception; otherwise it prints the local pprof command for manual use.
Source
Thrown at deps/v8/tools/profiling/linux-perf-d8.py:305
log("PPROF")
has_gcert = False
try:
print("# Checking gcert status for googlers")
subprocess.check_call("gcertstatus >&/dev/null || gcert", shell=True)
has_gcert = True
cmd = [
"pprof", "-symbolize=local", "-flame",
f"-add_comment={shlex.join(sys.argv)}",
str(result.absolute())
]
print("# Processing and uploading to pprofresult")
url = subprocess.check_output(cmd).decode('utf-8').strip()
print(url)
except subprocess.CalledProcessError as e:
if has_gcert:
raise Exception("Could not generate pprof results") from e
print("# Please run `gcert` for generating pprof results")
print(f"pprof -symbolize=local -flame {result}")
except KeyboardInterrupt:
return 1
finally:
for cleanup_func in reversed(cleanup):
cleanup_func()
return 0
sys.exit(main())
View on GitHub (pinned to 1b2de5e052)
Solutions
- Confirm the perf data file exists and is not truncated.
- Verify pprof and FlameGraph are installed and on PATH.
- Reproduce locally with the printed `pprof -symbolize=local -flame <result>` to see the real error.
- Re-run the capture if the perf data is corrupt.
Defensive patterns
Strategy: try-catch
Validate before calling
import os
assert result.exists() and result.stat().st_size > 0, (
f"perf data {result} missing or empty") Try / catch
try:
url = subprocess.check_output(cmd, stderr=subprocess.PIPE).decode().strip()
except subprocess.CalledProcessError as e:
if not has_gcert:
print(f'# run gcert then: pprof -symbolize=local -flame {result}')
return 1
raise RuntimeError('Could not generate pprof results') from e Prevention
- Confirm d8 perf data is complete before invoking pprof.
- Install matching pprof + FlameGraph in the environment.
- In CI, surface the captured stderr instead of just the wrapped exception.
When it happens
Trigger: pprof fails on the d8 perf result in an environment where gcert is on PATH.
Common situations: Corrupt or truncated perf data; missing symbols for d8; FlameGraph/pprof tooling issues; pprofresult upload endpoint down.
Related errors
- Could not generate pprof results
- {} not in roots {}
- {} is not a file
- 'git %s' failed.
- --enable-v8windbg is incompatible with --without-bundled-v8.
AI-assisted analysis of nodejs/node@1b2de5e052 (2026-08-13).
Data as JSON: /api/errors/7a473f2c51f0ac53.
Report an issue: GitHub.