-
Notifications
You must be signed in to change notification settings - Fork 15
[crashtracker] Retrieve panic message when crashing #1361
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
base: main
Are you sure you want to change the base?
Conversation
BenchmarksComparisonBenchmark execution time: 2025-12-29 13:28:52 Comparing candidate commit 8361d3b in PR branch Found 0 performance improvements and 2 performance regressions! Performance is the same for 55 metrics, 2 unstable metrics. scenario:credit_card/is_card_number/378282246310005
CandidateCandidate benchmark detailsGroup 1
Group 2
Group 3
Group 4
Group 5
Group 6
Group 7
Group 8
Group 9
Group 10
Group 11
Group 12
Group 13
Group 14
Group 15
Group 16
Group 17
Group 18
Group 19
BaselineOmitted due to size. |
|
YES PLEASE :D |
7ec74cb to
6646a2a
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1361 +/- ##
==========================================
+ Coverage 71.44% 71.47% +0.02%
==========================================
Files 411 414 +3
Lines 66044 66669 +625
==========================================
+ Hits 47186 47649 +463
- Misses 18858 19020 +162
🚀 New features to boost your workflow:
|
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-apple-darwin
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-apple-darwin
x86_64-unknown-linux-gnu
|
86da0b0 to
ba0552b
Compare
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: 8361d3b | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
2c0f271 to
a537d67
Compare
dadd236 to
7e2f3b4
Compare
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.
LGTM
| }; | ||
|
|
||
| // Store the message, cleaning up any old message | ||
| let message_ptr = PANIC_MESSAGE.swap(Box::into_raw(Box::new(message)), SeqCst); |
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.
Can recursive panics happen? Seems super rare but if somehow we get a panic when formatting or something, could we accidentally do a double free here since we drop the pointer unconditionally
- The panic hook panics recursively,
- The second panic happens before the first finishes,
- The pointer swap occurs again.
Not sure if this is worth caring about or something that would even happen so 🤷🏽♂️
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.
no because PANIC_MESSAGE is an atomic ptr. this should be good
7d17046 to
cd47892
Compare
cd47892 to
8361d3b
Compare
What does this PR do?
This PR add the panic message to the crash report.
Motivation
In a
panic=abortmode, when a process panics, a SIGABORT signal is sent. The crashtracker intercepts the signal, generates a crash report, creates a message based on the signal info and send the report.Adding the panic message, we can enrich the crash report and help in tracking the crash location.
We take care when the message type is
&str,Stringor unknown.I added
bin_teststests to check different type of messages and also the fork case.Additional Notes
For now, we only handle the case of
panic=abort, in case of apanic=unwind, the signal handler is not called and we do not generate a crash report.Additional note
https://datadoghq.atlassian.net/browse/PROF-12985