grafana-rrd-server
grafana-rrd-server copied to clipboard
Prebuilt binary crashing on RHEL 6
I've downloaded the prebuilt binary, and it keeps crashing with this error:
grafana-rrd-server: symbol lookup error: grafana-rrd-server: undefined symbol: rrd_info_r
This happens every time it's sent a POST from Grafana.
It appears to be looking for an old version of librrd:
root@host:~ ❱❱❱ objdump -x /usr/local/bin/grafana-rrd-server | grep librrd
NEEDED librrd.so.4
librrd.so.4
is present on my machine (version 1.3.8, installed by yum) but it does not have that symbol. I've also got librrd.so.8
(version 1.6.0 installed from source) and it does have it:
root@host:~ ❱❱❱ objdump -x /usr/lib64/librrd.so.4 | grep rrd_info_r
root@host:~ ❱❱❱ objdump -x /usr/local/lib/librrd.so.8 | grep rrd_info_r
0000000000030860 g F .text 0000000000000c06 rrd_info_r
root@host:~ ❱❱❱
Also checked RHEL 7; it also provides librrd.so.4
version 1.4.8, and doesn't contain that symbol either.
I think this is caused by an issue in the rrd package which grafana-rrd-server is using. If this is correct, it's better to be fixed in the package's repository by merging the pull request (unlikely to happen, though 😭)
The grafana-rrd-server binary is built on a Docker image, which is based on Debian. That is why it can be successfully built, but can't run on RHEL.
@miken32 👆
Yes that’s probably why it crashes, but the real problem is that it shouldn’t be looking for librrd.so.4
because it doesn’t contain those symbols, but rather a later version. Then it would ignore the system version and insist on using manually built one instead.