Skip to content

🍒 12295 - fix(netty-4.1): Treat Netty native client aborts as non-error responses - #12329

Closed
ygree wants to merge 1 commit into
release/v1.65.xfrom
yury.gribkov/backport-pr-12295
Closed

🍒 12295 - fix(netty-4.1): Treat Netty native client aborts as non-error responses#12329
ygree wants to merge 1 commit into
release/v1.65.xfrom
yury.gribkov/backport-pr-12295

Conversation

@ygree

@ygree ygree commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Backport #12295 to release/v1.65.x

…es (#12295)

fix(netty-4.1): Reproduce Netty's `writevAddresses(..) failed with error(-32): Broken pipe` resulting in an error span with 500 status

fix(netty-4.1): Stop treating cancelled Netty responses as errors

Move client abort detection into the Netty-specific decorator

Merge branch 'master' into ygree/treat-netty-broken-pipe-as-no-err

Fix Netty pipelining test trace isolation

Assert and drain expected traces in AppSec pipelining scenarios so spans
are consumed by the tests that create them. The failure appeared now
because this branch adds native Netty latest-dep dependencies/tests,
changing the `latestDepTest` classpath and execution order enough for
previously unasserted AppSec traces to be written after the next test’s
writer reset.

Add method-aware server trace matching for the HEAD response case.

Removed the two stale `DDSpan.addThrowable` null-message hardening tests
from DDSpanTest.java

Make Netty native client-abort matching flexible but scoped

Replace brittle exact-message matching with a scoped matcher for Netty
NativeIoException writev failures ending in known client-abort errno
messages.

This covers another observed Linux ECONNRESET format:

  writevAddresses(..) failed with error(-104): Connection reset by peer

while still limiting the non-error treatment to native Netty write-side
client aborts, such as Broken pipe and Connection reset by peer, instead
of broadly suppressing unrelated native I/O failures.

Merge branch 'master' into ygree/treat-netty-broken-pipe-as-no-err

Co-authored-by: yury.gribkov <yury.gribkov@datadoghq.com>
(cherry picked from commit 042bde8)
@ygree
ygree requested a review from a team as a code owner August 28, 2026 03:20
@ygree ygree added type: bug fix Bug fix inst: netty Netty instrumentation tag: ai generated Largely based on code generated by an AI or LLM labels Aug 28, 2026
@ygree
ygree requested review from jordan-wong and removed request for a team August 28, 2026 03:20
@ygree ygree modified the milestones: 1.65.1, 1.65.2 Aug 28, 2026

@datadog-official datadog-official Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: PASS

More details

The change keeps the HTTP status for failed writes. It removes the error flag only for known Netty native client-abort messages and keeps the error type and message.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Datadog Autotest · Commit d3b1cad · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

@datadog-official

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 69.73% (+11.82%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: d3b1cad | Docs | View more details | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 14.72 s 14.65 s [-0.4%; +1.3%] (no difference)
startup:insecure-bank:tracing:Agent 13.62 s 13.62 s [-0.7%; +0.8%] (no difference)
startup:petclinic:appsec:Agent 16.88 s 17.23 s [-6.4%; +2.3%] (no difference)
startup:petclinic:iast:Agent 17.28 s 17.46 s [-2.1%; -0.0%] (maybe better)
startup:petclinic:profiling:Agent 16.73 s 16.96 s [-7.2%; +4.5%] (unstable)
startup:petclinic:sca:Agent 17.33 s 17.18 s [-0.0%; +1.8%] (no difference)
startup:petclinic:tracing:Agent 16.19 s 16.50 s [-6.0%; +2.3%] (no difference)

Commit: d3b1cad2 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@pr-commenter

pr-commenter Bot commented Aug 28, 2026

Copy link
Copy Markdown

Kafka / producer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch release/v1.65.x yury.gribkov/backport-pr-12295
git_commit_date 1786643717 1787887211
git_commit_sha cd111ab d3b1cad
See matching parameters
Baseline Candidate
ci_job_date 1787888564 1787888564
ci_job_id 1992829548 1992829548
ci_pipeline_id 133833824 133833824
cpu_model Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz
jdkVersion 11.0.31 11.0.31
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=15002 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=15002 -Dhttp.nonProxyHosts=localhost *.localhost
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-f8hvdatv 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-f8hvdatv 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaProduceBenchmark.benchProduce same

@pr-commenter

pr-commenter Bot commented Aug 28, 2026

Copy link
Copy Markdown

Kafka / consumer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch release/v1.65.x yury.gribkov/backport-pr-12295
git_commit_date 1786643717 1787887211
git_commit_sha cd111ab d3b1cad
See matching parameters
Baseline Candidate
ci_job_date 1787888585 1787888585
ci_job_id 1992829549 1992829549
ci_pipeline_id 133833824 133833824
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.31 11.0.31
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=15002 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=15002 -Dhttp.nonProxyHosts=localhost *.localhost
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-63lp81te 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-63lp81te 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaConsumerBenchmark.benchConsume same

@ygree

ygree commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Close it in favor of the upcoming minor release, as no patch release is planned.

@ygree ygree closed this Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: netty Netty instrumentation tag: ai generated Largely based on code generated by an AI or LLM type: bug fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant