cloudflare
workerd
BlogDocsChangelog

[o11y] Do error checking in R2 earlier

#5756Merged
Comparing
felix/122325-stw-unused-tracer
(
923ab9f
) with
main
(
5b5dcee
)
CodSpeed Performance Gauge
0%
Untouched
140
Skipped
38

Benchmarks

Skipped (38)

Passed

New_Small_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
+1%
1.9 ms1.9 ms
Existing_Large_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
+1%
2.6 ms2.6 ms
New_Medium_SlowValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.4 ms3.4 ms
New_Small_Timed10us
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.6 ms3.6 ms
Existing_Large_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.9 ms3.9 ms
New_Medium_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.8 ms2.8 ms
New_Large_IoLatencyValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
New_Large_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
4 ms3.9 ms
nullBodyWithStatus[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
10.3 µs10.2 µs
New_Tiny_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
7.1 ms7 ms
Encode_OneByte_256[TextEncoder][0/1/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
5.2 ms5.1 ms
Existing_Tiny_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3 ms3 ms
New_Large_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
4 ms4 ms
New_Tiny_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.8 ms2.8 ms
New_Tiny_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.8 ms2.8 ms
Existing_Small_Timed1ms
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.6 ms6.6 ms
New_Small_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2 ms2 ms
New_Medium_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.8 ms3.8 ms
jsonResponse[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
34.6 µs34.5 µs
New_Large_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.9 ms6.9 ms
request[RegExpBenchmark]
src/workerd/tests/bench-regex.c++
CodSpeed Performance Gauge
0%
7.3 ms7.3 ms
New_Tiny_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
4.7 ms4.7 ms
Existing_Small_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
1.6 ms1.6 ms
set_append[ApiHeaders]
src/workerd/tests/bench-api-headers.c++
CodSpeed Performance Gauge
0%
11.7 ms11.7 ms
New_Medium_Timed100us
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
4.4 ms4.4 ms
Existing_Tiny_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
15 ms15 ms
Existing_Medium_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.3 ms6.3 ms
Encode_ASCII_8192[TextEncoder][0/0/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
13.2 ms13.1 ms
Existing_Tiny_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3 ms3 ms
Existing_Medium_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.7 ms6.7 ms
New_Small_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
Existing_Medium_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.7 ms6.7 ms
Encode_ASCII_1024[TextEncoder][0/0/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
3.7 ms3.6 ms
EncodeInto_ASCII_8192[TextEncoder][1/0/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
3.4 ms3.4 ms
New_Medium_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
10.1 ms10.1 ms
EncodeInto_TwoByte_8192[TextEncoder][1/2/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
96.7 ms96.7 ms
bm_Http_FullProtocol
external/+http+capnp-cpp/src/capnp/compat/http-over-capnp-bench.c++
CodSpeed Performance Gauge
0%
79 µs79 µs
bm_Http_OverCapnpFullRPC
external/+http+capnp-cpp/src/capnp/compat/http-over-capnp-bench.c++
CodSpeed Performance Gauge
0%
236.7 µs236.6 µs
ParseAndSerialize
src/workerd/tests/bench-mimetype.c++::Mimetype
CodSpeed Performance Gauge
0%
74.9 ms74.9 ms
EncodeInto_TwoByte_1024[TextEncoder][1/2/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
14.2 ms14.2 ms
bm_Http_OverCapnpLocalCall
external/+http+capnp-cpp/src/capnp/compat/http-over-capnp-bench.c++
CodSpeed Performance Gauge
0%
128.3 µs128.3 µs
Serialize
src/workerd/tests/bench-mimetype.c++::Mimetype
CodSpeed Performance Gauge
0%
74.6 ms74.6 ms
Encode_OneByte_8192[TextEncoder][0/1/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
84.8 ms84.8 ms
Parse[KjHeaders]
src/workerd/tests/bench-kj-headers.c++
CodSpeed Performance Gauge
0%
44.3 µs44.3 µs
bm_Http_Baseline
external/+http+capnp-cpp/src/capnp/compat/http-over-capnp-bench.c++
CodSpeed Performance Gauge
0%
11.6 µs11.6 µs
JsString_Utf8Length_Utf16_NonFlat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.8 µs8.8 µs
JsString_Utf8Length_Utf16_NonFlat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
73.7 µs73.7 µs
bm_Http_ClientWrapper
external/+http+capnp-cpp/src/capnp/compat/http-over-capnp-bench.c++
CodSpeed Performance Gauge
0%
35.8 µs35.8 µs
bm_Coro_Immediate
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
4.7 µs4.7 µs
bm_Coro_CoAwait_ImmediateCoroutine
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
6.5 µs6.5 µs
bm_Coro_CoAwait_ImmediatePromise
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
6.3 µs6.3 µs
bm_Coro_Pow2_20
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
21.2 µs21.2 µs
bm_Coro_Shift_20
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
23.9 µs23.9 µs
bm_Promise_Immediate
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
3.7 µs3.7 µs
bm_Promise_ImmediatePromise_Then
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
4.6 µs4.6 µs
bm_Promise_ReadyNow
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
2.1 µs2.1 µs
bm_Promise_Pow2_20
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
9.9 µs9.9 µs
bm_Promise_Shift_20
external/+http+capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
10.8 µs10.8 µs
JsString_Utf8Length_Latin1_Flat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
4.6 µs4.6 µs
JsString_Utf8Length_Latin1_Flat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
1.7 µs1.7 µs
JsString_Utf8Length_Latin1_Flat_32
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
920.3 ns920.3 ns
JsString_Utf8Length_Latin1_NonFlat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
7.9 µs7.9 µs
JsString_Utf8Length_Latin1_NonFlat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
42 µs42 µs
JsString_Utf8Length_Latin1_NonFlat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
12.1 µs12.1 µs
JsString_Utf8Length_Utf16_Flat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
2.7 µs2.7 µs
JsString_Utf8Length_Utf16_Invalid_Flat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
2.7 µs2.7 µs
JsString_Utf8Length_Utf16_Invalid_NonFlat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.8 µs8.8 µs
JsString_Utf8Length_Utf16_Invalid_Flat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.6 µs8.6 µs
JsString_Utf8Length_Utf16_Invalid_Flat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
62.9 µs62.9 µs
JsString_Utf8Length_Utf16_Invalid_NonFlat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
16.1 µs16.1 µs
JsString_Utf8Length_Utf16_Flat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
62.9 µs62.9 µs
JsString_Utf8Length_Utf16_Flat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.6 µs8.6 µs
JsString_Utf8Length_Utf16_Invalid_NonFlat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
73.7 µs73.7 µs
JsString_Utf8Length_Utf16_NonFlat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
16.1 µs16.1 µs
JsString_Utf8Length_Latin1_Flat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
31 µs31 µs
Util_RecursivelyFreeze
src/workerd/tests/bench-util.c++
CodSpeed Performance Gauge
0%
10.8 ms10.8 ms
EncodeInto_OneByte_256[TextEncoder][1/1/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
4.5 ms4.5 ms
Encode_TwoByte_8192[TextEncoder][0/2/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
146.1 ms146.1 ms
arrayBufferBody[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
17.3 µs17.3 µs
EncodeInto_OneByte_1024[TextEncoder][1/1/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
10.5 ms10.5 ms
EncodeInto_OneByte_8192[TextEncoder][1/1/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
66.7 ms66.7 ms
Encode_TwoByte_1024[TextEncoder][0/2/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
19.5 ms19.5 ms
Existing_Small_SlowValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
5.6 ms5.6 ms
EncodeInto_ASCII_1024[TextEncoder][1/0/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
2.6 ms2.6 ms
Existing_Medium_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
13 ms13 ms
New_Small_IoLatencyByte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
4.5 ms4.5 ms
EncodeInto_ASCII_256[TextEncoder][1/0/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
2.6 ms2.6 ms
New_Small_Timed1ms
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.6 ms3.6 ms
Test_JSON_ENC
src/workerd/tests/bench-json.c++
CodSpeed Performance Gauge
0%
207 ms207 ms
constructor[ApiHeaders]
src/workerd/tests/bench-api-headers.c++
CodSpeed Performance Gauge
0%
67.7 ms67.7 ms
Existing_Medium_IoLatencyByte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
8.2 ms8.2 ms
Test_JSON_DEC
src/workerd/tests/bench-json.c++
CodSpeed Performance Gauge
0%
3.2 s3.2 s
request[GlobalScopeBenchmark]
src/workerd/tests/bench-global-scope.c++
CodSpeed Performance Gauge
0%
52.7 ms52.7 ms
Existing_Large_IoLatencyValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
Existing_Small_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
5 ms5 ms
New_Tiny_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
23.3 ms23.3 ms
New_Large_IoLatencyByte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
7.2 ms7.2 ms
New_Medium_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.8 ms2.8 ms
Existing_Tiny_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
12.6 ms12.6 ms
Encode_ASCII_32[TextEncoder][0/0/32]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
New_Medium_IoLatencyByte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
5.4 ms5.4 ms
Encode_ASCII_256[TextEncoder][0/0/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
3.1 ms3.1 ms
Existing_Tiny_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
31.2 ms31.2 ms
Existing_Small_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6 ms6 ms
Encode_OneByte_1024[TextEncoder][0/1/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
12 ms12 ms
Existing_Tiny_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
12.6 ms12.6 ms
New_Tiny_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
4.7 ms4.7 ms
Existing_Medium_SlowValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.2 ms6.2 ms
Existing_Large_Byte_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
14.4 ms14.4 ms
Existing_Small_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
12.3 ms12.3 ms
New_Small_SlowValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.5 ms2.5 ms
Existing_Large_IoLatencyByte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
14.6 ms14.7 ms
simpleStringBody[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
21.5 µs21.5 µs
Existing_Medium_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
5.7 ms5.7 ms
New_Large_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.9 ms6.9 ms
Existing_Medium_IoLatencyValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
7.2 ms7.2 ms
Existing_Small_IoLatencyValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.6 ms6.6 ms
Existing_Small_IoLatencyByte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
7.5 ms7.6 ms
Existing_Large_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
14.4 ms14.4 ms
Encode_TwoByte_256[TextEncoder][0/2/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
7 ms7 ms
New_Small_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
9.2 ms9.2 ms
New_Medium_Byte
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.8 ms3.8 ms
New_Small_Timed100us
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.6 ms3.6 ms
New_Large_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.6 ms2.7 ms
EncodeInto_TwoByte_256[TextEncoder][1/2/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
5.4 ms5.4 ms
Existing_Small_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
5 ms5.1 ms
Existing_Large_Byte_Auto64K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
3.9 ms3.9 ms
New_Medium_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
8.4 ms8.4 ms
Existing_Medium_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
5.7 ms5.7 ms
New_Large_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
2.6 ms2.7 ms
Existing_Small_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
1.6 ms1.6 ms
Existing_Small_Timed10us
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
6.6 ms6.6 ms
Existing_Medium_Timed100us
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
7.2 ms7.3 ms
New_Medium_IoLatencyValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
0%
4.4 ms4.4 ms
New_Small_Byte_Auto64K_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
-1%
4.2 ms4.2 ms
Existing_Large_Value
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
-1%
2.6 ms2.6 ms
Existing_Small_Timed100us
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
-1%
6.6 ms6.6 ms
New_Small_IoLatencyValue
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
-1%
3.5 ms3.6 ms
New_Small_Value_HWM16K
src/workerd/tests/bench-stream-piping.c++
CodSpeed Performance Gauge
-1%
1.9 ms2 ms
bodyWithHeaders[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
-3%
24 µs24.9 µs

Commits

Click on a commit to change the comparison range
Base
main
5b5dcee
-0.05%
[o11y] Do error checking in R2 earlier Before #5790, this would have avoided "destructed WorkerTracer" warnings when we would construct a WorkerInterface but not end up using it due to the errors being detected later. However, this 1) does not apply for prod where R2 is implemented differently and 2) no longer fixes a warning since the WorkerInterface never has delivered() called. However, it is still good practice to check for errors earlier and avoid memory allocations from the getHttpClient() calls. While this PR is not aiming for completion I also cleaned up a call in web-socket.c++ that may be susceptible to the same issue.
923ab9f
25 days ago
by fhanau
© 2026 CodSpeed Technology
Home Terms Privacy Docs