Repository navigation
Conversation
Automated Reviewer SuggestionsBased on the
|
Backport auto-label reportThis
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8885 +/- ##
============================================
+ Coverage 92.60% 92.64% +0.03%
- Complexity 5046 5765 +719
============================================
Files 1252 1260 +8
Lines 53586 56972 +3386
Branches 6673 7193 +520
============================================
+ Hits 49625 52782 +3157
- Misses 2317 2474 +157
- Partials 1644 1716 +72
*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:
|
|
| config | throughput | MB/s | latency | max Δ latest / 7d | |
|---|---|---|---|---|---|
| 🔴 | bs=10 sw=10 sl=64 | 523 | 0.319 | 18,781/27,688/27,688 us | 🔴 -9.6% / 🔴 +88.7% |
| 🟢 | bs=100 sw=10 sl=64 | 1,172 | 0.715 | 84,330/106,370/106,370 us | 🟢 -11.7% / 🟢 -11.6% |
| 🔴 | bs=1000 sw=10 sl=64 | 1,374 | 0.839 | 726,173/800,536/800,536 us | 🔴 +6.2% / 🟢 -22.6% |
Baseline details
Latest main be65bf8 from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---|---|---|---|---|
| bs=10 sw=10 sl=64 | throughput | 523 tuples/sec | 578 tuples/sec | 866.99 tuples/sec | -9.5% | -39.7% |
| bs=10 sw=10 sl=64 | MB/s | 0.319 MB/s | 0.353 MB/s | 0.529 MB/s | -9.6% | -39.7% |
| bs=10 sw=10 sl=64 | p50 | 18,781 us | 17,355 us | 11,989 us | +8.2% | +56.6% |
| bs=10 sw=10 sl=64 | p95 | 27,688 us | 26,979 us | 14,672 us | +2.6% | +88.7% |
| bs=10 sw=10 sl=64 | p99 | 27,688 us | 26,979 us | 17,906 us | +2.6% | +54.6% |
| bs=100 sw=10 sl=64 | throughput | 1,172 tuples/sec | 1,156 tuples/sec | 1,111 tuples/sec | +1.4% | +5.5% |
| bs=100 sw=10 sl=64 | MB/s | 0.715 MB/s | 0.705 MB/s | 0.678 MB/s | +1.4% | +5.4% |
| bs=100 sw=10 sl=64 | p50 | 84,330 us | 81,872 us | 95,405 us | +3.0% | -11.6% |
| bs=100 sw=10 sl=64 | p95 | 106,370 us | 120,516 us | 102,332 us | -11.7% | +3.9% |
| bs=100 sw=10 sl=64 | p99 | 106,370 us | 120,516 us | 115,219 us | -11.7% | -7.7% |
| bs=1000 sw=10 sl=64 | throughput | 1,374 tuples/sec | 1,406 tuples/sec | 1,141 tuples/sec | -2.3% | +20.5% |
| bs=1000 sw=10 sl=64 | MB/s | 0.839 MB/s | 0.858 MB/s | 0.696 MB/s | -2.2% | +20.5% |
| bs=1000 sw=10 sl=64 | p50 | 726,173 us | 714,175 us | 938,794 us | +1.7% | -22.6% |
| bs=1000 sw=10 sl=64 | p95 | 800,536 us | 753,665 us | 984,521 us | +6.2% | -18.7% |
| bs=1000 sw=10 sl=64 | p99 | 800,536 us | 753,665 us | 1,008,827 us | +6.2% | -20.6% |
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,382.09,200,128000,523,0.319,18781.04,27687.54,27687.54
1,100,10,64,20,1706.92,2000,1280000,1172,0.715,84329.59,106370.18,106370.18
2,1000,10,64,20,14552.94,20000,12800000,1374,0.839,726173.04,800535.65,800535.65|
/request-review @xuang7 |
What changes were proposed in this PR?
ImageTaskCodegen.parsePython'simage-to-imagebranch built a data URL from the provider'sb64_jsonwithout checking it, so a malformed but valid-JSON 200 put an unrenderable value in the result column, a null field became the literaldata:image/png;base64,None, with nothing to indicate why the image was blank.b64_jsonmust now be a non-empty string; anything else falls through tojson.dumps(body), which is what the branch already did for unrecognised shapes.Scoped deliberately to
b64_json, matching the issue. The siblingurllookups in the same branch have a comparable gap and are left for a separate issue.Not addressed: a
b64_jsonthat is a string but not valid base64 still yields an unrenderable data URL. Detecting that means decoding the value on every row, and corrupt-but-well-formed base64 would pass regardless, so the browser's rejection is unchanged either way. Same reasoning as #8872.Any related issues?
Closes #8870
How was this PR tested?
Written test-first: a test asserting the string guard was added to
ImageTaskCodegenSpecand fails against the current parse. The suite is at 155 tests,PythonCodeRawInvalidTextSpecpy-compiles all 117 operators, andscalafmtCheckandscalafix --checkare clean.The generated parser was also run directly: a null or numeric
b64_jsonnow returns the serialized body, and a valid base64 payload still produces the same data URL as before.Was this PR authored or co-authored using generative AI tooling?
Yes, this PR was co-authored with Claude in compliance with ASF policy.