-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux packages not working for centos (aarch64 / arm64v8) #4270
Linux packages not working for centos (aarch64 / arm64v8) #4270
Comments
are you able to reproduce the issue with Centos 7 ? (we don't ship packages for Centos 8) |
Hi @edsiper. Yes, I was able to reproduce the issue in AWS AMi CentOS 7.9.2009 aarch64 Even thou you don't ship packages for CentOs8 it's a supported platforms. |
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
Commenting to avoid stale |
I'll pick up to try to include in the staging test updates. |
@noly to keep you in the loop, the staging test workflow is in place now so I'll start extending tests to see if I can replicate although probably after the holidays now. |
I also found the problem when I use the arm64 image in k8s I think this is because jmemalloc compiled-in page size 4k, if your arm64 machine pagesize is 64k, it will not work. I change the dockerfile not use jemalloc and build a new image myself, then it can work on my arm64 machine. my arm64 machine pagesize is 65536. |
I'll admit I'm not an expert but looking at that issue it appears there is no general solution to it - you have to compile for your page size. Do you have a suggestion on what to do @ANBUZHIDAO for Fluent Bit containers or was this just for info on people who have the issue? We can/should document it as well. |
I've not forgotten... @noly did you see the page size comment above, is it relevant to your set up? |
Hi @patrick-stephens, it is relevant indeed. Fedoras distro use 64k as page size: Are you planing to release a fixed version of arm64 bin with correct page_size? |
If that is the default for Fedora we probably should - do you know if it is always the default and also for the downstream Red Hat distros as well? I'd rather not have to make another distro-specific artefact so be good if we can share them. The packages are all compiled via containerised builds currently: https://github.com/fluent/fluent-bit/blob/master/packaging/distros/centos/Dockerfile My concern as well is testing, verifying this is tricky in CI I think but I do need to ramp up the ARM tests specifically in this area. A PR would really help if you get a chance so ping me if you do and I'll push for it. |
@ANBUZHIDAO, I would also be very interested in your ARM build. I'm facing the same error using the Docker image in a Oracle Linux VM with Oracle Kubernetes Engine using ARM instances. bash-5.1$ getconf PAGESIZE
65536 I would be fine to have a binary without jemalloc for the time being. |
We should use a configure option on jemalloc to specify 65535 page size on CentOS as: --with-lg-page=16 ( 2^16 ) |
Seems a good shout so if anyone can submit a PR just ping me if it needs approval. |
I just change |
So it does sound like for CentOS 7 arm derivatives the default page size determined during the build is incorrect. This may be down to using QEMU on Ubuntu hosts as it is run with Github Actions. We need to ensure therefore it is built with the right settings on the CentOS containers. |
@noly just to keep you in the loop, we've identified a fix for this but I also want to add some verification to prevent it happening again so may take a bit of effort to sort. The current smoke tests for packaging use containers to run which won't detect this problem unfortunately:
The same seem to be true for Vagrant presumably because that would also be reliant on QEMU. I'm going to have to auto-provision an ARM instance for the target OS in CI and then use that - we wanted to extend the testing anyway so an opportunity to do so for this issue now. |
@patrick-stephens sounds great!! Thanks for taking care of this issue. |
@noly Any chance you can just test the change to confirm on master? CI testing is still WIP so if you have an actual target you can run on that would be ace to confirm. I'm just pushing a change to allow me to build a specific target for Otherwise if you have a similar host and can set up QEMU with docker on it then we can build the same target manually:
|
@noly (and anyone else) can you test the packages from here (once completed) on your target to confirm? You can now control jemalloc configuration via the |
Looks like it is not splitting the arguments so I'll fix that:
Apologies for that. |
One good aspect this picked up was that the default |
@noly try this one https://github.com/fluent/fluent-bit/actions/runs/1961696121 There should be a package to download based on master for the ARM 64 target |
On my way!! |
Did a fast test and worked!! 👯 Amazing work everyone!! and Kudos to you @patrick-stephens!!! |
@patrick-stephens do you know when this change will be available? is with v1.9.0? |
yes, the staging builds from 1.9 should also have it if you want to test the latest RC: https://github.com/fluent/fluent-bit/actions/runs/1961119944 |
I've updated the discussion on RCs as well with the details: #4954 |
The next 1.8 release should also have it, basically the next release of either. |
@patrick-stephens I use the lates images on the arm64 machine, have the same problem: |
Container images? They're debian based. |
I use the fluent/fluent-bit:latest docker images to running the fluentbit , but it has the same error log. My machine is arm64 and the OS is YHKYLIN-OS(base on linux) |
The container images are a Debian distro so sounds like your distro uses a different page size is my guess. Can you confirm the page size your distro uses (I've never heard of it)? |
+1 |
Cloned from #4007
Bug Report
Describe the bug
I'm getting an error while running FB in Centos 8 in arm.
To Reproduce
sudo yum install td-agent-bit
Expected behavior
Fluent-bit works.
Screenshots
Execution error:
Service start up error:
Your Environment
Version used: fluent-bit 1.8.9
Configuration: default/standard
Environment: AWS Linux Centos 8
The text was updated successfully, but these errors were encountered: