gperftools-libs-2.6.1-1 or newer required for binaries linked against corresponding version at build time
Binaries compiled against the 2.6 version of libtcmalloc.so.4 (in this case ceph-osd) have the following undefined symbols.
# nm -D /usr/bin/ceph-osd|egrep '(_ZdaPvm|_ZdlPvm)' U _ZdaPvm U _ZdlPvm
The 2.4 version of libtcmalloc.so.4 (gperftools-libs-2.4-8.el7.x86_64) does not export these symbols.
# nm -D /usr/lib64/libtcmalloc.so.4|egrep '(_ZdaPvm|_ZdlPvm)' #
This leads to errors such as the following at runtime.
ceph-osd: symbol lookup error: ceph-osd: undefined symbol: _ZdaPvm
Installing gperftools-libs-2.6.1-1.el7.x86_64.rpm resolves the issue.
# nm -D /usr/lib64/libtcmalloc.so.4|egrep '(_ZdaPvm|_ZdlPvm)' 0000000000035dc0 T _ZdaPvm 0000000000035dc0 T _ZdlPvm
This issue is related to http://tracker.ceph.com/issues/35969 which required the 2.6 version at build time.
- NOTE: Any backport requires the fix from http://tracker.ceph.com/issues/35969