Skip to content

fix(goblin): disable PE import table parser#964

Merged
supervacuus merged 5 commits into
masterfrom
fix/disable_goblin_import_parser
May 26, 2026
Merged

fix(goblin): disable PE import table parser#964
supervacuus merged 5 commits into
masterfrom
fix/disable_goblin_import_parser

Conversation

@supervacuus

Copy link
Copy Markdown
Collaborator

This is a follow-up to #960 and depends on an upstream change in goblin that has not yet been accepted (m4b/goblin#522).

It makes the integration of PE+DWARF debug companions into the DIF pipeline practical (see getsentry/sentry-cli#3240)

@supervacuus

Copy link
Copy Markdown
Collaborator Author

Just FYI, I proposed an alternative PR upstream that fixes the underlying issue instead of adding an import parser flag: m4b/goblin#527

@supervacuus supervacuus force-pushed the fix/disable_goblin_import_parser branch from 681b909 to 830af82 Compare May 25, 2026 14:07
@supervacuus

Copy link
Copy Markdown
Collaborator Author

The option was merged upstream (m4b/goblin#522) and released with 0.10.6.

0.10.6 also contains the fix (m4b/goblin#527) for the performance regression that became apparent when reading PE+DWARF debug companions with permissive PR parsing enabled. But disabling the import parser also prevents us from running into it.

@supervacuus supervacuus marked this pull request as ready for review May 25, 2026 14:16
@supervacuus supervacuus requested a review from a team as a code owner May 25, 2026 14:16
Comment thread CHANGELOG.md Outdated
Co-authored-by: David Herberth <[email protected]>
@supervacuus

Copy link
Copy Markdown
Collaborator Author

Before I merge this, to verify, since I created this PR initially from a different premise:

However, the tests (+snapshots and fixtures) I introduced in #960 are now missing, right? That should still be done, right? Otherwise, a sensible summary? Regarding release plans and potential bumps, are we good?

@Dav1dde

Dav1dde commented May 26, 2026

Copy link
Copy Markdown
Member

However, the tests (+snapshots and fixtures) I introduced in #960 are now missing, right? That should still be done, right?

Good catch, yes, the tests are gone and it would be really useful to have them back!

Regarding release plans and potential bumps, are we good?

Yep, that looks all good to me. Let's wait for @loewenheim as well, he has a lot more context.

@loewenheim

Copy link
Copy Markdown
Contributor

Everything seems in order now, thanks for picking this up again @supervacuus!

@supervacuus supervacuus merged commit 7bf24f2 into master May 26, 2026
21 checks passed
@supervacuus supervacuus deleted the fix/disable_goblin_import_parser branch May 26, 2026 08:32
szokeasaurusrex pushed a commit to getsentry/sentry-cli that referenced this pull request Jun 2, 2026
### Description

Extracted from #3237

Some tests currently fail, because `symbolic` updated its `zip`
dependency (`2.4.2` to `7.2.0`) since the last bump. This changed the
encoding and invalidated a bunch of test assertions. A fix proposal for
the failing tests is #3239.

This change was triggered by bumping `symbolic` to `12.17.3` to include
getsentry/symbolic#960.

The new permissive PE parser fixes in
getsentry/symbolic#960 exposed performance edge
cases for some of the debug companions during PE import-table parsing,
the result of which neither `symbolic` nor `sentry-cli` really needs.

The PR addresses the issue in the following way:

I introduced a new `goblin` option that excludes the `PE` import table
from parsing. Of course, this requires further upstream PRs (`cargo`
points `goblin` and `symbolic` to dev branches) before we can merge
this, but I wanted to check whether you are generally in agreement with
these changes before going upstream.

Upstream changes required:

- m4b/goblin#522
- getsentry/symbolic#964


Ideally, this PR gets merged after
#3238 and
#3239, because both solve
issues this PR is affected by. If we drop or defer
#3239, we need to update all
snapshots and magic digests here first.

### Issues

At least partially fixes
getsentry/sentry#104738

### Legal Boilerplate
Look, I get it. The entity doing business as "Sentry" was incorporated
in the State of Delaware in 2015 as Functional Software, Inc. and is
gonna need some rights from me in order to utilize my contributions in
this here PR. So here's the deal: I retain all rights, title and
interest in and to my contributions, and by keeping this boilerplate
intact I confirm that Sentry can use, modify, copy, and redistribute my
contributions, under Sentry's choice of terms.
loewenheim pushed a commit to getsentry/sentry that referenced this pull request Jun 3, 2026
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.

3 participants