The following error message is displayed when using a crosvm control socket (for instance with "crosvm stop /tmp/socket" or "crosvm balloon 1 /tmp/socket"):
[ERROR:src/linux.rs:658] failed to send VmResponse: Send(Error(107))
ENOTCONN is defined to 107. Here's an excerpt from strace -ff crosvm run --socket=/tmp/socket:
[pid 244325] recvmsg(5, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\375\177\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 24
[pid 244325] sendmsg(5, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = -1 ENOTCONN (Transport endpoint is not connected)
I assume sendmsg() fails because there is no call to accept()/listen() on this socket after bind() (and msg_name is NULL).
Comment 1 by tbuckley@google.com
, Oct 8