Skip to content

common/options: use an absolute libdir for osd_class_dir - #71055

Open
sunyuechi wants to merge 1 commit into
ceph:mainfrom
sunyuechi:wip-osd-class-dir-abs-libdir
Open

common/options: use an absolute libdir for osd_class_dir#71055
sunyuechi wants to merge 1 commit into
ceph:mainfrom
sunyuechi:wip-osd-class-dir-abs-libdir

Conversation

@sunyuechi

@sunyuechi sunyuechi commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

osd_class_dir defaults to @CMAKE_INSTALL_LIBDIR@, which GNUInstallDirs
leaves relative (lib64). The OSD then looks for rados classes below its own
cwd, loads none, and every class-backed operation fails :

_load_class could not stat class lib64/rados-classes/libcls_lock.so:
    (2) No such file or directory

ceph.spec.in hides this by passing an absolute -DCMAKE_INSTALL_LIBDIR.
Use @CMAKE_INSTALL_FULL_LIBDIR@ instead, as the tree already does for other
paths baked into the binaries.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)

osd_class_dir defaults to @CMAKE_INSTALL_LIBDIR@, which GNUInstallDirs
leaves relative ("lib64").  The OSD then looks for rados classes below
its own cwd, loads none, and every class-backed operation fails:

  _load_class could not stat class lib64/rados-classes/libcls_lock.so:
      (2) No such file or directory

ceph.spec.in hides this by passing an absolute -DCMAKE_INSTALL_LIBDIR.
Use @CMAKE_INSTALL_FULL_LIBDIR@ instead, as the tree already does for
other paths baked into the binaries.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
@github-actions

Copy link
Copy Markdown

Config Diff Tool Output

! changed: osd_class_dir: old: @CMAKE_INSTALL_LIBDIR@/rados-classes (osd.yaml.in)
! changed: osd_class_dir: new: @CMAKE_INSTALL_FULL_LIBDIR@/rados-classes (osd.yaml.in)

The above configuration changes are found in the PR. Please update the relevant release documentation if necessary.
Ignore this comment if docs are already updated. To make the "Check ceph config changes" CI check pass, please comment /config check ok and re-run the test.

@sunyuechi

Copy link
Copy Markdown
Contributor Author

/config check ok

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant