Project

General

Profile

Actions

Bug #16783

closed

Build fails if you disable radosgw (--without-radosgw) during linking

Added by Roy Keene over 7 years ago. Updated almost 4 years ago.

Status:
Won't Fix
Priority:
Low
Category:
build
Target version:
-
% Done:

0%

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

Description

Attempting to build Ceph v10.2.2 with the configure option --without-radosgw leads to linking failure for "rbd-mirror":

rgw/ceph_dencoder-rgw_dencoder.o: In function `RGWZoneGroup::generate_test_instances(std::list<RGWZoneGroup*, std::allocator<RGWZoneGroup*> >&)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup'
rgw/ceph_dencoder-rgw_dencoder.o: In function `RGWZoneParams::generate_test_instances(std::list<RGWZoneParams*, std::allocator<RGWZoneParams*> >&)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:871: undefined reference to `vtable for RGWZoneParams'
rgw/ceph_dencoder-rgw_json_enc.o: In function `decode_zonegroups(std::map<std::string, RGWZoneGroup, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >&, JSONObj*)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup'
rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWSystemMetaObj::~RGWSystemMetaObj()':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj'
rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWSystemMetaObj::~RGWSystemMetaObj()':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj'
rgw/ceph_dencoder-rgw_json_enc.o: In function `std::_Rb_tree<std::string, std::pair<std::string const, RGWZoneGroup>, std::_Select1st<std::pair<std::string const, RGWZoneGroup> >, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, RGWZoneGroup> >*)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup'
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj'
rgw/ceph_dencoder-rgw_json_enc.o: In function `std::_Rb_tree_iterator<std::pair<std::string const, RGWZoneGroup> > std::_Rb_tree<std::string, std::pair<std::string const, RGWZoneGroup>, std::_Select1st<std::pair<std::string const, RGWZoneGroup> >, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::string const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::string const, RGWZoneGroup> >, std::piecewise_construct_t const&, std::tuple<std::string const&>&&, std::tuple<>&&)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup'
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj'
rgw/ceph_dencoder-rgw_json_enc.o: In function `std::_Rb_tree_iterator<std::pair<std::string const, RGWZoneGroup> > std::_Rb_tree<std::string, std::pair<std::string const, RGWZoneGroup>, std::_Select1st<std::pair<std::string const, RGWZoneGroup> >, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >::_M_insert_<std::pair<std::string const, RGWZoneGroup>&>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, RGWZoneGroup>&)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:734: undefined reference to `vtable for RGWSystemMetaObj'
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup'
rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup'
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj'
rgw/ceph_dencoder-rgw_json_enc.o: In function `bool JSONDecoder::decode_json<RGWZoneGroup>(char const*, RGWZoneGroup&, JSONObj*, bool)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup'
rgw/ceph_dencoder-rgw_json_enc.o: In function `void decode_json_obj<std::string, RGWZoneGroup>(std::map<std::string, RGWZoneGroup, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >&, JSONObj*)':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup'
rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()':
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup'
/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj'
collect2: error: ld returned 1 exit status
make[5]: *** [ceph-dencoder] Error 1
make[5]: *** Waiting for unfinished jobs....
make[5]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622'

This previously worked in Ceph 0.94.7

Actions #1

Updated by David Disseldorp over 7 years ago

  • Assignee set to David Disseldorp

Will put this on my queue. I see this on the master branch too (cmake -DWITH_RADOSGW=0), be it with a different undefined symbol while linking:

../lib/librbd_types.a(Types.cc.o): In function `cls::rbd::decode(cls::rbd::SnapshotNamespaceOnDisk&, ceph::buffer::list::iterator&)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)'
../lib/librbd_types.a(Types.cc.o): In function `cls::rbd::encode(cls::rbd::SnapshotNamespaceOnDisk const&, ceph::buffer::list&, unsigned long)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::encode(ceph::buffer::list&) const'
../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::SnapCreateEvent::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/journal/Types.cc:173: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::dump(ceph::Formatter*) const'
../lib/librbd_types.a(Types.cc.o): In function `librbd::mirroring_watcher::ImageUpdatedPayload::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/mirroring_watcher/Types.cc:90: undefined reference to `cls::rbd::operator<<(std::ostream&, cls::rbd::MirrorImageState const&)'
../lib/librbd_types.a(Types.cc.o): In function `librbd::mirroring_watcher::ModeUpdatedPayload::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/mirroring_watcher/Types.cc:71: undefined reference to `cls::rbd::operator<<(std::ostream&, cls::rbd::MirrorMode const&)'
../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `cls::rbd::encode(cls::rbd::SnapshotNamespaceOnDisk const&, ceph::buffer::list&, unsigned long)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::encode(ceph::buffer::list&) const'
../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `librbd::watch_notify::SnapCreatePayload::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/WatchNotifyTypes.cc:260: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::dump(ceph::Formatter*) const'
../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `cls::rbd::decode(cls::rbd::SnapshotNamespaceOnDisk&, ceph::buffer::list::iterator&)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)'
collect2: error: ld returned 1 exit status
src/CMakeFiles/ceph-dencoder.dir/build.make:140: recipe for target 'bin/ceph-dencoder' failed
make2: *** [bin/ceph-dencoder] Error 1

Actions #2

Updated by David Disseldorp over 7 years ago

Similarly, radosgw fails to build when configured --without-openldap:

CXXLD    radosgw
CXXLD radosgw-admin
./.libs/librgw.so: undefined reference to `parse_rgw_ldap_bindpw(CephContext*)'
collect2: error: ld returned 1 exit status
Makefile:16990: recipe for target 'radosgw' failed
make[3]: * [radosgw] Error 1
make[3]:
Waiting for unfinished jobs....
./.libs/librgw.so: undefined reference to `parse_rgw_ldap_bindpw(CephContext
)'
collect2: error: ld returned 1 exit status
Makefile:16998: recipe for target 'radosgw-admin' failed
make[3]: * [radosgw-admin] Error 1
make[3]: Leaving directory '/home/ddiss/isms/ceph/src'
Makefile:30931: recipe for target 'all-recursive' failed
make[2]:
[all-recursive] Error 1
make[2]: Leaving directory '/home/ddiss/isms/ceph/src'
Makefile:12636: recipe for target 'all' failed
make[1]: *
* [all] Error 2
make[1]: Leaving directory '/home/ddiss/isms/ceph/src'
Makefile:692: recipe for target 'all-r
Actions #3

Updated by Roy Keene over 7 years ago

The failure when compiling without OpenLDAP is new in 10.2.3 -- it worked in 10.2.2 (which is what this bug report is against). The OpenLDAP failure was reported as bug #17438 on 29-SEP-2016.

Actions #4

Updated by David Disseldorp almost 4 years ago

  • Status changed from New to Won't Fix

I've not looked at this since my initial report and no longer build without rgw. closing as won't fix.

Actions

Also available in: Atom PDF