Bug 1283159
Summary: | [RFE] reject multiple connections to console | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Francesco Romani <fromani> |
Component: | qemu-kvm | Assignee: | Amit Shah <amit.shah> |
Status: | CLOSED WONTFIX | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.1 | CC: | fromani, hhuang, huding, juzhang, rbalakri, virt-maint, xfu, zhguo |
Target Milestone: | rc | Keywords: | FutureFeature |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Enhancement | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-01-07 16:18:20 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1282437 |
Description
Francesco Romani
2015-11-18 11:55:00 UTC
(In reply to Francesco Romani from comment #0) > Description of problem: > oVirt/RHEV 3.6.0 exposes guest console device in a friendlier manner, > allowing admins to connect directly. To do so, we configure qemu to use a > serial or virtio console device, and we bind this device to a unix domain > socket on the host side. Other components of the oVirt/RHEV orchestrates the > connection. > Actual results: > First connection works perfectly fine, second connection hangs because, in > the guest side, the getty does not expect another connection. Actually it's not the guest side. It's on the host. The inbound connections to a socket are queued up. Fun experiment: open multiple connections to the same chardev, then close the first one and try communicating with the 2nd one that was opened. The connection will continue as normal. This is just some queueing of connections on the host side. The 'hang' you see is just the new socket waiting for the older one to go away. What this bz request means is that we should stop accepting more connections after one successful connection - that's not what we always want: e.g. a client can lose its connection to qemu, and qemu won't be able to start a new listening socket again (or will have to have very convoluted code to get this). Instead, will this suggestion be helpful: instead of opening qemu's sockets in server mode, open them in client mode (i.e. drop the 'server' option), and open the client in listening mode. i.e. instead of qemu ... -chardev socket,path=/some/socket,server,nowait,id=ch0 use qemu ... -chardev socket,path=some/socket,reconnect=5,id=ch0 this will make qemu open the socket in 'connect' mode (as opposed to server or listening mode), and will attempt reconnections to the socket every 5 seconds after a client is closed. Hope this is what you're looking for, and that this serves the purpose. Amit, thanks for the explanation and the suggestion. We have a few pieces interacting in this flow, so I need to check few things before to report if your suggestion works for us. Keeping the NEEDINFO open for a few more days. (In reply to Francesco Romani from comment #3) > Amit, thanks for the explanation and the suggestion. We have a few pieces > interacting in this flow, so I need to check few things before to report if > your suggestion works for us. Keeping the NEEDINFO open for a few more days. Sorry for the long wait. Looks like we can't directly implement this suggestions. We will work with libvirt to see how to fix in a different way. I think we can close this bug. OK, thanks. I guess WONTFIX is the right resolution. |