You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@paimon.apache.org by "XiaoHongbo-Hope (via GitHub)" <gi...@apache.org> on 2026/07/22 08:19:22 UTC
Re: [PR] fix(table): reject invalid global index metadata [paimon-rust]
XiaoHongbo-Hope commented on PR #578:
URL: https://github.com/apache/paimon-rust/pull/578#issuecomment-5043536955
> Blocking: malformed global-index metadata is currently treated as an unavailable optimization and silently falls back to a normal table scan.
>
> `BTreeIndexMeta::deserialize(bytes).ok()` discards the `InvalidData` error, and `evaluate_leaf` later returns `Ok(None)` when any shard has unavailable metadata. This makes a corrupted or incomplete declared BTree/Bitmap index indistinguishable from an unsupported predicate or an absent index. It also hides storage corruption and may unexpectedly turn an indexed query into a full scan without any warning.
>
> The bounds checks added to `BTreeIndexMeta::deserialize` are correct: malformed external data must return a structured error instead of panicking. However, that error should be propagated as `Error::DataInvalid`, consistent with failures while opening or querying the physical index file.
>
> Please consider changing `GlobalIndexScanner::create` to return `Result<Option<Self>>`, reserving `Ok(None)` for cases where no applicable index exists or the predicate cannot be evaluated. Missing required metadata and deserialization failures for a declared sorted index should return `Err`. The regression tests should assert an error rather than a successful fallback.
Fixed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@paimon.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org