hermit-os / kernel

A Rust-based, lightweight unikernel.
http://hermit-os.org
Apache License 2.0
1.2k stars 86 forks source link

The buff_id is incorrect or the reference to the TransferToken was misplaced. #1327

Closed stlankes closed 3 months ago

stlankes commented 4 months ago

If I test hermit-os/hermit-rs#602 with a TAP device, I received an internal virtio error.

I created the tap device as followed

 sudo ip tuntap add tap10 mode tap
 sudo ip addr add 10.0.5.1/24 broadcast 10.0.5.255 dev tap10
 sudo ip link set dev tap10 up

Afterwards I revised the test script from hermit-os/hermit-rs#602 as followed:

sleep 10 && cargo run --manifest-path ./Cargo.toml --bin client-bw --release --target x86_64-unknown-linux-gnu -- --nonblocking --address 10.0.5.3 --bytes 6000 --rounds 1000 & sudo /usr/libexec/qemu-kvm -display none -serial stdio -kernel hermit-loader-x86_64 -cpu host -device isa-debug-exit,iobase=0xf4,iosize=0x04 -initrd target/x86_64-unknown-hermit/release/server-bw -smp 1 -m 1024M -netdev tap,id=net0,ifname=tap10,script=no,downscript=no,vhost=on -device virtio-net-pci,netdev=net0,disable-legacy=on -append '-- --address 10.0.5.3 --bytes 6000 --rounds 1000'

I received following error message:

[0][PANIC] panicked at src/drivers/virtio/virtqueue/split.rs:174:18:
The buff_id is incorrect or the reference to the TransferToken was misplaced.