Project

General

Profile

Bug #47554

librgw:load compressor failed.

Added by rosin luo about 1 year ago. Updated 11 months ago.

Status:
Fix Under Review
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
compression
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

2020-09-11T15:44:54.874+0800 ffff9179f200 5 req 64 0s :put_obj -- Getting permissions done for identity=RGWDummyIdentityApplier(auth_id=hadoop, perm_mask=15, is_admin=0), owner=hadoop, perm=2
2020-09-11T15:44:54.874+0800 ffff9179f200 10 req 64 0s :put_obj identity=RGWDummyIdentityApplier(auth_id=hadoop, perm_mask=15, is_admin=0) requested perm (type)=2, policy perm=2, user_perm_mask=2, acl perm=2
2020-09-11T15:44:54.874+0800 ffff9179f200 2 req 64 0s verifying op params
2020-09-11T15:44:54.874+0800 ffff9179f200 2 req 64 0s executing
2020-09-11T15:44:54.874+0800 ffff9179f200 20 max_chunk_size=4194304
2020-09-11T15:44:54.874+0800 ffff9179f200 -1 load failed dlopen(): "/usr/lib64/ceph/compressor/libceph_zlib.so: undefined symbol: _ZN4ceph10_page_sizeE" or "/usr/lib64/ceph/libceph_zlib.so: cannot open shared object file: No such file or directory"
2020-09-11T15:44:54.874+0800 ffff9179f200 -1 create cannot load compressor of type zlib

History

#1 Updated by yp dai about 1 year ago

Hi,The same ceph version (v14.2.9), I did not find this problem.
Please check that there is no error in the cluster package installation process.

The correct information should be as follows:

$ ll /usr/lib64/ceph/compressor/libceph_zlib.so
lrwxrwxrwx. 1 root root 17 Jul 8 14:47 /usr/lib64/ceph/compressor/libceph_zlib.so -> libceph_zlib.so.2

$ rpm -qf /usr/lib64/ceph/compressor/libceph_zlib.so
ceph-base-14.2.10-0.el7.x86_64

#2 Updated by yp dai about 1 year ago

[root@ceph01 ceph]# rpm -qf /usr/lib64/ceph/compressor/libceph_zlib.so
ceph-base-14.2.9-0.el7.x86_64

#3 Updated by rosin luo about 1 year ago

the file /usr/lib64/ceph/compressor/libceph_zlib.so is exist, the really error message is "undefined symbol: _ZN4ceph10_page_sizeE". the root cause is libceph_zlib.so need symblos from libceph-common.so.
libceph-common.so is dynamic linked by ceph-osd, the symbols in libceph-common are added to global symbol table when ceph-osd is running, and then dlopen can find the symbol.
The error occurs when java client using librgw via JNI and load compressor dynamically.

#4 Updated by Abhishek Lekshmanan 12 months ago

What OS are you using? Where were the packages installed from?

#5 Updated by rosin luo 12 months ago

centos 7.6 for aarch64. we develop a jni library to wrap librgw.

#6 Updated by Casey Bodley 12 months ago

can you give this change a try?


diff --git a/src/compressor/zlib/CMakeLists.txt b/src/compressor/zlib/CMakeLists.txt
index c1c8413949..d5bb6516a7 100644
--- a/src/compressor/zlib/CMakeLists.txt
+++ b/src/compressor/zlib/CMakeLists.txt
@@ -49,7 +49,7 @@ else(HAVE_INTEL_SSE4_1 AND HAVE_BETTER_YASM_ELF64 AND (NOT APPLE))
 endif(HAVE_INTEL_SSE4_1 AND HAVE_BETTER_YASM_ELF64 AND (NOT APPLE))

 add_library(ceph_zlib SHARED ${zlib_sources})
-target_link_libraries(ceph_zlib ZLIB::ZLIB compressor $<$<PLATFORM_ID:Windows>:ceph-common>)
+target_link_libraries(ceph_zlib ZLIB::ZLIB compressor ceph-common)
 target_include_directories(ceph_zlib SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/src/isa-l/include")
 set_target_properties(ceph_zlib PROPERTIES
   VERSION 2.0.0

#7 Updated by Matt Benjamin 12 months ago

  • Subject changed from load compressor failed. to librgw:load compressor failed.

#8 Updated by rosin luo 12 months ago

i have create a pr for this, it drop PLATFORM_ID as you do.
https://github.com/ceph/ceph/pull/37272

#9 Updated by Casey Bodley 11 months ago

  • Tags set to compression
  • Pull request ID set to 37272

#10 Updated by Casey Bodley 11 months ago

  • Status changed from New to Fix Under Review

Also available in: Atom PDF