-
-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(difs): Add dif candidates info to module list #309
Conversation
This adds new information about which DIF candidates were considered to be used for modules. So far only part of all the information we want to expose is present.
- Describe things properly. - Make sure the type names make sense and are sanely used. - Optimise some Vec sharing. - Scope future work better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's please put all the candidate information behind a config flag. That is, we can compute all the information internally, but only serialize it when the flag is given. This allows us to iterate on this feature and make releases without impacting any users -- including Sentry.
Co-authored-by: Jan Michael Auer <mail@jauer.org>
It is possible for the meta (and data) caches to return transient errors. This extends the diagnostics built up with this information as well.
Providing details on malformed requires a lot more refactoring, probably not for this PR.
At least for now, there's a followup work note on the doc.
That says a bit better what it actually is.
Wouldn't it be nice if this would be statically enforced? Removing deserialisation was also an option, but we'll need it later.
Adding details will require a lot of caching refactoring.
This PR only covers the download info, the debug and unwind info will follow in followup PRs. |
Instructions for snapshot changesSentry runs a symbolicator integration test suite located at Follow these steps to update snapshots in Sentry:
|
Symbolicator snapshots need updating for the new download info available from getsentry/symbolicator#309.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lets do it. Since you will solve some of the things I mentioned in the followup
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After discussing offline, two final change requests:
- Please move the flag to the request struct (for all request types)
- Please default it to off
This requires the request to opt into the dif candidates info. It introduces a new options field that could be extended further in the future.
Apologies for the force-pushing. I hard resetted the last config commit without realising that's probably not the best way for the PR. Anyway, the DIF info is now only enabled if in the request as can be seen in the integration tests. This also means the matching PR for the sentry snapshot tests doesn't need to happen as those responses should not change at all. |
src/utils/multipart.rs
Outdated
@@ -46,3 +47,11 @@ pub fn read_multipart_sources( | |||
.and_then(|data| Ok(serde_json::from_slice(&data)?)), | |||
) | |||
} | |||
|
|||
pub fn read_multipart_request_data( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This + read_multipart_sources can be one generic fn
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that would seem sane but it appears I'm not smart enough to understand serde's lifetimes. I'm just living with this for now instead of wasting loads of time. I'd appreciate any hints though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I clicked approve too quickly again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now for real.
This adds new information about which DIF candidates were considered
to be used for modules. So far only part of all the information we
want to expose is present.
sentry snapshot updates: getsentry/sentry#22395