Skip to content
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

cmake stalls with defunct children #1256

Open
1 of 5 tasks
chicagofire opened this issue Jan 25, 2025 · 0 comments
Open
1 of 5 tasks

cmake stalls with defunct children #1256

chicagofire opened this issue Jan 25, 2025 · 0 comments

Comments

@chicagofire
Copy link

Description

I'm running x86 docker container on an arm vm (vz/rosetta) on a M4 Max MacBook Pro. Full details of env to follow, but, I'm running cmake on an open source project (https://github.com/quickfix/quickfix.git) and it will stall at various points with a defunct child process. The container is still responsive as I can exec another shell and inspect the running process. If I strace it, the pattern is always the same: a write to stdout & some system call (in either order) followed by SIGCHLD. Once I attach, it seems to kick the process into gear again and things move along. Without attaching, it never proceeds.

I have a rockylinux/8 docker image with some basic rpms installed

FROM rockylinux:8

RUN yum -y update && yum -y install \
        passwd \
        sudo \
        man \
        vim \
        git \
        libtool \
        m4 \
        automake \
        make \
        procps \
        strace \
        valgrind

I run the container and mount /Users/<username> (from the vm) to /home/<username> (in the container).

I use micromamba to manage a local env which contains the build requirements for quickfix - mamba create -p ./venv openssl cmake gcc gxx python. This lets me reuse the container for different projects and the mamba/conda environment is persistent in the project's directory in my Mac homedir.

Start command: colima start -c 6 -m 12 -d 100 -t vz --vz-rosetta

Sample strace output when cmake was stalled during an attempt to find python. python was a defunct subprocess of the cmake process with child pid 3712

/bin/strace: Process 3448 attached
syscall_0xf0000ba7bf50(0xf0000ba7b800, 0xf0000ba7b800, 0xf0000ba7bf50, 0, 0x8000effff7df4c80, 0xd7) = 0x8000effff7df4fe0
write(0, "\1", 1)                       = 140737490066448
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3712, si_uid=501, si_status=0, si_utime=6, si_stime=0} ---

I haven't heavily tested this setup yet, but, I get this with vz and not qemu, but, vz/rosetta is about 3x faster to build quickfix vs vz alone and nearly 10x faster than qemu, so, I'd like to figure out what is happening and increase reliability. Using strace to move it along is my current workaround.

Any thoughts on what might be happening or guidance on how to dig further? I'm sure I've forgotten some details, so, please ask for more specifics.

Version

colima version 0.8.1
git commit: 96598cc5b64e5e9e1e64891642b91edc8ac49d16

runtime: docker
arch: aarch64
client: v27.5.0
server: v27.4.0
limactl version 1.0.3
qemu-img version 9.2.0
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers

Operating System

  • macOS Intel <= 13 (Ventura)
  • macOS Intel >= 14 (Sonoma)
  • Apple Silicon <= 13 (Ventura)
  • Apple Silicon >= 14 (Sonoma)
  • Linux

Output of colima status

INFO[0000] colima is running using macOS Virtualization.Framework
INFO[0000] arch: aarch64
INFO[0000] runtime: docker
INFO[0000] mountType: virtiofs

Reproduction Steps

See general description

Expected behaviour

I would expect cmake to complete and exit normally.

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant