Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

app-compat: Failure when running an HTTP Go server #1221

Open
razvand opened this issue Dec 19, 2023 · 0 comments
Open

app-compat: Failure when running an HTTP Go server #1221

razvand opened this issue Dec 19, 2023 · 0 comments
Assignees
Labels
kind/bug Something isn't working

Comments

@razvand
Copy link
Contributor

razvand commented Dec 19, 2023

Describe the bug

When running a simple HTTP Go server under binary compatibility mode, using the app-elfloader, it fails.

Steps to reproduce

Use the setup in the corresponding PR in the catalog-for-maintainers repository.

Namely, use the following commands (copy-paste should work):

git clone https://github.com/unikraft/catalog-for-maintainers
cd catalog-for-maintainers
git remote add unikraft-upb https://github.com/unikraft-upb/catalog
git fetch unikraft-upb
git checkout -b razvand/examples/http-go1.21 unikraft-upb/razvand/examples/http-go1.21
cd library/base
../../utils/bincompat/base-build-all.sh
cd ../../examples/http-go1.21
make initrd
../../utils/bincompat/generate.py
./run-qemu-x86_64.sh ../../kernels/base_qemu-x86_64-strace

On another console, run twice:

curl 172.44.0.2:8080

You can close the QEMU running instance with Ctrl+a x.

Expected behavior

The application should start successfully and way for connections on port 8080.

Which architectures were you using or does this bug affect?

x86_64

Which platforms were you using or does this bug affect?

kvm

Relevant log output

clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=802591422}) = OK
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=813456265}) = OK
epoll_pwait(0x4, 0x41f27f4a8, ...) = 0x0
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=830827029}) = OK
epoll_pwait(0x4, 0x41f27f4a8, ...) = 0x1
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=847311059}) = OK
read(fd:7, <out>"", 4096) = 0
epoll_ctl(0x4, 0x2, ...) = 0x0
close(fd:7) = OK
clock_gettime(CLOCK_REALTIME, <out>timespec:{tv_sec=1703008599, tv_nsec=772111803}) = OK
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=883407633}) = OK
epoll_pwait(0x4, 0x10003aab28, ...) = 0x0
epoll_pwait(0x4, 0x41f27f4b0, ...) = 0x0
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=905821893}) = OK
nanosleep(0x10003ab120, 0x0, ...) = 0x0
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=922071160}) = OK
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=80, tv_nsec=932994759}) = OK
epoll_pwait(0x4, 0x41f27f4b0, ...) = 0x1
clock_gettime(CLOCK_MONOTONIC, <out>timespec:{tv_sec=83, tv_nsec=10049318}) = OK
[   83.025670] CRIT: [libkvmplat] RIP: 00000010008c2435 CS: 0008
[   83.035402] CRIT: [libkvmplat] RSP: 000000c000045bc8 SS: 0010 EFLAGS: 00010246
[   83.046336] CRIT: [libkvmplat] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
[   83.056659] CRIT: [libkvmplat] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000c0000061a0
[   83.066762] CRIT: [libkvmplat] RBP: 000000c000045c60 R08: 0000000000000001 R09: 000000c000021228
[   83.076360] CRIT: [libkvmplat] R10: 0000000000000001 R11: 0000000000000246 R12: 000000041f27faa8
[   83.085931] CRIT: [libkvmplat] R13: 0000000000000000 R14: 000000c0000061a0 R15: 0000000000000006
[   83.095517] CRIT: [libkvmplat] base is 0xc000045c60 caller is 0
[   83.102764] CRIT: [libkvmplat] base is 0xc000045db8 caller is 0xc00009c000
[   83.109617] CRIT: [libkvmplat] base is 0x13c24d caller is 0x480574011843f610
[   83.116706] CRIT: [libkvmplat] base is 0x538b482e78c08548 Unhandled Trap 13 (general protection), error code=0x0
[   83.128375] CRIT: [libkvmplat] RIP: 000000000010fdd7 CS: 0008
[   83.134410] CRIT: [libkvmplat] RSP: 00000000001cfee0 SS: 0010 EFLAGS: 00010002
[   83.143954] CRIT: [libkvmplat] RAX: 0000000000000000 RBX: 538b482e78c08548 RCX: 0000000000000780
[   83.155066] CRIT: [libkvmplat] RDX: 00000000000003d4 RSI: 0000000000000000 RDI: 0000000000185da7
[   83.165558] CRIT: [libkvmplat] RBP: 00000000001cfef0 R08: 0000000000000046 R09: 000000000000000b
[   83.177409] CRIT: [libkvmplat] R10: 000000000000003d R11: 00000000000003fd R12: 0000000000000005
[   83.187898] CRIT: [libkvmplat] R13: 00000000001cff50 R14: 000000c0000061a0 R15: 0000000000000006
[   83.198513] CRIT: [libkvmplat] Crashing
@razvand razvand added the kind/bug Something isn't working label Dec 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Something isn't working
Projects
Status: No status
Status: 🧊 Icebox
Development

No branches or pull requests

2 participants