-
-
Notifications
You must be signed in to change notification settings - Fork 809
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
Mailu on arm exits with code 132 #2541
Comments
Hi, same issue here also with latest arm64 version.
|
Found at https://stackoverflow.com/questions/60930359/docker-containers-exit-code-132 and at RasaHQ/rasa#4602 that in an amd64 context, it might be due to building with amd64-avx and not simply amd64. I don't know if the same kind of issue might happen in arm64 context and if something was changed in the build recently ? |
Likely to be linked to #2538 I'm afraid. It changes the C++ compilation flags for ARM build... EDIT2: Maybe I'm wrong but it looks like the CI jobs are not running anything on ARM! |
It's most likely one of the compiler flags at Line 26 in 68bb8da |
This works on the aarch64 machine I have access to.
|
@leolivier @Minion3665 we have recently added two things: libhardened_malloc via LD_PRELOAD and a bunch of compiler hardening flags; if you could find what is causing the problems that'd be great |
@nextgens, how can we do that? EDIT: Maybe you can give me the name/tag of your personal docker hub images as you did when we worked together on the ARM support ? |
Is it a raspberry pi? I have switched recently my RPi 4 to arm64 version, but the images were working before I updated today... |
Just recompile the images with the proposed changes:
For speed sake, you may want to try only one of the failing images (don't forget MAILU_VERSION=local-arm)
and edit your docker-compose.yml to ensure that image is used in place of the others |
That's an ampere A1 instance on oracle's cloud. |
But if I do that on the master branch, I will have the same result as the hub image, won't I? |
I believe the idea is to do it after modifying the code (e.g. I checked-out a week-old commit and did it, my results are on docker hub under minion3665 and are working for me). Hopefully if we build enough we can pinpoint where the error is |
Somewhere in between line 21 and 25 on Line 26 in 68bb8da |
I confirm @Minion3665 images are working for me too. |
@leolivier commenting line by line line 21 to 25 and finding what exactly is breaking things would be helpful. |
I've retried rebuilding everything for armv7 and that works too on this CPU:
|
I am not right now, however I may do soon (i.e. when I finish some other work I have to do) so depending on how quickly you want this fixed you can either try rebuilding or not. |
It would be good if we could identify a test-case that would break on the builder: there's no point in them running the test-suite if I can't make it crash there. |
|
As I said, I destroyed my devt envt so I just tried a git clone on my RPi4 directly then export MAILU_VERSION and docker buildx bake on the Pi. I have this strange 132 error which does seem to be linked to any cpp variable:
|
132 means 'illegal instruction'; it could be anything. Remove line 21 to 25 in Mailu/core/base/Dockerfile and retry. |
I did that already but it keeps stopping on the above error... |
Including line 21 with LD_PRELOAD ? That could well be what makes pip crash. |
If that still doesn't work, try rebuilding without buildx:
|
LD_PRELOAD didn't work. I tried docker build w/o buildx but it fails too because TARGETPLATFORM is not set :/
I must confess that I worked on a lot of other things since I worked on this topic and I have forgotten everything, so I'm not efficient at all :( |
try with --build-arg TARGETPLATFORM=linux/arm64/v8 |
I added that and I'm back to the same issue:
|
This may be a different bug/problem. Looking at the diff in between the two commits mentioned in the issue:
|
I finally was able to restore my devt environment. |
Hi again, 1rst result:
(Note the 137 code, not 132 - which means by the way RF KILL if this is an errno, not illegal instruction) I will now try with other lines, w/o the hardened malloc |
I confirm that only removing the line on hardened malloc solves the issue! (tested only on resolver for now but I think it's enough) |
@leolivier please check whether LD_PRELOAD=/usr/lib/libhardened_malloc-light.so works |
@see Mailu#2541 Support is going to be a nightmare if RPI4 is not working.
@leolivier @Minion3665 the PR has been merged and new images should have been pushed; please confirm they work. |
Same 137 error... |
Thanks for the new images! I know this is still beta but would it be possible to work on having specific tags on each new versions so we can rollback to the previous version when such an issue arises? EDIT: finally snappymail also starts but awfully slowly... It takes more than 5mns to start and run nginx. Looks like it was stuck on the "chmod -R a+rX /var/www/webmail/" command inside start.py which is weird because the command is very quick if I run it manually... Anyway, after this slow start, it works normally ! |
Thank you very much, everything is working perfectly on my end
The problem is that each version is a commit, if it were done on existing pages I suspect this would lead to a lot of tags very quickly which'd be quite a bit of noise for anyone looking at tags on docker hub. If this were done perhaps a second org/similar would be an advantage |
Thank you for the feedback.
Massive work has been done on #2526 ; it may improve things. By default snappymail uses a file-based cache... and we switch to APCu.
We've talked about it in the past and the answer is no. When the ARM images will hit a stable release then that will be possible... but we don't want people running different shades of master. To solve your specific problem, I suggest you look into persisting the "running" images before attempting an update; what I usually do is stop the containers, rename them and then upgrade. If the upgrade works I then dispose of the stopped containers... and if it doesn't I just restart them. |
Thanks for the suggestion @nextgens, I will try that |
@see Mailu#2541 Support is going to be a nightmare if RPI4 is not working.
|
Thank you @nextgens |
@leolivier can you post the output of |
@nextgens here it is:
|
2771: Sanitize logs as appropriate r=mergify[bot] a=nextgens ## What type of PR? enhancement ## What does this PR do? - Sanitize logs as appropriate. - change the healthcheck of radicale to something less verbose - disable hardened-malloc if we detect a processor not supporting the AVX extension set Should we backport something like that? It could be argued it's a bugfix. ### Related issue(s) - close #2644 - close #2764 - #2541 ## Prerequisites Before we can consider review and merge, please make sure the following list is done and checked. If an entry in not applicable, you can check it or remove it from the list. - [ ] In case of feature or enhancement: documentation updated accordingly - [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file. Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
2791: LD_PRELOAD may not be in ENV r=mergify[bot] a=nextgens ## What type of PR? bug-fix ## What does this PR do? In front, config.py can be called several times. LD_PRELOAD may have already been removed from ENV ### Related issue(s) - close #2789 - #2541 ## Prerequisites Before we can consider review and merge, please make sure the following list is done and checked. If an entry in not applicable, you can check it or remove it from the list. - [ ] In case of feature or enhancement: documentation updated accordingly - [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file. Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
2791: LD_PRELOAD may not be in ENV r=nextgens a=nextgens ## What type of PR? bug-fix ## What does this PR do? In front, config.py can be called several times. LD_PRELOAD may have already been removed from ENV ### Related issue(s) - close #2789 - #2541 ## Prerequisites Before we can consider review and merge, please make sure the following list is done and checked. If an entry in not applicable, you can check it or remove it from the list. - [ ] In case of feature or enhancement: documentation updated accordingly - [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file. Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Environment & Version
Environment
Version
master
Description
Mailu fails to run on a raspberry pi 4
Replication Steps
docker compose up
Observed behaviour
Expected behaviour
Extra notes
Logs
The text was updated successfully, but these errors were encountered: