Virtio Serial fails to connect to name pipe on Windows
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1.9k
- Forks
- 238
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 100
Description
Running openvmm.exe with the options --virtio-serial=term --virtio-console opens a new terminal window, but it does not appear to be connected to anything. These options launch a child process to copy data back and forth from a named pipe (openvmm.exe --relay-console-path \\.\pipe\219476404589302878345095266126242352181 --relay-console-title "VIRTIO_SERIAL [OpenVMM]"), but this process silently exits immediately with the error code
0:000> !gle
LastErrorValue: (Win32) 0x6d (109) - The pipe has been ended.
LastStatusValue: (NTSTATUS) 0xc000014b - The pipe operation has failed because the other end of the pipe has been closed.
This leaves an orphaned terminal window behind with the title "VIRTIO_SERIAL [OpenVMM]", but there is nothing reading or writing to/from its stdin/stdio.
I'm not entirely sure where the failure is occurring in the code, I captured a ttd trace of the process, but windbg is having a hard time with the async closure in openvmm!console_relay::relay_console. I also don't see any logging coming from this process; I collected ETW events from the Microsoft.HvLite provider, but I don't see any events from this child process.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the console_relay::relay_console path and reproduce the issue using openvmm.exe --virtio-serial=term --virtio-console. Trace the child process and named-pipe connection around the reported ERROR_BROKEN_PIPE failure. Done means the virtio serial terminal connects successfully and does not leave an orphaned window.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100