Summary
Latx32 1.6.4 does not return when running the i386 apt-get --version command. The hang is reproducible both through the host i386 binfmt_misc registration and by invoking Latx32 explicitly. No network access is involved.
Environment
- Host architecture:
loongarch64
- Kernel: 6.18.27, 16K page size
- Latx32:
lat-i386 1.6.4
- Latx32 SHA-256:
d18eb64f804359369fdc4406a7ea865561536e23db41843fe9cbd7b25e7e7e83
- Latx32 Build ID:
62acc734612c72f911fad4dab9ed12816fd40a0d
- Guest: dynamically linked i386 user space; OCI image ID
sha256:586aff9495ac496e8fe0e09b2dcfc19b65be4b832cdcc0163617f75458e8c778
Reproduction
The complete cleanup-safe reproducer is:
https://github.com/luzeng87/loongrun/blob/main/tools/reproduce-latx32-apt-failure.sh
Run it with an i386 image containing Latx32, its native dependency closure, apt-get, and dpkg:
DOCKER_COMMAND="sudo docker" \
./tools/reproduce-latx32-apt-failure.sh <i386-image>
Equivalent failing commands are:
# Through binfmt_misc
docker run --rm --platform linux/386 --network none \
<i386-image> /usr/bin/apt-get --version
# Explicit Latx32 entry
docker run --rm --platform linux/386 --network none \
--entrypoint /opt/loongrun/native/lib64/ld-linux-loongarch-lp64d.so.1 \
<i386-image> \
--library-path /opt/loongrun/native/lib \
/opt/loongrun/native/bin/latx-i386-1.6 \
/usr/bin/apt-get --version
Both remain running until forcibly killed. The reproducer stops each container after 8 seconds and records exit code 124.
Controls
In the same image and invocation environment:
/bin/true: exits 0
/usr/bin/dpkg --version: exits 0
/usr/bin/gpgv --version: exits 0
- dynamically linked i386 Python, X11 clients, PulseAudio clients, and
dbus-send: run successfully
Observed summary:
reproduction_summary control=pass dpkg=pass binfmt_apt=timeout explicit_apt=timeout
An earlier apt-get update attempt also terminated with signal 11, but the network-free apt-get --version hang is the deterministic minimal case.
Expected result
apt-get --version should print version information and exit 0, as it does on a native i386 system.
Summary
Latx32 1.6.4 does not return when running the i386
apt-get --versioncommand. The hang is reproducible both through the host i386binfmt_miscregistration and by invoking Latx32 explicitly. No network access is involved.Environment
loongarch64lat-i386 1.6.4d18eb64f804359369fdc4406a7ea865561536e23db41843fe9cbd7b25e7e7e8362acc734612c72f911fad4dab9ed12816fd40a0dsha256:586aff9495ac496e8fe0e09b2dcfc19b65be4b832cdcc0163617f75458e8c778Reproduction
The complete cleanup-safe reproducer is:
https://github.com/luzeng87/loongrun/blob/main/tools/reproduce-latx32-apt-failure.sh
Run it with an i386 image containing Latx32, its native dependency closure,
apt-get, anddpkg:Equivalent failing commands are:
Both remain running until forcibly killed. The reproducer stops each container after 8 seconds and records exit code 124.
Controls
In the same image and invocation environment:
/bin/true: exits 0/usr/bin/dpkg --version: exits 0/usr/bin/gpgv --version: exits 0dbus-send: run successfullyObserved summary:
An earlier
apt-get updateattempt also terminated with signal 11, but the network-freeapt-get --versionhang is the deterministic minimal case.Expected result
apt-get --versionshould print version information and exit 0, as it does on a native i386 system.