-
Notifications
You must be signed in to change notification settings - Fork 11
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
server crashes with "qemu: uncaught target signal 6" on Mac M1 silicon #29
Comments
Well, I'm completely stumped. 10 minutes ago this image (built with Now, same image, same data, is immediate throwing that error. I've tried everything I can think of, can't get this to run on M1 Mac (via Docker, I also tried to get the server to run directly, using the compile instructions) but none of that worked. I guess I'll try via AWS? |
Working on the mac m1 build for Docker is really difficult when you don’t have the hardware. I don’t exactly know how to go about it, perhaps some other grobid users have it working? It’s definitely something to do with qemu, but I’m not sure if the versions are pinned or if they could be updated? |
I played with this a little more. A few notes for others that might come this way:
Ah, I see that it's actually in the name Does the jep install need to be done this way, could more standard package installs help? |
It is possible that the jep install will work with:
based on reading: https://stackoverflow.com/questions/43655291/dynamically-set-java-home-of-docker-container That does seem to work for me in the Dockerfile.software |
So, maybe making progress. I can get the docker build to finish, and it does create an aarch64 image. Unfortunately, it hits this error:
So |
@kermitt2 Hi Patrice, I'm trying to return to this, any idea if there was progress here? I'll check over on grobid/grobid as well. |
Hi James, I am calling for help @lfoppiano for the issue because he concentrates all the experience for running Grobid on mac and on the challenge of building a arm64 docker image. Afaik aarch64 and arm64 are the same. |
Hi @jameshowison, First, could you try to run this image on your Mac and let me know if it works (try to process a few files)? Given that software-mention is based on Grobid I think the simplest is to build its docker image from the grobid one, unless I'm overlooking something 😅 |
Using the 0.8.0-SNAPSHOT image, but running on a Macbook and Docker, I think the image uses x86 emulation. There is a bug (perhaps unfixed) in how qemu relates to this emulation.
That resulted in the server dumping core with the message "qemu: uncaught target signal 6".
I worked to build the image for arm64 (aka mac M1 or M2 silicon) using the edit to the Dockerfile in #28 and using
--platform=arm64
and that seems to fix the issue (after specifying--no-cache
on the docker build. e.g.,docker build --platform=linux/arm64 -t grobid/software-mentions:0.8.0-SNAPSHOT-arm64 --build-arg GROBID_VERSION=0.8.0-SNAPSHOT-arm64 --file Dockerfile.software .
Perhaps images could be built as multi platform with
--platform=linux/amd64,linux/arm64
as described here:https://www.docker.com/blog/faster-multi-platform-builds-dockerfile-cross-compilation-guide/
(but see below, that seemed to work briefly but now fails, which is very odd).
The text was updated successfully, but these errors were encountered: