fix(dif): allow PE DWARF debug companion upload#3237
fix(dif): allow PE DWARF debug companion upload#3237supervacuus wants to merge 5 commits intogetsentry:masterfrom
Conversation
|
@loewenheim, I am going to ping you too here, since you might have an opinion on the upstream approach I took. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
loewenheim
left a comment
There was a problem hiding this comment.
Hi @supervacuus, no need to be sorry; on the contrary, thank you very much for working on this!
The logging change is simple and obviously sensible on its own. It could easily be split out into its own PR. Similarly, the goblin/symbolic update doesn't have to happen in the same PR as the test changes—if we want to go through with the test changes, they're correct without the dependency updates too.
That leaves the elephant in the room, which is the test changes and the attendant question of what kind of guarantees we want to make. I'm not aware that we ever intended to guarantee that zip files produced by sentry-cli would be byte-reproducible across versions, and I don't think it causes us any trouble if they aren't. Certainly, in #2109 I updated the zip dependency, which also made it necessary to change a hash digest in a test. This was totally uncontroversial at the time.
As such, I believe the testing changes you're making make sense. Still, I would like @szokeasaurusrex's opinion when he comes back next week.
I am fine with splitting this. The reason I didn't was that the logging change by itself seemed too small and was particularly evident with the upstream changes, and integrating So, while everything can be reviewed in isolation, you can only verify the upside of the log-fix when you introduce the upstream And to get a green output for the All of these options are fine, but I wanted to offer the full picture first. Let me know which route you prefer. Especially, should I go forward with the
Maybe then splitting is the right choice. This way, we can decouple the topics somewhat. |
Co-authored-by: Sebastian Zivota <loewenheim@users.noreply.github.com>
@loewenheim, this is the current split proposal:
If this makes more sense to you, then we can close this PR. |
|
Sorry, I just realized I never specifically weighed in on the |

Description
I am sorry right away because this kinda of a rabbit hole PR.
So this started with a bump of
symbolicto12.17.3to include getsentry/symbolic#960.But that immediately raised a couple of issues
symbolicupdated itszipdependency (2.4.2to7.2.0) since the last bump. This changed the encoding and invalidated a bunch of test assertions.goblindegraded performance only due to formatting.goblinleniency in parsing exposed performance edge-cases for some of the debug companions, during PE import-table parsing, the result of which neithersymbolicnorsentry-clireally needs.The PR addresses the issues in the following way:
build_deterministic()insrc/utils/source_bundle.rswas not entirely clear, whether you want two runs of the same version to have predictably the same output (which I changed it to) or whether it should actually be stable across future versions (which azipbump would break).PEDWARFdebug companions became blazing fast:should_skip_log()fromlog()toenabled()so that we don't pay the formatting cost of log lines that we skip after formatting anyway. This required only a change in parameter from the log record to its metadata. Since that filter only existed forgoblinto begin with, I think it is fine.goblinoption that excludes thePEimport table from parsing. Of course, this requires further upstream PRs (cargopointsgoblinandsymbolicto dev branches), but I wanted to check whether you are generally in agreement with these changes before going upstream.Upstream changes required:
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.