fix(crashtracking): check fields and exclude uuid for has_data - #2322
Conversation
has_data
e46ad6c to
c0f2ebb
Compare
📚 Documentation Check Results📦
|
🔒 Cargo Deny Results📦
|
c0f2ebb to
d9cc808
Compare
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 55c8d8c | Docs | Datadog PR Page | Give us feedback! |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d9cc80831c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| let mut blank = Self::default(); | ||
| blank.uuid = self.uuid; | ||
|
|
||
| self != &blank |
There was a problem hiding this comment.
Don't drop streams that only reached config
When the collector starts a real crash report, emit_crashreport writes and flushes the config before message/siginfo/kind, and process_line stores that config outside CrashInfoBuilder. If the collector exits or the pipe closes after the config block but before the first builder field, this new comparison leaves has_data() false, so receive_report_from_stream returns Ok(None) and the receiver silently treats a partial crash report as normal termination instead of surfacing the incomplete report/error. Consider tracking that any crash-report section was received, or include config.is_some() in the post-loop decision.
AGENTS.md reference: AGENTS.md:L71-L73
Useful? React with 👍 / 👎.
BenchmarksComparisonBenchmark execution time: 2026-08-05 17:45:00 Comparing candidate commit d9cc808 in PR branch Found 3 performance improvements and 0 performance regressions! Performance is the same for 137 metrics, 0 unstable metrics.
|
danielsn
left a comment
There was a problem hiding this comment.
But please set a description and motivation for this PR
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
…mote_config/agentless_fetcher * 'main' of github.com:DataDog/libdatadog: feat(data-pipeline)!: add flush_and_close to the trace buffer (#2313) refactor(rc)!: make conversion from RemoteConfigProduct back and forth generally available (#2325) chore: release v40.0.0 (#2326) feat(datadog-ffe): server-side EVP flagevaluation payload + bincode-safe sidecar delivery (#2117) feat(data-pipeline): set structured span values (#2300) feat(telemetry)!: Add Installation signature and AppProduct changes payloads (#2213) fix(libdd-trace-utils): apply SpanLink flags masking when v0.5 json encoding (#2314) feat(data-pipeline): encode structured values (#2304) feat(crashtracking): send debug log when no data is received at all (#2321) chore: release v39.0.0 (#2324) feat(data-pipeline): add span links FFI (#2305) fix(crashtracking): check fields and exclude uuid for `has_data` (#2322) feat(data-pipeline): add span events FFI (#2301)

What does this PR do?
Excludes
uuidfield fromCrashInfoBuilderwhen checking forhas_dataMotivation
Previously, the
has_datacheck would compare the whole struct againstSelf::default(). However, uuid is generated when the builder is created, so this would always return trueAdditional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.