Stranger6667
jsonschema
BlogDocsChangelog

fix: Stack overflow during validation of schemas with circular `$ref` chains

#898Merged
Comparing
dd/fix-recursion-2
(
8e5cc94
) with
master
(
13598ba
)
CodSpeed Performance Gauge
0%
Untouched
61

Benchmarks

Passed

iter_errors[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
+4%
71.2 µs68.5 µs
subresources_of[Fast]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+2%
1.5 µs1.4 µs
subresources_of[CITM]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+2%
1.9 µs1.8 µs
subresources_of[GeoJSON]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+2%
1.9 µs1.9 µs
evaluate[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
+1%
160 µs157.9 µs
evaluate[Fast/Invalid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
+1%
41.8 µs41.3 µs
pointer[double]
crates/jsonschema-referencing/benches/pointer.rs::benches::bench_pointers::JSON Pointer
CodSpeed Performance Gauge
+1%
5.8 µs5.7 µs
try_with_resource[Swagger]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
+1%
373 µs369.4 µs
try_with_resource[Fast]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
+1%
27.1 µs26.8 µs
subresources_of[draft 4]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.2 µs3.2 µs
subresources_of[draft 6]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.3 µs3.2 µs
subresources_of[draft 7]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.5 µs3.5 µs
subresources_of[draft 2019-09]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.8 µs3.7 µs
subresources_of[draft 2020-12]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.9 µs3.9 µs
subresources_of[Open API]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
3.9 µs3.9 µs
pointer[single]
crates/jsonschema-referencing/benches/pointer.rs::benches::bench_pointers::JSON Pointer
CodSpeed Performance Gauge
+1%
4.7 µs4.7 µs
subresources_of[Swagger]
crates/jsonschema-referencing/benches/subresources.rs::benches::bench_subresources::subresources
CodSpeed Performance Gauge
+1%
5 µs5 µs
try_with_resource[CITM]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
+1%
43.6 µs43.4 µs
iter_errors[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
0%
14.5 µs14.4 µs
try_new[draft 4]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
29 µs28.9 µs
pointer[long]
crates/jsonschema-referencing/benches/pointer.rs::benches::bench_pointers::JSON Pointer
CodSpeed Performance Gauge
0%
12.9 µs12.9 µs
try_new[draft 6]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
29.9 µs29.9 µs
try_new[draft 7]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
31.8 µs31.8 µs
try_new[draft 2020-12]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
30.9 µs30.9 µs
try_new[draft 2019-09]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
30.4 µs30.3 µs
build[FHIR]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
211.3 ms211 ms
evaluate[Open API/Zuora]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
682.6 ms682.2 ms
evaluate[GeoJSON/Canada]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
3.2 s3.2 s
try_with_resource[GeoJSON]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
0%
75.8 µs75.8 µs
build[Swagger]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
6.5 ms6.5 ms
build[Open API]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
7.4 ms7.4 ms
evaluate[FHIR/Fhir]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
8.7 ms8.7 ms
build[CITM]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
422.8 µs423.5 µs
evaluate[Swagger/Kubernetes]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
1 s1.1 s
build[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
0%
925.8 µs928.9 µs
evaluate[CITM/Catalog]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
0%
96.8 ms97.2 ms
validate[FHIR/Fhir]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
147.5 µs148.3 µs
is_valid[FHIR/Fhir]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
146.8 µs147.7 µs
evaluate[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
101.2 µs101.9 µs
is_valid[Fast/Invalid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
799.4 ns806.1 ns
build[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
314.4 µs317.1 µs
build[Fast]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
177.6 µs179.3 µs
evaluate[Fast/Valid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
39.7 µs40.1 µs
build[GeoJSON]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
1.3 ms1.3 ms
validate[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
64.6 µs65.5 µs
is_valid[unevaluated_properties]
crates/jsonschema/benches/unevaluated_properties.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
60.8 µs61.6 µs
is_valid[CITM/Catalog]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-1%
4.8 ms4.9 ms
validate[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-1%
12 µs12.2 µs
validate[CITM/Catalog]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-2%
5.5 ms5.6 ms
validate[GeoJSON/Canada]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-2%
10.5 ms10.7 ms
is_valid[GeoJSON/Canada]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-2%
10.5 ms10.7 ms
resolve[small]
crates/jsonschema-referencing/benches/anchor.rs::benches::bench_anchor_lookup::Anchor Lookup
CodSpeed Performance Gauge
-2%
2.6 µs2.6 µs
try_with_resource[Open API]
crates/jsonschema-referencing/benches/registry.rs::benches::bench_subresources::registry
CodSpeed Performance Gauge
-2%
311.4 µs318.6 µs
is_valid[Fast/Valid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-2%
6.4 µs6.5 µs
validate[Fast/Invalid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-2%
4 µs4.1 µs
validate[Swagger/Kubernetes]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-3%
21.4 ms22 ms
is_valid[Swagger/Kubernetes]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-3%
20.4 ms20.9 ms
is_valid[unevaluated_items]
crates/jsonschema/benches/unevaluated_items.rs::benches::run_benchmarks
CodSpeed Performance Gauge
-3%
10.8 µs11.1 µs
is_valid[Open API/Zuora]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-3%
19.7 ms20.2 ms
validate[Open API/Zuora]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-3%
19.9 ms20.5 ms
validate[Fast/Valid]
crates/jsonschema/benches/jsonschema.rs::jsonschema::run_benchmarks
CodSpeed Performance Gauge
-5%
7.4 µs7.8 µs

Commits

Click on a commit to change the comparison range
Base
master
13598ba
-0.39%
fix: Stack overflow during validation of schemas with circular `$ref` chains Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
8e5cc94
2 months ago
by Stranger6667
© 2026 CodSpeed Technology
Home Terms Privacy Docs