brian-maloney / fluent-bit-static

Static builds of Fluent Bit
11 stars 3 forks source link

panic running on centos8 #1

Open seamaner opened 2 years ago

seamaner commented 2 years ago

fluent-bit version is 1.8.9 when fluent-bit runs on centos8, it panic at function if (getservbyname_r(service, proto, &se, (void *)tmpbuf, sizeof(tmpbuf), &sep) != 0)

image

brian-maloney commented 2 years ago

Hi @seamaner, this is probably going to be a question for upstream but can you post a config that reproduces your issue in the thread and I'll try to reproduce it on my side to see if I can narrow down where the issue lies. Thanks!

seamaner commented 2 years ago

Hi @seamaner, this is probably going to be a question for upstream but can you post a config that reproduces your issue in the thread and I'll try to reproduce it on my side to see if I can narrow down where the issue lies. Thanks!

the config is like: [INPUT] Name tail Path /var/log/mylog.log Tag mongo.mylog Db /var/log/fluent-bit.db

[OUTPUT] name forward match * host 192.168.2.101 port 24224 Retry_Limit 5 tls on tls.verify off tls.debug 3

seamaner commented 2 years ago

thanks for your reply.

fluent-bit is built on debian and run on centos. i think the lib used on debian can not be used on centos.

when try to build on centos7/centos8, errors:

/usr/bin/ld: dynamic STT_GNU_IFUNC symbol strcmp' with pointer equality in/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie

brian-maloney commented 2 years ago

I'd say this isn't so much a case of the library being incompatible, but instead CentOS must have stricter security settings than other distros, where it won't allow you to run non-PIE binaries at all. Fortunately, PIE is an aspect of the compile/linking process, not the library, so it should be possible to make this work, but it might require more effort than I've put into this project so far (hardly any). I'll see what I can do.

brian-maloney commented 2 years ago

I tested this on a CentOS 8 AWS EC2 instance using your example config and it seems to be working for me. I even set up a listener on my target host and logs are flowing normally. Can you provide a config that crashes immediately?

seamaner commented 2 years ago

I tested this on a CentOS 8 AWS EC2 instance using your example config and it seems to be working for me. I even set up a listener on my target host and logs are flowing normally. Can you provide a config that crashes immediately? In my environment, it crashes at getservbyname_r when send logs to server

brian-maloney commented 2 years ago

In my environment, it crashes at getservbyname_r when send logs to server

I hear you, but I can't reproduce it on an AWS instance running CentOS 8. If I can't reproduce the error I can't even begin to help debug it. Is it possible there's something specific to your environment (hardware or network config) that could be causing this problem? I tested in AWS on a t3a.nano spot instance so the total cost of testing was less than $0.01 USD. I'd encourage you to try to confirm whether it works for you on cloud hosting as well as that might point to something more specific to your individual configuration or hardware.