fix(amber): classify wrapped sync timeouts - #7640
Conversation
Backport auto-label reportThis
|
Automated Reviewer SuggestionsBased on the
|
|
| config | throughput | MB/s | latency | max Δ latest / 7d | |
|---|---|---|---|---|---|
| 🔴 | bs=10 sw=10 sl=64 | 402 | 0.245 | 24,069/31,788/31,788 us | 🟢 -9.2% / 🔴 +94.4% |
| ⚪ | bs=100 sw=10 sl=64 | 804 | 0.491 | 121,813/150,022/150,022 us | ⚪ within ±5% / 🔴 +39.4% |
| ⚪ | bs=1000 sw=10 sl=64 | 905 | 0.552 | 1,102,980/1,146,747/1,146,747 us | ⚪ within ±5% / 🔴 -12.2% |
Baseline details
Latest main 12169c2 from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---|---|---|---|---|
| bs=10 sw=10 sl=64 | throughput | 402 tuples/sec | 429 tuples/sec | 774.89 tuples/sec | -6.3% | -48.1% |
| bs=10 sw=10 sl=64 | MB/s | 0.245 MB/s | 0.262 MB/s | 0.473 MB/s | -6.5% | -48.2% |
| bs=10 sw=10 sl=64 | p50 | 24,069 us | 22,740 us | 12,738 us | +5.8% | +88.9% |
| bs=10 sw=10 sl=64 | p95 | 31,788 us | 35,012 us | 16,348 us | -9.2% | +94.4% |
| bs=10 sw=10 sl=64 | p99 | 31,788 us | 35,012 us | 18,848 us | -9.2% | +68.7% |
| bs=100 sw=10 sl=64 | throughput | 804 tuples/sec | 814 tuples/sec | 1,005 tuples/sec | -1.2% | -20.0% |
| bs=100 sw=10 sl=64 | MB/s | 0.491 MB/s | 0.497 MB/s | 0.613 MB/s | -1.2% | -19.9% |
| bs=100 sw=10 sl=64 | p50 | 121,813 us | 121,776 us | 100,970 us | +0.0% | +20.6% |
| bs=100 sw=10 sl=64 | p95 | 150,022 us | 153,249 us | 107,605 us | -2.1% | +39.4% |
| bs=100 sw=10 sl=64 | p99 | 150,022 us | 153,249 us | 116,429 us | -2.1% | +28.9% |
| bs=1000 sw=10 sl=64 | throughput | 905 tuples/sec | 919 tuples/sec | 1,030 tuples/sec | -1.5% | -12.2% |
| bs=1000 sw=10 sl=64 | MB/s | 0.552 MB/s | 0.561 MB/s | 0.629 MB/s | -1.6% | -12.2% |
| bs=1000 sw=10 sl=64 | p50 | 1,102,980 us | 1,082,721 us | 991,433 us | +1.9% | +11.3% |
| bs=1000 sw=10 sl=64 | p95 | 1,146,747 us | 1,152,160 us | 1,036,668 us | -0.5% | +10.6% |
| bs=1000 sw=10 sl=64 | p99 | 1,146,747 us | 1,152,160 us | 1,070,470 us | -0.5% | +7.1% |
Raw CSV
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,497.44,200,128000,402,0.245,24068.70,31788.23,31788.23
1,100,10,64,20,2486.97,2000,1280000,804,0.491,121813.37,150021.83,150021.83
2,1000,10,64,20,22101.37,20000,12800000,905,0.552,1102979.75,1146747.43,1146747.43
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #7640 +/- ##
============================================
- Coverage 89.65% 89.65% -0.01%
- Complexity 4397 4401 +4
============================================
Files 1177 1177
Lines 46996 47004 +8
Branches 5268 5272 +4
============================================
+ Hits 42136 42140 +4
- Misses 3094 3097 +3
- Partials 1766 1767 +1
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
What changes were proposed in this PR?
RxJava's
blockingGetcan wrap a checkedTimeoutException. The previous catch matched only a direct timeout, so a wrapped timeout fell through to the generic error handler and returnedErrorinstead ofKilled.This change classifies an exception as a timeout when any safe, finite link in its cause chain is a
TimeoutException. Tests cover direct and nested timeouts as positive cases, plus unrelated exceptions andnullas negative cases.Any related issues, documentation, discussions?
Closes #6198
How was this PR tested?
The focused timeout-classification tests passed. Scala formatting and Scalafix checks also passed.
I also ran the complete
SyncExecutionResourceSpec. The new timeout cases passed; 8 pre-existing storage-result cases could not complete because the local Iceberg REST catalog expected atlocalhost:8181was not running. Those cases are outside this change and will be exercised by the repository CI environment.Was this PR authored or co-authored using generative AI tooling?
Generated-by: OpenAI Codex (GPT-5)