Skip to content

[Deploy preview] Skip pseudo-libraries like [vdso] during symbolication#6099

Draft
canova wants to merge 1 commit into
firefox-devtools:mainfrom
canova:skip-vdso
Draft

[Deploy preview] Skip pseudo-libraries like [vdso] during symbolication#6099
canova wants to merge 1 commit into
firefox-devtools:mainfrom
canova:skip-vdso

Conversation

@canova

@canova canova commented Jun 16, 2026

Copy link
Copy Markdown
Member

Pseudo-modules such as [vdso], [vsyscall], [heap], [stack] and [anon:...] are kernel- or allocator-provided mappings that have no symbol files, so requesting symbols for them is always pointless.

Worse, it is now actively harmful because the Mozilla symbolication server (Eliot) rejects the entire batched /symbolicate/v5 request with an HTTP 400 ("job N has invalid modules: module index 0 has an invalid debug_filename") when any job's module name contains brackets. Because we batch up to 10 libraries into a single request, that 400 has no results field and our response validation throws for the whole chunk, so every other library in it (most importantly libxul) fails to symbolicate too. The net effect is a profile with no symbols at all, even though the symbols are available on the server.

This was previously harmless, Eliot (I think) used to tolerate [vdso], returning found_modules: false for that job while symbolicating the rest, which only produced a per-library warning in the console.

@canova canova changed the title [Deploy preview Skip pseudo-libraries like [vdso] during symbolication [Deploy preview] Skip pseudo-libraries like [vdso] during symbolication Jun 16, 2026
@codecov

codecov Bot commented Jun 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.34%. Comparing base (93787a0) to head (20e32cb).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff            @@
##             main    #6099    +/-   ##
========================================
  Coverage   83.34%   83.34%            
========================================
  Files         338      338            
  Lines       35868    35871     +3     
  Branches     9944    10050   +106     
========================================
+ Hits        29895    29898     +3     
  Misses       5545     5545            
  Partials      428      428            

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Pseudo-modules such as [vdso], [vsyscall], [heap], [stack] and
[anon:...] are kernel- or allocator-provided mappings that have no
symbol files, so requesting symbols for them is always pointless.

Worse, it is now actively harmful because the Mozilla symbolication
server (Eliot) rejects the entire batched /symbolicate/v5 request with
an HTTP 400 ("job N has invalid modules: module index 0 has an invalid
debug_filename") when any job's module name contains brackets. Because
we batch up to 10 libraries into a single request, that 400 has no
`results` field and our response validation throws for the whole chunk,
so every other library in it (most importantly libxul) fails to
symbolicate too. The net effect is a profile with no symbols at all,
even though the symbols are available on the server.

This was previously harmless, Eliot (I think) used to tolerate [vdso],
returning found_modules: false for that job while symbolicating the
rest, which only produced a per-library warning in the console.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant