Skip to content

fix(cloud): parse OpenDAL boolean properties the way object_store does - #9782

Merged
robert3005 merged 2 commits into
vortex-data:developfrom
jackylee-ch:fix/opendal-boolean-properties
Sep 10, 2026
Merged

fix(cloud): parse OpenDAL boolean properties the way object_store does#9782
robert3005 merged 2 commits into
vortex-data:developfrom
jackylee-ch:fix/opendal-boolean-properties

Conversation

@jackylee-ch

@jackylee-ch jackylee-ch commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

cos.rs and oss.rs compared the property string against "true" exactly, so True, 1 and
yes read as false. object_store accepts all of those for its own configuration
(config.rs, impl Parse for bool: 1/true/on/yes/y, lowercased), and so does the
allow_http sibling in hf/mod.rs — only the two OpenDAL services did not.

Values reach make_opendal_store verbatim from the caller's property map, and
warn_on_unknown_properties only warns about unknown keys, so an unusable value was silent:
skip_signature = "True" keeps signing a public bucket (403), and disable_config_load = "True"
leaves OpenDAL loading the ambient credentials the caller asked to turn off.

The new shared property_as_bool trims, lowercases, matches object_store's set, and warns
instead of answering false. goosefs has no boolean property.

Tests

cargo test --release -p vortex-cloud --features cos,oss,goosefs,hf,registry: 101 passed, 84 on
develop; feature matrix checked one flag at a time. Restoring the exact "true" compare fails
7 of the new cases.

AI assistance

Written with agentic AI assistance; I read object_store's Parse for bool in the vendored
0.13.2 source before matching it.

`cos` and `oss` compared the raw property string against `"true"`, so `True`,
`1` and `yes` — all accepted by `object_store` for its own configuration, and
by the `allow_http` sibling in this crate — read as `false` without a warning.

Add a shared `property_as_bool` next to `property_or_env` that trims, lowercases
and matches `object_store`'s set, and warns on a value that is not a boolean
instead of silently answering `false`.

Signed-off-by: jackylee-ch <qcsd2011@gmail.com>
Comment thread vortex-cloud/src/opendal/cos.rs Outdated
The `property_as_bool` cases cover the parsing; the cos and oss tests only
asserted that each call site reaches it, which is a one-line change per service.

Signed-off-by: jackylee-ch <qcsd2011@gmail.com>
@robert3005
robert3005 enabled auto-merge (squash) September 10, 2026 11:17
@robert3005 robert3005 added the changelog/fix A bug fix label Sep 10, 2026
@codspeed-hq

codspeed-hq Bot commented Sep 10, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 12.97%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 1 improved benchmark
✅ 2192 untouched benchmarks
⏩ 218 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime mul_u32_nonnull_avx512 6.2 µs 5.5 µs +12.97%

Tip

Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.


Comparing jackylee-ch:fix/opendal-boolean-properties (553b455) with develop (e3b8eb2)

Open in CodSpeed

Footnotes

  1. 218 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@robert3005
robert3005 merged commit a13c246 into vortex-data:develop Sep 10, 2026
105 of 106 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/fix A bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants