Summary from #465120 & #463218: ceph depend from leveldb & snappy, but more precise: dev-libs/leveldb[snappy]. Else it can cause behavior when snappy installed AFTER leveldb and levedb will be without snappy linkage, but ceph don't use directly snappy, it use snappy in leveldb (and just check separately). So, to avoid broken build (random? in my case snappy installed ONLY after levedb without it), dependence must be fixed to dev-libs/leveldb[snappy]. Reproducible: Always
check 0.72.2 source code, snappy is needed by leveldb # check is snappy-devel is installed, needed by leveldb AC_CHECK_LIB([snappy], [snappy_compress], [], [AC_MSG_FAILURE([libsnappy not found])]) ./src/os/LevelDBStore.cc: if (options.compression_enabled) ldoptions.compression = leveldb::kSnappyCompression; else ldoptions.compression = leveldb::kNoCompression; (sounds it would be optional, from this source code)
@denis, could you give the detail error messages or whatever detail info you confronted with? I'm still interested..
fixed in version 0.72.2, 0.67.5, thanks
I don't remember, but IMHO there are no error messages. But compressed leveldb database can be created for monitor or OSD, so in some cases (mainly in data migration, IMHO) it can cause strange failures. In any case, usable features can be randomly supported or no - this is bad sleeping bug... Or in ceph configuration time? Also I was use compressed monitor database - in old time of buggy Cuttlefish release (database size growing). Now I not use snappy compression, but it is possible.
PS To use snappy compression: mon leveldb compression = true and|or osd leveldb compression = true