On Feb 12, 2020, at 1:27 PM, Marcus Watts
<mwatts(a)redhat.com> wrote:
On Wed, Feb 12, 2020 at 12:32:20PM -0800, Yiming Zhang wrote:
...
librbd.so.1 =>
/usr/lib/x86_64-linux-gnu/librbd.so.1 (0x00007fa3a4e4a000)
librados.so.2 => /usr/lib/x86_64-linux-gnu/librados.so.2 (0x00007fa3a4af9000)
I recompiled ceph and make install all libs, and got memory issue with fio:
fio-3.17-116-gf4cd
Starting 1 process
Segmentation fault (core dumped)
-ym
...
You probably used the wrong ceph headers.
The default ceph install is going to go into /usr/local.
System packages, which on many modern distributions will include
ceph dependencies, will go into /usr. If you've got both running
around, you need to make sure that the headers you use at compile time
match the libraries you use at runtime. A memory fault is a typical
symptom when you botched this.
That’s right. After separating the dependencies, the core dumped error goes away.
You might be able to just de-install the system
provided packages;
but check first to see it doesn't remove something you want to keep.
At build time, you might look for lines like these
-I $H/include
-L $H/lib
-Wl,-rpath,$H/lib
on the compile line(s) to point at headers and runtime libraries.
Note that many modern build systems hide the actual compile commands by default.
Sometimes can also use "LD_LIBRARY_PATH" at runtime to point
at the libraries you want; but first use "objdump -p " to verify
there's no "RPATH". If there is an rpath, you may be able to
use "chrpath" to change it.
-Marcus Watts