Skip to content

[Feature]: Check Linux native-library prerequisites across the resolved SDK dependency tree #4337

Description

@localhost41

Problem statement

Picking up the remaining preflight from #3853 and Victor’s update on #4290.

A native dependency anywhere in the installed SDK tree can prevent the worker from starting. The libatomic case arrives through rocksdb-native in the storage stack, so checking only the selected inference plugins misses it. The existing symbol gate and diffusion linking check cover narrower cases.

Proposed solution

I’d start with a small audit of the actual resolved dependency tree for SDK 0.19, using the existing binary-inspection code where it fits:

  • Cover Linux x64 and arm64 prebuilds, including transitive storage dependencies.
  • Report the package and version, binary path, and its required shared libraries (DT_NEEDED).
  • Check those requirements against an explicit runtime baseline, with node:22-slim as the first reproducible case. Keep libraries bundled with the package distinct from system prerequisites and optional GPU backends.
  • Prove that the report catches the missing libatomic prerequisite, and that installing it satisfies that requirement.

The output could be a CI artifact first. We can agree on the baseline and failure policy before making it a merge gate or adding it to qvac doctor.

Use cases

Catch missing Linux prerequisites before an SDK release reaches a clean container, and give users the package/library chain behind a startup failure.

Expected impact

High — improves Linux installation and release checks across the SDK’s native dependency tree.

Constraints and existing work

The upstream maintainer closed rocksdb-native#109 because libatomic is an expected, documented dependency. This audit should check that prerequisites are satisfied; a legitimate dependency is not itself a defect. #4331 and #4332 cover the immediate QVAC documentation and startup hint.

Contribution

I can take this. @victorchimakanu, is anyone already covering it internally, and would a standalone audit in the existing CI be the right first home? I’ll hold implementation until we’ve settled the scope so it fits the work already underway.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions