DragonOS
DragonOS copied to clipboard
[BUG REPORT] 在事件到来的时候,epoll无法正确唤醒目标进程的问题。
描述错误 在某些情况下,epoll无法正确唤醒目标进程。
- 比如仓库内的test-backlog这个程序,使用了actix-web,但是无法返回任何内容到调用方。
ring这个程序在第一次发送icmp并收到响应后,后续无法再发送icmp包。
请填写您的电脑的信息:
- 操作系统及版本:Ubuntu 22.04
- DragonOS版本:c719ddc
- DADK版本:0.1.10
- Rust版本:1.68
重现步骤 重现行为的步骤:
- 运行dragonos
- 输入
test-backlog命令 - 在宿主机上,用浏览器访问虚拟机的12580端口。(如果是wsl/远程虚拟机,请使用vscode的端口转发)
- 浏览器无法收到任何响应,会一直转圈。(由于backlog机制,因此多次刷新都不会connection reset的,只会一直等待)
期望行为
能够返回hello world
对于上述测试用例,PR: https://github.com/DragonOS-Community/DragonOS/pull/730 修复了部分问题,使得actix-web能够正常注册信号处理函数、创建worker。并且访问相应接口的时候,不再是“等待然后connection timeout”,浏览器现在会显示"Empty response"