unikraft / catalog

Unikraft Applications & Examples Catalog
23 stars 29 forks source link

`mongo:6.0`: Error: `Unhandled Trap 6 (invalid opcode), error code=0x0` #46

Closed razvand closed 4 months ago

razvand commented 5 months ago

Starting Mongo 6.0.13 (PR #45) results in a crash. Use the following commands to replicate:

wget https://raw.githubusercontent.com/unikraft/catalog-for-maintainers/main/utils/start-buildkit.sh
source start-buildkit.sh
git clone https://github.com/unikraft-upb/catalog
cd catalog
git checkout -b razvand/library/mongo origin/razvand/library/mongo
cd library/mongo/6.0
sed -i "s/# CONFIG_LIBSYSCALL_SHIM_STRACE: 'y'/CONFIG_LIBSYSCALL_SHIM_STRACE: 'y'/" Kraftfile
kraft build --no-cache --no-update --plat qemu --arch x86_64
kraft rm --all ; kraft run --log-type basic --log-level debug -M 1024M -p 27017:27017

This results in an error:

mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, fd:-1, 0) = va:0x100134b000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, fd:-1, 0) = va:0x100134d000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, fd:-1, 0) = va:0x100134f000
arch_prctl(0x1002, 0x100134ef00, ...) = 0x0
set_tid_address(0x100134f1d0, 0x100134ef00, ...) = 0x1
set_robust_list(0x100134f1e0, 0x18, ...) = Function not implemented (-38)
rseq(0x100134f8a0, 0x20, ...) = Function not implemented (-38)
mprotect(va:0x100093c000, 16384, PROT_READ) = OK
mprotect(va:0x1001349000, 4096, PROT_READ) = OK
mprotect(va:0x100133c000, 4096, PROT_READ) = OK
mprotect(va:0x1001335000, 4096, PROT_READ) = OK
mprotect(va:0x100130b000, 40960, PROT_READ) = OK
mprotect(va:0x10011e0000, 4096, PROT_READ) = OK
mprotect(va:0x10011bd000, 4096, PROT_READ) = OK
mprotect(va:0x10011a2000, 4096, PROT_READ) = OK
mprotect(va:0x100003f000, 4096, PROT_READ) = OK
mprotect(va:0x1001193000, 4096, PROT_READ) = OK
mprotect(va:0x1000134000, 4096, PROT_READ) = OK
mprotect(va:0x1001158000, 53248, PROT_READ) = OK
mprotect(va:0x100109a000, 4096, PROT_READ) = OK
mprotect(va:0x1001017000, 8192, PROT_READ) = OK
mprotect(va:0x1000fd2000, 4096, PROT_READ) = OK
mprotect(va:0x1000d9c000, 16384, PROT_READ) = OK
mprotect(va:0x1000998000, 4096, PROT_READ) = OK
mprotect(va:0x1000f78000, 65536, PROT_READ) = OK
mprotect(va:0x1000bf5000, 4096, PROT_READ) = OK
mprotect(va:0x1000bd9000, 4096, PROT_READ) = OK
mprotect(va:0x1000bcb000, 4096, PROT_READ) = OK
mprotect(va:0x1000afc000, 4096, PROT_READ) = OK
mprotect(va:0x1000ae8000, 8192, PROT_READ) = OK
mprotect(va:0x1000a8a000, 8192, PROT_READ) = OK
mprotect(va:0x1000a38000, 4096, PROT_READ) = OK
mprotect(va:0x100051a000, 372736, PROT_READ) = OK
mprotect(va:0x1000a22000, 8192, PROT_READ) = OK
mprotect(va:0x10009b7000, 4096, PROT_READ) = OK
mprotect(va:0x1000975000, 12288, PROT_READ) = OK
mprotect(va:0x1000724000, 4096, PROT_READ) = OK
mprotect(va:0x1000704000, 4096, PROT_READ) = OK
mprotect(va:0x1000611000, 40960, PROT_READ) = OK
mprotect(va:0x1000031000, 4096, PROT_READ) = OK
mprotect(va:0x100011d000, 16384, PROT_READ) = OK
mprotect(va:0x100e9bf000, 1445888, PROT_READ) = OK
mprotect(va:0x1000079000, 8192, PROT_READ) = OK
prlimit64(0x0, 0x3, ...) = 0x0
[    1.701473] CRIT: [libkvmplat] Unhandled Trap 6 (invalid opcode), error code=0x0
[    1.703387] CRIT: [libkvmplat] RIP: 000000100d6c222a CS: 0008
[    1.704947] CRIT: [libkvmplat] RSP: 0000000432d7f8b0 SS: 0010 EFLAGS: 00010202
[    1.706860] CRIT: [libkvmplat] RAX: 0000000000004000 RBX: 0000000000004008 RCX: 0000000000004000
[    1.709262] CRIT: [libkvmplat] RDX: 0000000000004008 RSI: 000000000000002c RDI: 000000000000002d
[    1.711553] CRIT: [libkvmplat] RBP: 0000000432d7fa80 R08: 000000000000002d R09: 000000000000002c
[    1.713990] CRIT: [libkvmplat] R10: 000000000000002d R11: 0000000000000800 R12: 000000100ef79380
[    1.715765] CRIT: [libkvmplat] R13: 000000000000002c R14: 000000000000002c R15: 000000000000002a
[    1.717529] CRIT: [libkvmplat] Crashing
razvand commented 4 months ago

This has been solved, but now there is a superseding issue #75