rocksdb ftbfs on ppc64el with -03

Bug #1400299 reported by James Page
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ceph (Ubuntu)
Fix Released
Wishlist
Unassigned
gcc-4.9 (Ubuntu)
Incomplete
Undecided
Unassigned

Bug Description

The rocksdb library in the ceph source tree fails to build with the default -03 optimizer flag on ppc64el.

(vivid-ppc64el)jamespage@kelsey01:~/build-area/ceph-0.87/src/rocksdb$ g++ -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wall -Werror -std=c++11 -fPIC -I. -I./include -DOS_LINUX -DROCKSDB_PLATFORM_POSIX -fno-builtin-memcmp -DNDEBUG -DHAVE_JEMALLOC -Woverloaded-virtual -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DSNAPPY -DZLIB -DBZIP2 -g -O3 -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -c table/plain_table_reader.cc -fPIE -o table/librocksdb_la-plain_table_reader.o
In file included from ./table/plain_table_reader.h:14:0,
                 from table/plain_table_reader.cc:6:
./db/dbformat.h: In member function 'virtual void rocksdb::PlainTableIterator::Next()':
./db/dbformat.h:266:67: error: 'parsed_key.rocksdb::ParsedInternalKey::sequence' may be used uninitialized in this function [-Werror=maybe-uninitialized]
     EncodeFixed64(key_ + usize, PackSequenceAndType(s, value_type));
                                                                   ^
table/plain_table_reader.cc:737:23: note: 'parsed_key.rocksdb::ParsedInternalKey::sequence' was declared here
     ParsedInternalKey parsed_key;
                       ^
In file included from ./table/plain_table_reader.h:14:0,
                 from table/plain_table_reader.cc:6:
./db/dbformat.h:266:67: error: '*((void*)& parsed_key +24)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
     EncodeFixed64(key_ + usize, PackSequenceAndType(s, value_type));
                                                                   ^
table/plain_table_reader.cc:737:23: note: '*((void*)& parsed_key +24)' was declared here
     ParsedInternalKey parsed_key;
                       ^
cc1plus: all warnings being treated as errors

Works OK with -02

(vivid-ppc64el)jamespage@kelsey01:~/build-area/ceph-0.87/src/rocksdb$ g++ -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wall -Werror -std=c++11 -fPIC -I. -I./include -DOS_LINUX -DROCKSDB_PLATFORM_POSIX -fno-builtin-memcmp -DNDEBUG -DHAVE_JEMALLOC -Woverloaded-virtual -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DSNAPPY -DZLIB -DBZIP2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -c table/plain_table_reader.cc -fPIE -o table/librocksdb_la-plain_table_reader.o

Full log:

https://launchpadlibrarian.net/191913939/buildlog_ubuntu-vivid-ppc64el.ceph_0.87-0ubuntu1_FAILEDTOBUILD.txt.gz

Revision history for this message
James Page (james-page) wrote :

Current disabled for ppc64el due to this problem

summary: - rocksdb ftbfs on ppc64el
+ rocksdb ftbfs on ppc64el with -03
Revision history for this message
Ken Dreyer (ktdreyer) wrote :

We should get this reported to Ceph upstream.

Ceph is bundling an old copy of rocksdb (ugh), and I wonder if this is fixed in a later version of rocksdb.

By the way, my hunch is that the reason that Ceph bundles rocksdb is because it was not packaged in the distros at the time that Ceph wanted to use it. Is it now packaged in Ubuntu?

Revision history for this message
Sage Weil (sage-newdream) wrote : Re: [Bug 1400299] Re: rocksdb ftbfs on ppc64el with -03
Download full text (3.6 KiB)

On Mon, 8 Dec 2014, Ken Dreyer wrote:
> We should get this reported to Ceph upstream.
>
> Ceph is bundling an old copy of rocksdb (ugh), and I wonder if this is
> fixed in a later version of rocksdb.
>
> By the way, my hunch is that the reason that Ceph bundles rocksdb is
> because it was not packaged in the distros at the time that Ceph wanted
> to use it.

Exactly.

> Is it now packaged in Ubuntu?

Nope!

Let's pull rocksdb up to a newer version and see if that helps?

sage

>
> --
> You received this bug notification because you are subscribed to ceph in
> Ubuntu.
> Matching subscriptions: ceph
> https://bugs.launchpad.net/bugs/1400299
>
> Title:
> rocksdb ftbfs on ppc64el with -03
>
> Status in ceph package in Ubuntu:
> New
> Status in gcc-4.9 package in Ubuntu:
> New
>
> Bug description:
> The rocksdb library in the ceph source tree fails to build with the
> default -03 optimizer flag on ppc64el.
>
> (vivid-ppc64el)jamespage@kelsey01:~/build-area/ceph-0.87/src/rocksdb$ g++ -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wall -Werror -std=c++11 -fPIC -I. -I./include -DOS_LINUX -DROCKSDB_PLATFORM_POSIX -fno-builtin-memcmp -DNDEBUG -DHAVE_JEMALLOC -Woverloaded-virtual -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DSNAPPY -DZLIB -DBZIP2 -g -O3 -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -c table/plain_table_reader.cc -fPIE -o table/librocksdb_la-plain_table_reader.o
> In file included from ./table/plain_table_reader.h:14:0,
> from table/plain_table_reader.cc:6:
> ./db/dbformat.h: In member function 'virtual void rocksdb::PlainTableIterator::Next()':
> ./db/dbformat.h:266:67: error: 'parsed_key.rocksdb::ParsedInternalKey::sequence' may be used uninitialized in this function [-Werror=maybe-uninitialized]
> EncodeFixed64(key_ + usize, PackSequenceAndType(s, value_type));
> ^
> table/plain_table_reader.cc:737:23: note: 'parsed_key.rocksdb::ParsedInternalKey::sequence' was declared here
> ParsedInternalKey parsed_key;
> ^
> In file included from ./table/plain_table_reader.h:14:0,
> from table/plain_table_reader.cc:6:
> ./db/dbformat.h:266:67: error: '*((void*)& parsed_key +24)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
> EncodeFixed64(key_ + usize, PackSequenceAndType(s, value_type));
> ^
> table/plain_table_reader.cc:737:23: note: '*((void*)& parsed_key +24)' was declared here
> ParsedInternalKey parsed_key;
> ^
> cc1plus: all warnings being treated as errors
>
> Works OK with -02
>
> (vivid-ppc64el)jamespage@kelsey01:~/build-area/ceph-0.87/src/rocksdb$
> g++ -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wall -Werror -std=c++11
> -fPIC -I. -I./include -DOS_LINUX -DROCKSDB_PLATFORM_POSIX -fno-
> builtin-memcmp -DNDEBUG -DHAVE_JEMALLOC -Woverloaded-virtual
> -DROCKSDB_ATOMIC_PRESENT -DROCKSDB_FALLOCATE_PRESENT
> -DROCKSDB_ATOMIC_PRESENT -DROCK...

Read more...

Revision history for this message
James Page (james-page) wrote :

I've disabled the rocksdb support generally across all architectures with my last upload; an update to a newer version may help, but we should also look to package it separately at some point.

Changed in ceph (Ubuntu):
importance: Undecided → Wishlist
status: New → Triaged
Revision history for this message
Matthias Klose (doko) wrote :

please attach the preprocessed source.

Changed in gcc-4.9 (Ubuntu):
status: New → Incomplete
Revision history for this message
James Page (james-page) wrote :

Marking Fix Released, as rocksdb is now enabled and we don't see this issue.

Changed in ceph (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.