Skip to content

SIGSEGV when building x86_64 Fedora image on ARM64 OSX host #1165

@Serisium

Description

@Serisium

Howdy, I'm trying to build a Fedora bootc image on my M3 MacBook Pro host. When I run the below command, I quickly see a segfault in the Go runtime. I've tested Fedora 44, 43, and image types anaconda-iso and bootc-installer.

Thanks for taking a look, I'd be glad to test other configurations or give more details.

Machine

14" MacBook Pro.
Apple M3 Pro
18GB Memory
Sequoia 15.6.1

Command

sudo podman run \
	--rm \
	-it \
	--privileged \
	--pull=newer \
	--security-opt label=type:unconfined_t \
	--platform linux/amd64 \
	-v ./config.json:/config.json:ro \
	-v ./output:/output \
	-v /var/lib/containers/storage:/var/lib/containers/storage \
	quay.io/centos-bootc/bootc-image-builder:latest \
	--type anaconda-iso \
	--target-arch amd64 \
	--rootfs ext4 \
	quay.io/fedora/fedora-bootc:44-x86_64

config.json

{
  "customizations": {
    "user": [
      {
        "name": "...",
        "password": "...",
        "key": "ssh-rsa AAAA .....",
        "groups": [
          "wheel",
          "admins"
        ]
      }
    ],
    "filesystem": [
      {
        "mountpoint": "/",
        "minsize": "10 GiB"
      },
      {
        "mountpoint": "/var/data",
        "minsize": "20 GiB"
      }
    ]
  }
}

Output

SIGSEGV: segmentation violation
PC=0x43c4ee m=2 sigcode=1 addr=0xffffffff34691e10

goroutine 0 gp=0xc000002c40 m=2 mp=0xc000080808 [idle]:
runtime.netpoll(0x1d1b7eaaf485?)
	/usr/lib/golang/src/runtime/netpoll_epoll.go:169 +0x24e fp=0xffff35ffeb50 sp=0xffff35ffe4c8 pc=0x43c4ee
runtime.sysmon()
	/usr/lib/golang/src/runtime/proc.go:6233 +0x2d7 fp=0xffff35ffebb8 sp=0xffff35ffeb50 pc=0x44fe77
runtime.mstart1()
	/usr/lib/golang/src/runtime/proc.go:1887 +0x93 fp=0xffff35ffebe0 sp=0xffff35ffebb8 pc=0x4465f3
runtime.mstart0()
	/usr/lib/golang/src/runtime/proc.go:1840 +0x75 fp=0xffff35ffec10 sp=0xffff35ffebe0 pc=0x446535
runtime.mstart()
	/usr/lib/golang/src/runtime/asm_amd64.s:395 +0x5 fp=0xffff35ffec18 sp=0xffff35ffec10 pc=0x47b985

goroutine 1 gp=0xc000002380 m=nil [runnable, locked to thread]:
runtime.asyncPreempt2()
	/usr/lib/golang/src/runtime/preempt.go:308 +0x39 fp=0xc0000c7ab8 sp=0xc0000c7a98 pc=0x441b19
runtime.asyncPreempt()
	/usr/lib/golang/src/runtime/preempt_amd64.s:46 +0xdb fp=0xc0000c7c40 sp=0xc0000c7ab8 pc=0x47effb
fmt.(*pp).doPrintf(0xc0001940d0, {0x2f47cd3, 0x30}, {0x0, 0x0, 0x0})
	/usr/lib/golang/src/fmt/print.go:1029 +0xed8 fp=0xc0000c7d28 sp=0xc0000c7c40 pc=0x5185f8
fmt.Errorf({0x2f47cd3, 0x30}, {0x0, 0x0, 0x0})
	/usr/lib/golang/src/fmt/errors.go:25 +0x85 fp=0xc0000c7df0 sp=0xc0000c7d28 pc=0x50ebc5
github.com/docker/docker/api/types/swarm/runtime.init()
	/root/go/pkg/mod/github.com/docker/[email protected]+incompatible/api/types/swarm/runtime/plugin.pb.go:805 +0x2a fp=0xc0000c7e28 sp=0xc0000c7df0 pc=0xd7c16a
runtime.doInit1(0x453aa80)
	/usr/lib/golang/src/runtime/proc.go:7410 +0xd8 fp=0xc0000c7f50 sp=0xc0000c7e28 pc=0x451bd8
runtime.doInit(...)
	/usr/lib/golang/src/runtime/proc.go:7377
runtime.main()
	/usr/lib/golang/src/runtime/proc.go:254 +0x345 fp=0xc0000c7fe0 sp=0xc0000c7f50 pc=0x443065
runtime.goexit({})
	/usr/lib/golang/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000c7fe8 sp=0xc0000c7fe0 pc=0x47da41

goroutine 2 gp=0xc000002e00 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/golang/src/runtime/proc.go:435 +0xce fp=0xc00007afa8 sp=0xc00007af88 pc=0x475dce
runtime.goparkunlock(...)
	/usr/lib/golang/src/runtime/proc.go:441
runtime.forcegchelper()
	/usr/lib/golang/src/runtime/proc.go:348 +0xb3 fp=0xc00007afe0 sp=0xc00007afa8 pc=0x4432f3
runtime.goexit({})
	/usr/lib/golang/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00007afe8 sp=0xc00007afe0 pc=0x47da41
created by runtime.init.7 in goroutine 1
	/usr/lib/golang/src/runtime/proc.go:336 +0x1a

goroutine 18 gp=0xc000102380 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/golang/src/runtime/proc.go:435 +0xce fp=0xc000076780 sp=0xc000076760 pc=0x475dce
runtime.goparkunlock(...)
	/usr/lib/golang/src/runtime/proc.go:441
runtime.bgsweep(0xc000110000)
	/usr/lib/golang/src/runtime/mgcsweep.go:276 +0x94 fp=0xc0000767c8 sp=0xc000076780 pc=0x42cf54
runtime.gcenable.gowrap1()
	/usr/lib/golang/src/runtime/mgc.go:204 +0x25 fp=0xc0000767e0 sp=0xc0000767c8 pc=0x421425
runtime.goexit({})
	/usr/lib/golang/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000767e8 sp=0xc0000767e0 pc=0x47da41
created by runtime.gcenable in goroutine 1
	/usr/lib/golang/src/runtime/mgc.go:204 +0x66

goroutine 19 gp=0xc000102540 m=nil [GC scavenge wait]:
runtime.gopark(0xc000110000?, 0x34bf308?, 0x1?, 0x0?, 0xc000102540?)
	/usr/lib/golang/src/runtime/proc.go:435 +0xce fp=0xc000076f78 sp=0xc000076f58 pc=0x475dce
runtime.goparkunlock(...)
	/usr/lib/golang/src/runtime/proc.go:441
runtime.(*scavengerState).park(0x45a0740)
	/usr/lib/golang/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000076fa8 sp=0xc000076f78 pc=0x42aa09
runtime.bgscavenge(0xc000110000)
	/usr/lib/golang/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc000076fc8 sp=0xc000076fa8 pc=0x42af7c
runtime.gcenable.gowrap2()
	/usr/lib/golang/src/runtime/mgc.go:205 +0x25 fp=0xc000076fe0 sp=0xc000076fc8 pc=0x4213c5
runtime.goexit({})
	/usr/lib/golang/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000076fe8 sp=0xc000076fe0 pc=0x47da41
created by runtime.gcenable in goroutine 1
	/usr/lib/golang/src/runtime/mgc.go:205 +0xa5

goroutine 3 gp=0xc000003a40 m=nil [finalizer wait]:
runtime.gopark(0x1b8?, 0xc000002380?, 0x1?, 0x23?, 0xc00007a688?)
	/usr/lib/golang/src/runtime/proc.go:435 +0xce fp=0xc00007a630 sp=0xc00007a610 pc=0x475dce
runtime.runfinq()
	/usr/lib/golang/src/runtime/mfinal.go:196 +0x107 fp=0xc00007a7e0 sp=0xc00007a630 pc=0x4203e7
runtime.goexit({})
	/usr/lib/golang/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00007a7e8 sp=0xc00007a7e0 pc=0x47da41
created by runtime.createfing in goroutine 1
	/usr/lib/golang/src/runtime/mfinal.go:166 +0x3d

rax    0x1
rbx    0x0
rcx    0x0
rdx    0x0
rdi    0x45cf4a8
rsi    0xffffffff34691e00
rbp    0xffff35ffeb40
rsp    0xffff35ffe4c8
r8     0x77
r9     0x72
r10    0x2
r11    0xfffffffffffffd78
r12    0xffff35ffe548
r13    0xffff8956e700
r14    0xc000002c40
r15    0xffff8956e807
rip    0x43c4ee
rflags 0x202
cs     0x33
fs     0x0
gs     0x0

podman machine inspect

[
     {
          "ConfigDir": {
               "Path": "/Users/seriwork/.config/containers/podman/machine/libkrun"
          },
          "ConnectionInfo": {
               "PodmanSocket": {
                    "Path": "/var/folders/33/v45znkxj3_d7fp0pdsyrvc5w0000gp/T/podman/podman-machine-default-api.sock"
               },
               "PodmanPipe": null
          },
          "Created": "2025-12-05T12:05:02.653286-06:00",
          "LastUp": "2025-12-08T12:35:08.892045-06:00",
          "Name": "podman-machine-default",
          "Resources": {
               "CPUs": 6,
               "DiskSize": 37,
               "Memory": 3814,
               "USBs": []
          },
          "SSHConfig": {
               "IdentityPath": "/Users/seriwork/.local/share/containers/podman/machine/machine",
               "Port": 55980,
               "RemoteUsername": "core"
          },
          "State": "running",
          "UserModeNetworking": true,
          "Rootful": true,
          "Rosetta": false
     }
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions