Bug Description
The extension server image (ghcr.io/predictable-labs/extension-repo:latest) contains incorrectly packaged binaries in the linux_arm64 directory. The files are x86-64 (AMD64) ELF binaries, not ARM64.
This causes LOAD algo to fail on ARM64 Linux systems (including k3d/Docker on Apple Silicon Macs).
Steps to Reproduce
- Run an ARM64 Linux container with Ryugraph
- Install and load the algo extension:
import ryugraph
db = ryugraph.Database('/data/test')
conn = ryugraph.Connection(db)
conn.execute("INSTALL algo FROM 'http://extension-server:80/'") # Downloads file
conn.execute("LOAD algo") # FAILS
Error Message
RuntimeError: IO exception: Failed to load library:
/home/user/.ryu/extension/25.9.0/linux_arm64/algo/libalgo.ryu_extension
Error: cannot open shared object file: No such file or directory.
The file exists (453,888 bytes) but cannot be loaded because it's the wrong architecture.
Root Cause Verification
Inspected the ELF header of the downloaded extension:
head -c 20 libalgo.ryu_extension | xxd
00000000: 7f45 4c46 0201 0103 0000 0000 0000 0000 .ELF............
00000010: 0300 3e00 ..>.
7f45 4c46 = ELF magic number (correct)
0300 3e00 at position 18 = machine type 0x003e = x86-64 (AMD64)
- ARM64 should be
0xb7 (183)
Extension Server Contents
Verified inside the extension server container:
/usr/share/nginx/html/v25.9.0/
├── linux_amd64/algo/libalgo.ryu_extension # x86-64 binary ✓
├── linux_arm64/algo/libalgo.ryu_extension # x86-64 binary ✗ (should be ARM64)
├── osx_amd64/algo/libalgo.ryu_extension
├── osx_arm64/algo/libalgo.ryu_extension
└── win_amd64/algo/libalgo.ryu_extension
Environment
- Ryugraph version: 25.9.2
- Extension server:
ghcr.io/predictable-labs/extension-repo:latest
- Host: Apple Silicon Mac (M1/M2/M3)
- Container runtime: k3d with OrbStack / Docker Desktop
- Container arch: linux/arm64
Workaround
Build and run all containers as linux/amd64. On Apple Silicon, these run via Rosetta 2 emulation, which works but is slower than native ARM64.
Expected Behavior
The linux_arm64 directory should contain actual ARM64 (aarch64) ELF binaries that can be loaded by ARM64 Linux processes.
Bug Description
The extension server image (
ghcr.io/predictable-labs/extension-repo:latest) contains incorrectly packaged binaries in thelinux_arm64directory. The files are x86-64 (AMD64) ELF binaries, not ARM64.This causes
LOAD algoto fail on ARM64 Linux systems (including k3d/Docker on Apple Silicon Macs).Steps to Reproduce
Error Message
The file exists (453,888 bytes) but cannot be loaded because it's the wrong architecture.
Root Cause Verification
Inspected the ELF header of the downloaded extension:
7f45 4c46= ELF magic number (correct)0300 3e00at position 18 = machine type0x003e= x86-64 (AMD64)0xb7(183)Extension Server Contents
Verified inside the extension server container:
Environment
ghcr.io/predictable-labs/extension-repo:latestWorkaround
Build and run all containers as
linux/amd64. On Apple Silicon, these run via Rosetta 2 emulation, which works but is slower than native ARM64.Expected Behavior
The
linux_arm64directory should contain actual ARM64 (aarch64) ELF binaries that can be loaded by ARM64 Linux processes.