Re: selftests: net/af_unix test_unix_oob [FAILED]

From: Mirsad Todorovac
Date: Mon Aug 07 2023 - 19:12:35 EST


On 8/7/23 22:46, Kuniyuki Iwashima wrote:
From: Mirsad Todorovac <mirsad.todorovac@xxxxxxxxxxxx>
Date: Mon, 7 Aug 2023 21:44:41 +0200
Hi all,

In the kernel 6.5-rc5 build on Ubuntu 22.04 LTS (jammy jellyfish) on a Ryzen 7950 assembled box,
vanilla torvalds tree kernel, the test test_unix_oob unexpectedly fails:

# selftests: net/af_unix: test_unix_oob
# Test 2 failed, sigurg 23 len 63 OOB %

It is this code:

/* Test 2:
* Verify that the first OOB is over written by
* the 2nd one and the first OOB is returned as
* part of the read, and sigurg is received.
*/
wait_for_data(pfd, POLLIN | POLLPRI);
len = 0;
while (len < 70)
len = recv(pfd, buf, 1024, MSG_PEEK);
len = read_data(pfd, buf, 1024);
read_oob(pfd, &oob);
if (!signal_recvd || len != 127 || oob != '#') {
fprintf(stderr, "Test 2 failed, sigurg %d len %d OOB %c\n",
signal_recvd, len, oob);
die(1);
}

In 6.5-rc4, this test was OK, so it might mean we have a regression?

Thanks for reporting.

I confirmed the test doesn't fail on net-next at least, but it's based
on v6.5-rc4.

---8<---
[root@localhost ~]# ./test_unix_oob
[root@localhost ~]# echo $?
0
[root@localhost ~]# uname -r
6.5.0-rc4-01192-g66244337512f
---8<---

I'll check 6.5-rc5 later.

Hi, Kuniyuki,

It seems that there is a new development. I could reproduce the error with the failed test 2
as early as 6.0-rc1. However, the gotcha is that the error appears to be sporadically manifested
(possibly a race)?

I am currently attempting a bisect.

Kind regards,
Mirsad

marvin@defiant:~/linux/kernel/linux_torvalds$ grep test_unix_oob ../kselftest-6.5-rc4-1.log
/net/af_unix/test_unix_oob
# selftests: net/af_unix: test_unix_oob
ok 2 selftests: net/af_unix: test_unix_oob
marvin@defiant:~/linux/kernel/linux_torvalds$

Hope this helps.

NOTE: the kernel is vanilla torvalds tree, only "dirty" because the selftests were modified.

Kind regards,
Mirsad Todorovac