containerd-shim-spin
containerd-shim-spin copied to clipboard
Simple Python Spin apps are failing to start
The shim appears to not support python applications.
Repro
spin new pyapp -t http-py
pip install requirements.txt
spin build
spin registry push ttl.sh/spin-py-foo:2h
spin kube scaffold -f ttl.sh/spin-py-foo:2h | k apply -f -
# Pods fail to start
Debugging
sudo ctr pull ttl.sh/spin-py-foo:2h
sudo RUST_LOG=trace ctr run --rm --net-host --runtime io.containerd.spin.v2 ttl.sh/spin-py-foo:2h py-foo bogus-arg
# process exits
Containerd logs
Fails at failed to build spin trigger
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.246053138Z" level=info msg="starting instance: py-foo"
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.246316099Z" level=info msg="calling start function"
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.246360197Z" level=info msg="setting up wasi"
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.247377987Z" level=info msg=" >>> configuring spin oci application 2"
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.247412943Z" level=info msg="<<< writing wasm artifact with length 41517920 config to cache, near "/.cache/registry/manifests""
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.308110493Z" level=info msg="writing spin oci config to "/spin.json""
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.3874617Z" level=info msg="instantiate_pre;"
Apr 14 17:26:38 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:26:38.701446536Z" level=info msg="error running start function: failed to build spin trigger"
And disabling precompilation surfaces better logs:
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:42:19.800827224Z" level=error msg="run_wasi ERROR >>> failed: failed to build spin trigger
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: Caused by:
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0: Failed to instantiate component 'mypy'
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 1: unable to parse binary
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 2: magic header not detected: bad magic number - expected=[
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x0,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x61,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x73,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x6d,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: ] actual=[
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x7f,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x45,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x4c,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: 0x46,
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: ] (at offset 0x0)"
Apr 14 17:42:19 kagold-ThinkPad-X1-Carbon-6th containerd[304436]: time="2024-04-15T00:42:19.802484297Z" level=info msg="error running start function: failed to build spin trigger"
@dicej are we handling componentization in Spin differently for Python components in a way that we would need to port over to the shim?