On 8 March 2016 at 16:06, Zhang Chen <zhangchen.f...@cn.fujitsu.com> wrote: > I found the reason for this problem is that > unix_connect() have not connect to sock_path before iov_send(). > It need time to establish connection. so can we fix it with usleep() > like this: > > recv_sock = unix_connect(sock_path, NULL); > g_assert_cmpint(recv_sock, !=, -1); > + usleep(1000); > > ret = iov_send(send_sock[0], iov, 2, 0, sizeof(size) + > sizeof(send_buf)); > g_assert_cmpint(ret, ==, sizeof(send_buf) + sizeof(size)); > close(send_sock[0]); > > ret = qemu_recv(recv_sock, &len, sizeof(len), 0);
I would prefer it if we could find a way to fix this race reliably rather than just inserting a delay and hoping it is sufficient. Otherwise the test is likely to be unreliable if run on a heavily loaded or slow machine. thanks -- PMM