unikraft / catalog

Unikraft Applications & Examples Catalog
23 stars 29 forks source link

`ruby:3.2`: No network connection established #64

Closed razvand closed 4 months ago

razvand commented 4 months ago

Starting a simple Ruby3.2 HTTP server (PR #23) doesn't provide a running network connection connection. 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/catalog
cd catalog
git remote add unikraft-upb https://github.com/unikraft-upb/catalog
git fetch unikraft-upb
git checkout -b razvand/library/ruby unikraft-upb/razvand/library/ruby
cd library/ruby/3.2
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 --rm --log-type basic --log-level debug -M 256M -p 8080:8080 .

The output message is:

mmap(NULL, 331776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, fd:-1, 0) = va:0x1005541000
getrusage(0x0, 0x403e7ecd0, ...) = 0x0
openat(AT_FDCWD, "/etc/gai.conf", O_RDONLY|O_CLOEXEC) = No such file or directory (-2)
futex(va:0x1000a3c2e4, FUTEX_WAKE|FUTEX_PRIVATE_FLAG, 0x7fffffff) = OK
socket(AF_NETLINK, SOCK_CLOEXEC|SOCK_RAW, 0) = Address family not supported by protocol (-97)
socket(AF_INET6, SOCK_CLOEXEC|SOCK_DGRAM, 0) = Address family not supported by protocol (-97)
socket(AF_INET, SOCK_CLOEXEC|SOCK_DGRAM, 0) = fd:5
connect(0x5, 0x100531dd40, ...) = 0x0
getsockname(0x5, 0x403e7e3a8, ...) = 0x0
close(fd:5) = OK
socket(AF_INET, SOCK_NONBLOCK|SOCK_CLOEXEC|SOCK_STREAM, 6) = fd:5
fcntl(0x5, 0x1, ...) = 0x1
setsockopt(0x5, 0x1, ...) = 0x0
bind(fd:5, va:0x100531dd40, 16) = OK
listen(0x5, 0x1000, ...) = 0x0
accept4(0x5, 0x403e7ebc0, ...) = Resource temporarily unavailable (-11)

The output message without logging is:

<main>: warning: timer_create failed: Operation not supported, signals racy
razvand commented 4 months ago

False alarm. This works. The reason this happened it I didn't enable DHCP in LWIP via CONFIG_LWIP_DHCP: 'y'