Repository navigation
build(deps): bump com.github.luben:zstd-jni from 1.5.7-11 to 1.5.7-16 - #20228
dependabot[bot] wants to merge 2 commits into
Conversation
Bumps [com.github.luben:zstd-jni](https://github.com/luben/zstd-jni) from 1.5.7-11 to 1.5.7-16. - [Commits](luben/zstd-jni@v1.5.7-11...v1.5.7-16) --- updated-dependencies: - dependency-name: com.github.luben:zstd-jni dependency-version: 1.5.7-16 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
FrankChen021
left a comment
There was a problem hiding this comment.
This review was performed by Codex GPT-5.6-Sol model.\nBackward compatibility: SAFE — exact PR head 1af9fb6 compared with current master 1bbb062; zstd-jni 1.5.7-16 preserves native libzstd, Druid ZSTD API and frame behavior, Java 8 compatibility, runtime graph, native resources, stored segments, and extension/plugin behavior. The only repair is the surgical licenses.yaml metadata update; the earlier packaging failure was unrelated descriptor resolution.\nThe exact head has 28/28 successful checks with no failures or pending checks.\nJava source changed: NO.
|
Backward compatibility: INCOMPATIBLE — exact PR head 1af9fb6 compared with current master 1bbb062. The prior closure of apache/druid#20110 established that zstd-jni 1.5.7-15 removes decoding for legacy pre-1.0 v0.4-v0.7 frames: 1.5.7-11 decoded 5,345,280 bytes, while 1.5.7-15 failed with Unknown frame descriptor. The upstream 1.5.7-15 to 1.5.7-16 comparison contains no restoration of the removed legacy decoder, so this exact 1.5.7-16 head retains the same user-visible Druid batch-ingestion regression. Closing as high effort: preserving legacy frame support requires an explicit product/migration decision, a legacy-enabled build, or a version cap; it cannot be safely handled by this dependency-only bump. No tracked Java production or test source changed; the PR changes only POM/license metadata. |
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
@FrankChen021 what does this mean? Assuming this means that it can't read stuff written with zstd v0.4-0.7, the first version of zstd druid supported was |
You’re right that Druid itself never produced these frames. The affected formats were produced by upstream native Zstd/libzstd 0.4.x–0.7.x; Druid first added zstd support at 1.3.3-1. However, that support was for decompressing externally supplied .zst files. Druid still documents zst as a supported batch-ingestion format, and the current path delegates these files to zstd-jni. I verified that the upstream xml_v04.zst fixture decodes to 5,345,280 bytes with zstd-jni 1.5.7-11 but fails with Unknown frame descriptor on 1.5.7-15. The 1.5.7-16 README confirms that 1.5.7-12 was the last release with legacy-format support. So there is no compatibility issue for Druid-generated segments, but there is a conditional compatibility regression for users ingesting externally generated v0.4–v0.7 .zst files. We do not have evidence that such files exist in users' Druid deployments. If Druid’s .zst contract is intended to cover only the final standard format, this can be considered out of scope; otherwise we should retain a legacy-capable version or explicitly document the migration. Or if the 1.5.7.11 has CVEs that we must resolve. |
Fair, I guess it just seems unfortunate to block upgrades on stuff because we can't read hypothetical batch input files that would likely have been written with a version more than 10 years old at this point. I think i'd be in favor of just calling this out in release notes and telling people to re-encode their files prior to ingest if they run into problems, but I am interested in others opinions as well. |
We can do that. But for us, we can't ask users to re-encode old files only when they encounter the problem. And if such problem happens, I don't think it's easy to re-encode old files, because users take time to upgrade their data pipelines to use newer zstd encoders. And such upgrading may also bring some concerns because these files are not only used by druid only. My opinion is that if there's no severe CVEs on 1.5.7.11 or there're no new features we must to use in newer releases, let's keep using it. |
Bumps com.github.luben:zstd-jni from 1.5.7-11 to 1.5.7-16.
Commits
b74bc50Guard agains negative frame content sizes4188095Forward error from setLongc66cddaNarrow to the private natives; keep the public signaturesint2836fbbReturnlongfrom the 31 natives whose C function returnssize_t625d27bSmall tweaks in order of operations1aeae2dFuture version will be 1.5.7-16212ec90v1.5.7-15f5a61ecSimplify (and hopefully fix an error) in loading the native lib3216860Re-arange operations instead of widening to 64bits2ba10c0Fix int overflowDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)