diff mbox series

[RESEND] tests/tcg/linux-test: Fix random hangs in test_socket

Message ID 20220725144251.192720-1-iii@linux.ibm.com (mailing list archive)
State New, archived
Headers show
Series [RESEND] tests/tcg/linux-test: Fix random hangs in test_socket | expand

Commit Message

Ilya Leoshkevich July 25, 2022, 2:42 p.m. UTC
test_socket hangs randomly in connect(), especially when run without
qemu. Apparently the reason is that linux started treating backlog
value of 0 literally instead of rounding it up since v4.4 (commit
ef547f2ac16b).

So set it to 1 instead.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---

This is a rebase of the previous submission:
https://lists.gnu.org/archive/html/qemu-devel/2021-06/msg00095.html

 tests/tcg/multiarch/linux/linux-test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Huth July 29, 2022, 4:44 p.m. UTC | #1
On 25/07/2022 16.42, Ilya Leoshkevich wrote:
> test_socket hangs randomly in connect(), especially when run without
> qemu. Apparently the reason is that linux started treating backlog
> value of 0 literally instead of rounding it up since v4.4 (commit
> ef547f2ac16b).
> 
> So set it to 1 instead.
> 
> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> ---
> 
> This is a rebase of the previous submission:
> https://lists.gnu.org/archive/html/qemu-devel/2021-06/msg00095.html
> 
>   tests/tcg/multiarch/linux/linux-test.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/tcg/multiarch/linux/linux-test.c b/tests/tcg/multiarch/linux/linux-test.c
> index 019d8175ca..5a2a4f2258 100644
> --- a/tests/tcg/multiarch/linux/linux-test.c
> +++ b/tests/tcg/multiarch/linux/linux-test.c
> @@ -263,7 +263,7 @@ static int server_socket(void)
>       sockaddr.sin_port = htons(0); /* choose random ephemeral port) */
>       sockaddr.sin_addr.s_addr = 0;
>       chk_error(bind(fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)));
> -    chk_error(listen(fd, 0));
> +    chk_error(listen(fd, 1));
>       return fd;
>   
>   }

Not really my turf, but if there are no other takers and no complatins, I 
can take it through my testing branch:

https://gitlab.com/thuth/qemu/-/commits/testing-next

  Thomas
diff mbox series

Patch

diff --git a/tests/tcg/multiarch/linux/linux-test.c b/tests/tcg/multiarch/linux/linux-test.c
index 019d8175ca..5a2a4f2258 100644
--- a/tests/tcg/multiarch/linux/linux-test.c
+++ b/tests/tcg/multiarch/linux/linux-test.c
@@ -263,7 +263,7 @@  static int server_socket(void)
     sockaddr.sin_port = htons(0); /* choose random ephemeral port) */
     sockaddr.sin_addr.s_addr = 0;
     chk_error(bind(fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)));
-    chk_error(listen(fd, 0));
+    chk_error(listen(fd, 1));
     return fd;
 
 }