Bug #3520
closedError listing snapshots: (5) Input/output error
0%
Description
Hi all,
I build one-node cluster Ceph(0.48, the stable version installed by apt-get) and Ceph -s display HEALTH_OK.
I create a pool and a image named 'test_pool_1' and 'image_3' respectively.
When I run command in CLI:# rbd -p test_pool_1 snap ls image_3
Error was reported like belwo:# Error listing snapshots: (5) Input/output error
Then I view the log, it said:_load_class could not open class $(libdir)/rados-classes/libcls_rbd.so (dlopen failed): $(libdir)/rados-classes/libcls_rbd.so: cannot open shared object file: No such file or directory
Since I viewed source code in 'pybind', I try to invoke python API to open image, it report:error opening image image_3 at snapshot None
BTW, I'm a new Python coder.
The log file and my test scrip are attached.
Tks for helping me to solve this issue!
Files
Updated by ye yuan over 11 years ago
I had checked folder /usr/lib/rados-classes/ , there were all so files including libcls_rbd.so.
Updated by Sage Weil over 11 years ago
Change your osd class dir line to have /usr/lib instead of $(libdir).. that variable substitution does not work.
Updated by ye yuan over 11 years ago
Sage Weil wrote:
Change your osd class dir line to have /usr/lib instead of $(libdir).. that variable substitution does not work.
Thks Sage, that seems work. But there are also others:
1) After I del a image(named 'image_1'), I want to create a new one using 'image_1', it report : librbd: rbd image image_1 already exists
2) I want to view info of a existed image, it report: librbd: error finding header: (2) No such file or directory
Why I met these issues? Could you tell me the details? Thanks a lot! :):):):)
Updated by ye yuan over 11 years ago
ye yuan wrote:
Sage Weil wrote:
Change your osd class dir line to have /usr/lib instead of $(libdir).. that variable substitution does not work.
Thks Sage, that seems work. But there are also other:>
I want to view info of a existed image, it report:librbd: error finding header: (2) No such file or directory
Why I met these issues? Could you tell me the details? Thanks a lot! :):):):)
Updated by ye yuan over 11 years ago
ye yuan wrote:
ye yuan wrote:
Sage Weil wrote:
Change your osd class dir line to have /usr/lib instead of $(libdir).. that variable substitution does not work.
Thks Sage, that seems work. But there are also other:>
I want to view info of a existed image, it report:librbd: error finding header: (2) No such file or directory
Why I met these issues? Could you tell me the details? Thanks a lot! :):):):)
Sorry for making duplicate quote. I found the reason of 'image already exists' prodlem, but confusing on the second in #5 quote.
Updated by Sage Weil over 11 years ago
ye yuan wrote:
ye yuan wrote:
Sage Weil wrote:
Change your osd class dir line to have /usr/lib instead of $(libdir).. that variable substitution does not work.
Thks Sage, that seems work. But there are also other:>
I want to view info of a existed image, it report:librbd: error finding header: (2) No such file or directory
Why I met these issues? Could you tell me the details? Thanks a lot! :):):):)
Does this happenw ith a newly created image? it may be that image creation was previously broken from your class path.
Updated by ye yuan over 11 years ago
Sage Weil wrote:
ye yuan wrote:
ye yuan wrote:
Sage Weil wrote:
Change your osd class dir line to have /usr/lib instead of $(libdir).. that variable substitution does not work.
Thks Sage, that seems work. But there are also other:>
I want to view info of a existed image, it report:librbd: error finding header: (2) No such file or directory
Why I met these issues? Could you tell me the details? Thanks a lot! :):):):)
Does this happenw ith a newly created image? it may be that image creation was previously broken from your class path.
yep, after I edited the path, this command works. Thanks a lot Sage Weil!