I’ve deployed an app with sqlite extension written in Zig and it’s getting
Program terminated with signal SIGILL, Illegal instruction.
#0 0x00007fbf1a79f66c in std.fmt.errol.errolFixed (val=1653920344.549083, buffer=...) at /deps/local/lib/std/fmt/errol.zig:362
362 /deps/local/lib/std/fmt/errol.zig: No such file or directory.
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ > 0x7fbf1a79f66c <std.fmt.errol.errolFixed+92> vcvttsd2usi %xmm0,%rax │
│ 0x7fbf1a79f672 <std.fmt.errol.errolFixed+98> mov %rax,-0x80(%rbp) │
│ 0x7fbf1a79f676 <std.fmt.errol.errolFixed+102> vcvtusi2sd %rax,%xmm1,%xmm1 │
│ 0x7fbf1a79f67c <std.fmt.errol.errolFixed+108> vsubsd %xmm1,%xmm0,%xmm0 │
│ 0x7fbf1a79f680 <std.fmt.errol.errolFixed+112> vmovsd -0x351a8(%rip),%xmm1 # 0x7fbf1a76a4e0 │
│ 0x7fbf1a79f688 <std.fmt.errol.errolFixed+120> vucomisd %xmm0,%xmm1 │
│ 0x7fbf1a79f68c <std.fmt.errol.errolFixed+124> seta %al │
│ 0x7fbf1a79f68f <std.fmt.errol.errolFixed+127> vmovsd -0x351bf(%rip),%xmm1 # 0x7fbf1a76a4d8 │
│ 0x7fbf1a79f697 <std.fmt.errol.errolFixed+135> vucomisd %xmm1,%xmm0 │
│ 0x7fbf1a79f69b <std.fmt.errol.errolFixed+139> seta %cl │
│ 0x7fbf1a79f69e <std.fmt.errol.errolFixed+142> and %cl,%al │
│ 0x7fbf1a79f6a0 <std.fmt.errol.errolFixed+144> test $0x1,%al │
│ 0x7fbf1a79f6a2 <std.fmt.errol.errolFixed+146> jne 0x7fbf1a79f838 <std.fmt.errol.errolFixed+552> │
│ 0x7fbf1a79f6a8 <std.fmt.errol.errolFixed+152> jmp 0x7fbf1a79f8cc <std.fmt.errol.errolFixed+700> │
│ 0x7fbf1a79f6ad <std.fmt.errol.errolFixed+157> jmp 0x7fbf1a79f6af <std.fmt.errol.errolFixed+159> │
│ 0x7fbf1a79f6af <std.fmt.errol.errolFixed+159> vmovsd -0x18(%rbp),%xmm0 │
│ 0x7fbf1a79f6b4 <std.fmt.errol.errolFixed+164> vpxor %xmm1,%xmm1,%xmm1 │
│ 0x7fbf1a79f6b8 <std.fmt.errol.errolFixed+168> vucomisd %xmm1,%xmm0 │
│ 0x7fbf1a79f6bc <std.fmt.errol.errolFixed+172> jne 0x7fbf1a79f6c2 <std.fmt.errol.errolFixed+178> │
│ 0x7fbf1a79f6be <std.fmt.errol.errolFixed+174> jp 0x7fbf1a79f6c2 <std.fmt.errol.errolFixed+178> │
│ 0x7fbf1a79f6c0 <std.fmt.errol.errolFixed+176> jmp 0x7fbf1a79f73b <std.fmt.errol.errolFixed+299> │
│ 0x7fbf1a79f6c2 <std.fmt.errol.errolFixed+178> vmovsd -0x351da(%rip),%xmm0 # 0x7fbf1a76a4f0 │
│ 0x7fbf1a79f6ca <std.fmt.errol.errolFixed+186> vmulsd -0x20(%rbp),%xmm0,%xmm0 │
│ 0x7fbf1a79f6cf <std.fmt.errol.errolFixed+191> vmovsd %xmm0,-0x20(%rbp) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
for @floatToInt(u64, val);
at zig/errol.zig at 74ed7c1f0998e9dd89aa3f3480fff845afd6b422 · ziglang/zig · GitHub
Since I’m not getting this error neither locally when running my alpine container, nor on github ci, I wonder if this could be related to firecracker vms or amd cpus?