for-mac icon indicating copy to clipboard operation
for-mac copied to clipboard

Mac M1 - after upgrade to Docker Desktop 4.27.1 docker container with java fails with qemu: uncaught target signal 11 (Segmentation fault) - core dumped

Open ThomasHurek opened this issue 1 year ago β€’ 59 comments

Description

Various docker containers built on arm64 and work fine with docker desktop 4.26.1 and earlier now fail with 4.27.1 with the following error when the Java JVM tries to start: qemu: uncaught target signal 11 (Segmentation fault) - core dumped

Rolling back to 4.26.1 solves the problem.

Reproduce

docker run -p 10039:10039 -p 10041:10041 -p 10042:10042 -p 10020:10020 -p 10200:10200 -p 10203:10203 -p 10202:10202 -p 127.0.0.1:7779:7779 --platform=linux/amd64 -d ... Inside the container check the JVM logs.

Expected behavior

Docker container with Java JVM should be able to start.

docker version

Client:
 Cloud integration: v1.0.35+desktop.10
 Version:           25.0.2
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        29cf629
 Built:             Thu Feb  1 00:18:45 2024
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.27.1 (136059)
 Engine:
  Version:          25.0.2
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       fce6e0c
  Built:            Thu Feb  1 00:23:21 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client:
 Version:    25.0.2
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.12.1-desktop.4
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.24.3-desktop.1
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-compose
  debug: Get a shell into any image or container. (Docker Inc.)
    Version:  0.0.22
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-debug
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.21
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-extension
  feedback: Provide feedback, right in your terminal! (Docker Inc.)
    Version:  v1.0.4
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-feedback
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v1.0.0
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-sbom
  scout: Docker Scout (Docker Inc.)
    Version:  v1.3.0
    Path:     /Users/thomashurek/.docker/cli-plugins/docker-scout
WARNING: Plugin "/Users/thomashurek/.docker/cli-plugins/docker-scan" is not valid: failed to fetch metadata: fork/exec /Users/thomashurek/.docker/cli-plugins/docker-scan: no such file or directory

Server:
 Containers: 2
  Running: 2
  Paused: 0
  Stopped: 0
 Images: 6
 Server Version: 25.0.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.6.12-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 10
 Total Memory: 11.92GiB
 Name: docker-desktop
 ID: 0c2b3f80-2c24-4c41-8a0a-694a04bd78ef
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: daemon is not using the default seccomp profile

Diagnostics ID

87F8214C-033B-4E15-8F11-D909E9F5EF70/20240205200938

Additional Info

No response

ThomasHurek avatar Feb 05 '24 20:02 ThomasHurek

Thank @ThomasHurek, sorry for breaking your workflow. I think I know where it comes from. I'll investigate some more tomorrow. Do you have an example of docker image I can use?

dgageot avatar Feb 05 '24 20:02 dgageot

@dgageot Thank you for looking into it. Unfortunately not a public image.

ThomasHurek avatar Feb 05 '24 23:02 ThomasHurek

@dgageot If it's helpful, I'm also getting a qemu seg fault when trying to run containers based off of postgis/postgis:15-master image. That one is public. I'm currently on macOS Monterey, but am going to update to Sonoma this evening.

db            | performing post-bootstrap initialization ... ok
db            | syncing data to disk ... ok
db            |
db            | initdb: warning: enabling "trust" authentication for local connections
db            | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
db            |
db            | Success. You can now start the database server using:
db            |
db            |     pg_ctl -D /var/lib/postgresql/data -l logfile start
db            |
db            | waiting for server to start....2024-02-05 20:51:40.289 UTC [126] LOG:  starting PostgreSQL 15.2 (Debian 15.2-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
db            | 2024-02-05 20:51:40.292 UTC [126] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db            | 2024-02-05 20:51:40.309 UTC [134] LOG:  database system was shut down at 2024-02-05 20:51:39 UTC
db            | qemu: uncaught target signal 11 (Segmentation fault) - core dumped
db            | qemu: uncaught target signal 11 (Segmentation fault) - core dumped
db            | qemu: uncaught target signal 11 (Segmentation fault) - core dumped
db            |  stopped waiting
db            | pg_ctl: could not start server
db            | Examine the log output.
db exited with code 1

Then when I looked at the container logs after stopping it, I saw these:

2024-02-05 17:24:21 
2024-02-05 17:24:21 PostgreSQL Database directory appears to contain a database; Skipping initialization
2024-02-05 17:24:21 
2024-02-05 17:24:21 2024-02-05 23:24:21.311 UTC [1] LOG:  starting PostgreSQL 15.5 (Debian 15.5-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-02-05 17:24:21 2024-02-05 23:24:21.317 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-02-05 17:24:21 2024-02-05 23:24:21.317 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2024-02-05 17:24:21 2024-02-05 23:24:21.382 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-02-05 17:24:21 2024-02-05 23:24:21.449 UTC [70] LOG:  database system was interrupted; last known up at 2024-02-05 22:55:06 UTC
2024-02-05 17:24:21 2024-02-05 23:24:21.994 UTC [72] FATAL:  the database system is starting up
2024-02-05 17:24:22 2024-02-05 23:24:22.309 UTC [70] LOG:  database system was not properly shut down; automatic recovery in progress
2024-02-05 17:24:22 2024-02-05 23:24:22.341 UTC [70] LOG:  invalid record length at 0/14FE148: wanted 24, got 0
2024-02-05 17:24:22 2024-02-05 23:24:22.341 UTC [70] LOG:  redo is not required
2024-02-05 17:24:22 2024-02-05 23:24:22.379 UTC [66] LOG:  checkpoint starting: end-of-recovery immediate wait
2024-02-05 17:24:22 2024-02-05 23:24:22.395 UTC [66] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.004 s, sync=0.002 s, total=0.028 s; sync files=2, longest=0.001 s, average=0.001 s; distance=0 kB, estimate=0 kB
2024-02-05 17:24:22 qemu: uncaught target signal 11 (Segmentation fault) - core dumped
2024-02-05 17:24:22 qemu: uncaught target signal 11 (Segmentation fault) - core dumped
2024-02-05 17:24:22 qemu: uncaught target signal 11 (Segmentation fault) - core dumped

bradleygore avatar Feb 05 '24 23:02 bradleygore

After upgrading OS to Sonoma this error went away πŸ₯³

bradleygore avatar Feb 06 '24 02:02 bradleygore

Same here.

  • docker-compose
  • postgis/postgis:11-2.5
  • macOS Ventura 13.6.4 (22G513)

Error message

qemu: uncaught target signal 11 (Segmentation fault) - core dumped

Edit:

I downgraded to docker desktop 4.26.1 and the issue seemed to be gone

yilinjuang avatar Feb 06 '24 14:02 yilinjuang

Same here

  • qemu: uncaught target signal 11 (Segmentation fault)
  • macOS 13.5.2 M1 Max
  • I downgraded a few versions, to 4.24.2 and it stopped happening
  • The base Image I'm using is ubuntu:focalwith a custom Node.js 18x application

If you experience this issue: downgrade Docker for Mac https://stackoverflow.com/a/64825028/4681920

jan-osch avatar Feb 06 '24 16:02 jan-osch

Update: after updating to macOS 14.3 the issue does not occur anymore

jan-osch avatar Feb 07 '24 13:02 jan-osch

Unfortunately macOS 14.x is not rolled out in our company yet so stuck with 12.x or 13.x.

ThomasHurek avatar Feb 07 '24 13:02 ThomasHurek

I'm also having this issue, building the container worked yesterday, not today after the update to 4.27.1

-macOS Monterey 12.7, M1

When I downgraded back to 4.26.1 here it worked again.

zross avatar Feb 07 '24 17:02 zross

It happens with linux/amd64 docker/dev-environments-default:stable-1 on my M1 Mac.

jmlapre avatar Feb 08 '24 20:02 jmlapre

@jmlapre and everyone, could you try Docker Desktop 4.27.2 that was released today?

dgageot avatar Feb 08 '24 21:02 dgageot

Just tried and still seeing: qemu: uncaught target signal 11 (Segmentation fault) - core dumped

ThomasHurek avatar Feb 08 '24 21:02 ThomasHurek

Also seeing this after updating to Docker Desktop 4.27.1 in the last few days. A number of our older builds that previously worked over the past years are now suddenly seeing various output similar to this

app-1  | /gems/gems/image_optim_pack-0.6.0-x86_64-linux/lib/image_optim/pack.rb:69: [BUG] Segmentation fault at 0x0000000000000000
app-1  | ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
app-1  |
app-1  | -- Control frame information -----------------------------------------------
app-1  | qemu: uncaught target signal 11 (Segmentation fault) - core dumped

jasonfine avatar Feb 08 '24 21:02 jasonfine

Hi everyone, here's the status on this one:

  • I was able to reproduce the qemu: uncaught target signal 11 (Segmentation fault) error on 4.27.2, with Rosetta disabled.
  • When Rosetta is enabled, it all works fine
  • On Docker Desktop 4.26.1, the very old version of Qemu that we had also seems to work fine. We updated Qemu to a more recent version in 4.27.0

Could you all try and activate Rosetta, in 4.27.2, and tell me if that works for you too? I'll try QEMU 8.1.5 and 8.2.1 to see if they fixe the issue. (We currently ship 8.1.4)

dgageot avatar Feb 09 '24 07:02 dgageot

Hey everyone,

i just stumbled across the same error after updating to version 4.27.1 this morning and then to 4.27.2.

@dgageot after enabling Rosetta the error seems to be gone.

magnolo avatar Feb 09 '24 09:02 magnolo

@dgageot When you mention enabling rosetta I have rosetta enabled in my mac - is there a docker desktop setting to switch to rosetta instead of qemu? I am on macOS 12.7.

ThomasHurek avatar Feb 09 '24 12:02 ThomasHurek

Same - not seeing this configuration option in the Docker Desktop preferences.

jasonfine avatar Feb 09 '24 12:02 jasonfine

@ThomasHurek @jasonfine I do see the Use Rosetta for x86/amd64 emulation on Apple Silicon option in the general settings of docker desktop on v4.27.1. Also worked for me!

hubofgitongithub avatar Feb 09 '24 12:02 hubofgitongithub

Upgraded to macOS 14.3.1 and docker-compose started running like a πŸ‘ΈπŸ» again πŸ‘πŸ»

Gogoro avatar Feb 09 '24 13:02 Gogoro

Yup, upgrade to Mac OS 14 did the trick for me too, thanks

Nikoplezi avatar Feb 12 '24 22:02 Nikoplezi

@ThomasHurek @jasonfine Don't you see these settings?

Screenshot 2024-02-14 at 09 59 50

dgageot avatar Feb 14 '24 09:02 dgageot

This is how it looks like for me:

image

ThomasHurek avatar Feb 14 '24 10:02 ThomasHurek

On Mac OS 14.3.1 with Docker Desktop 4.27.2 PHP container fails like this with containerd on:

A. With Rosetta emulation disabled

2024-02-14 11:39:10 [14-Feb-2024 11:39:10] WARNING: [pool www] child 115 said into stderr: "qemu: uncaught target signal 11 (Segmentation fault) - core dumped"
2024-02-14 11:39:10 [14-Feb-2024 11:39:10] WARNING: [pool www] child 115 exited on signal 11 (SIGSEGV) after 241.836107 seconds from start

B. Enabled Rosetta

2024-02-14 11:49:25 [14-Feb-2024 11:49:25] WARNING: [pool www] child 198 exited on signal 11 (SIGSEGV) after 39.904495 seconds from start

In other words there is no Qemu error with Rosetta enabled, but the container crashes consistently nonetheless with v4.27.x.

NiklasBr avatar Feb 14 '24 11:02 NiklasBr

This is how it looks like for me:

@ThomasHurek Sorry, I checked and you have to be at least on macOS 13 to enable Rosetta.

dgageot avatar Feb 14 '24 11:02 dgageot

I am on 14.3 MacOS issue still persists.

pitops avatar Feb 14 '24 11:02 pitops

@pitops Have you tried Rosetta?

dgageot avatar Feb 14 '24 11:02 dgageot

@dgageot I haven't. Instead I just tried with the downgraded 4.26.1 and it got passed that error. Definitely something wrong with latest docker version

pitops avatar Feb 14 '24 11:02 pitops

@dgageot I haven't. Instead I just tried with the downgraded 4.26.1 and it got passed that error. Definitely something wrong with latest docker version

Please give a try to Rosetta. It seems to work for most of the users who have this issue. Yes, Docker Desktop 4.27+ has got qemu 8.1.5 that is way more recent than the 6.something that came with Docker Desktop 4.26.1. But it comes with regressions.

dgageot avatar Feb 14 '24 11:02 dgageot

Still on OS 12.6 here, the downgrade to 4.26.1 works for now. I'm going to stick with this for now as a full system update could potentially be a headache with my current workload.

jasonfine avatar Feb 14 '24 12:02 jasonfine

Due to a third party software we can't have Rosetta enabled. Switching it off has worked until 4.27+ . After that release all interactions with the library produces Segmentation fault. Works fine with 4.26.1.

MacOS 14.3.1

hutchkintoot avatar Feb 14 '24 12:02 hutchkintoot