Repository navigation
Conversation
sunchao
left a comment
There was a problem hiding this comment.
Reviewed 2fce9b2 across five independent scopes. I found no actionable code issue in the PyO3 migration or advisory-specific suppressions. The zstd explanations match Comet's reset/read paths and Arrow/Parquet's bulk codec use. Both changes are intended fixes relative to branch-1.2.
The advisory audit passed with the checked-in configuration against the current RustSec database using cargo audit --no-yanked --deny warnings (yanked-package checks excluded). The regular Rust CI action installs PyArrow and runs the feature-enabled Python UDF tests, so the separately skipped PyArrow workflow does not remove that unit coverage. That Rust job and the native build are still queued at this head. Holding approval until the current-head validation completes; local runtime tests were blocked by unavailable locked dependencies in my configured registry.
Which issue does this PR close?
No tracking issue. Found by running
cargo auditonnative/Cargo.lock.Rationale for this change
cargo auditon main reports 10 vulnerabilities and 13 warnings. Only the pyo3 ones can be fixed from Comet's own manifests. The rest are in third-party crates pinned by DataFusion, arrow, or object_store, or are dev-only, or do not apply to how Comet uses the crate. Recording why in a checked-in config makescargo audit --deny warningsa usable signal instead of a list everyone has to re-triage.What changes are included in this PR?
Two commits:
pyo3from 0.28 to 0.29 (resolves to 0.29.3). Fixes RUSTSEC-2026-0176 and RUSTSEC-2026-0177, which affect the optionalpython-udffeature. No source changes were needed.native/.cargo/audit.toml, which ignores the remaining advisories by ID, each with the reason and what unblocks removing it:pprofand is dev-only.zstd ^0.13. Blocked on the arrow 60 upgrade. None applies to Comet's use.ShuffleCodecContextalready resets the session before every frame, which is the upstream fix for RUSTSEC-2026-0391. OnlyDecoder::with_buffer(the read path) is used. Multithreaded compression, dictionaries,try_cloneand the seekable API are unused.async-std(criterion, dev-only),paste(proc-macro) andunsafe-libyaml(log4rs).The ignores are by advisory ID rather than by crate, so a new advisory against the same crate still fails the audit.
How are these changes tested?
cargo audit --deny warningsexits 0 fromnative/.cargo clippy --all-targets --features python-udf -- -D warningspasses on pyo3 0.29.3.python_udfunit tests, the 4 that do not need pyarrow pass. The other 11 need pyarrow, which could not be installed in my environment, so they are left to thepyarrow_udf_testworkflow.