XIE YAOYAO
XIE YAOYAO
I am also not able to close the `VirtioSocketConnection`, close return nil, but io.Copy does not return. ``` go func NewProxyVSOCK(p *Publish, vso *vz.VirtioSocketDevice, port uint32) func(conn net.Conn) { return...
vzconn.Read() does not return after vzconn.Close(). the sequence to reproduce. ``` go vzconn := Connect2Port() grp := sync.WaitGroup{} grp.Add(1) go func() { bb := make([]byte,1024) n, err := vzconn.Read(bb) if...
need to setNoneBlock mode for the descriptor. ``` go func newVirtioSocketConnection(ptr unsafe.Pointer) *VirtioSocketConnection { id := xid.New().String() vzVirtioSocketConnection := C.convertVZVirtioSocketConnection2Flat(ptr) err := unix.SetNonblock(int(vzVirtioSocketConnection.fileDescriptor), true) if err != nil { panic(fmt.Sprintf("set...
golang lib use epoll to implement synchronized Read and Write. This requires a non-block socket. see golang implementation for more details, https://github.com/golang/go/blob/4f04e1d99fac7abf067b6bd3a299f1fbc9a59414/src/net/sock_cloexec.go#L45
@Code-Hex Sorry for the miss-leading, #23 does not intended to solve #13, it fix the problem of copyStream blocks on reading forever.
issue #24 might related with the crash scenario. remove code `runtime.SetFinalizer(socketDevice, func(self *VirtioSocketDevice) { self.Release() })` seems fixed.
@hogepodge Cool work. Could you share your solutions with us?
@andrewsykim There are some scenarios that ccm should ignore nodes. eg. virtual-kubelet , edge node, datacenter nodes in hybrid cluster . we should come up with more generous way to...
/lgtm /approve