Re: Unable to build ceph: Ubuntu 15.04 Ceph master

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

The command --with-radosgw helped in building the code. The compile
error and the solution to solve the problem (adding the aforementioned
option) is very unintuitive to user. Should this option be there by
default? Shall I report a bug?
An ideal fix will add --with-radosgw as default config file, unless
--without-radosgw is a switch given by the user.

Also, I had to install the following other packages on Ubuntu 15.04,
for successful compilation. I think these should also be checked by
configure script:

python-setuptools
python-pip python-dev build-essential
virtualenv

Please let me know if it would be appropriate to report bug and commit
fix for the same.

Thanks,
Shehbaz


On Fri, Mar 4, 2016 at 1:45 PM, Orit Wasserman <owasserm@xxxxxxxxxx> wrote:
> What configure command did you use?
> can you try adding --with-radosgw?
>
> Orit
>
> On Fri, 2016-03-04 at 09:41 -0500, Shehbaz Jaffer wrote:
>> Hi,
>>
>> I have cloned ceph from git master branch. I am getting the following
>> errors while build:
>>
>> ENVIRONMENT
>> ----------------------
>>
>> $ uname -a
>> Linux donjaffer 4.3.0-dev #1 SMP Sun Dec 6 13:56:49 EST 2015 x86_64
>> x86_64 x86_64 GNU/Linux
>>
>> $ g++ -v
>> Using built-in specs.
>> COLLECT_GCC=g++
>> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
>> Target: x86_64-linux-gnu
>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu
>> 4.9.2-10ubuntu13'
>> --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs
>> --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
>> --program-suffix=-4.9 --enable-shared --enable-linker-build-id
>> --libexecdir=/usr/lib --without-included-gettext
>> --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9
>> --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
>> --enable-libstdcxx-debug --enable-libstdcxx-time=yes
>> --enable-gnu-unique-object --disable-vtable-verify --enable-plugin
>> --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
>> --enable-gtk-cairo
>> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre
>> --enable-java-home
>> --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64
>> --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64
>> --with-arch-directory=amd64
>> --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc
>> --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
>> --with-multilib-list=m32,m64,mx32 --enable-multilib
>> --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
>> --host=x86_64-linux-gnu --target=x86_64-linux-gnu
>> Thread model: posix
>> gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
>>
>> BUILD ERROR
>> ---------------------
>>
>> $make
>> ...
>>   CXXLD    ceph-dencoder
>> rgw/ceph_dencoder-rgw_dencoder.o: In function
>> `RGWZoneGroup::generate_test_instances(std::list<RGWZoneGroup*,
>> std::allocator<RGWZoneGroup*> >&)':
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: 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/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:870: 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/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined
>> reference to `vtable for RGWZoneGroup'
>> rgw/ceph_dencoder-rgw_json_enc.o: In function
>> `RGWSystemMetaObj::~RGWSystemMetaObj()':
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined
>> reference to `vtable for RGWSystemMetaObj'
>> rgw/ceph_dencoder-rgw_json_enc.o: In function
>> `RGWSystemMetaObj::~RGWSystemMetaObj()':
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined
>> reference to `vtable for RGWSystemMetaObj'
>> rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()':
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1096: undefined
>> reference to `vtable for RGWZoneGroup'
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined
>> reference to `vtable for RGWSystemMetaObj'
>> rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()':
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1096: undefined
>> reference to `vtable for RGWZoneGroup'
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: 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/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1096: undefined
>> reference to `vtable for RGWZoneGroup'
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: 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/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined
>> reference to `vtable for RGWZoneGroup'
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: 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/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: 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/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined
>> reference to `vtable for RGWZoneGroup'
>> 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/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:733: undefined
>> reference to `vtable for RGWSystemMetaObj'
>> /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1063: undefined
>> reference to `vtable for RGWZoneGroup'
>> collect2: error: ld returned 1 exit status
>> Makefile:15392: recipe for target 'ceph-dencoder' failed
>> make[3]: *** [ceph-dencoder] Error 1
>> make[3]: Leaving directory '/home/shehbaz/gsoc/ceph/ceph/src'
>> Makefile:29913: recipe for target 'all-recursive' failed
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory '/home/shehbaz/gsoc/ceph/ceph/src'
>> Makefile:12277: recipe for target 'all' failed
>> make[1]: *** [all] Error 2
>> make[1]: Leaving directory '/home/shehbaz/gsoc/ceph/ceph/src'
>> Makefile:689: recipe for target 'all-recursive' failed
>> make: *** [all-recursive] Error 1
>> shehbaz@donjaffer:~/gsoc/ceph/ceph$
>>
>>
>> INITIAL DIAGNOSTICS
>> -------------------------------
>>
>> In src/rgw/rgw_rados.h
>>
>> struct RGWZoneGroup : public RGWSystemMetaObj
>>
>> all pure virtual functions in base class should be overriden in derived class.
>>
>> In RGWSystemMetaObj, the following functions are defined pure virtual:
>>
>>  virtual const string& get_pool_name(CephContext *cct) = 0;
>>   virtual const string get_default_oid(bool old_format = false) = 0;
>>   virtual const string& get_names_oid_prefix() = 0;
>>   virtual const string& get_info_oid_prefix(bool old_format = false) = 0;
>>   virtual const string& get_predefined_name(CephContext *cct) = 0;
>>
>> All these functions have been declared and overridden in struct RGWZoneGroup:
>>
>>  const string& get_pool_name(CephContext *cct);
>>   const string get_default_oid(bool old_region_format = false);
>>   const string& get_info_oid_prefix(bool old_region_format = false);
>>   const string& get_names_oid_prefix();
>>   const string& get_predefined_name(CephContext *cct);
>>
>> I also found a similar report here:
>>
>> http://ceph.predictor.org.pl/rgw_vtable.txt
>>
>> But a solution to the problem is not provided.
>>
>> Any help is much appreciated.
>>
>
>



-- 
Shehbaz Jaffer
First Year Graduate Student
Sir Edward S Rogers Sr Department of Electrical and Computer Engineering
University of Toronto
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux