Date: Sun, 14 Oct 2018 22:17:28 -0700 From: "Enji Cooper (yaneurabeya)" <yaneurabeya@gmail.com> To: Gleb Smirnoff <glebius@freebsd.org> Cc: FreeBSD Current <freebsd-current@freebsd.org>, freebsd-net <freebsd-net@freebsd.org>, Jonathan Looney <jonlooney@gmail.com> Subject: Re: Relatively deterministic panic with sendfile(2) when running tests in the sxlock code Message-ID: <D5F7ABC3-89F1-48B9-94B0-067E3DE3F5B2@gmail.com> In-Reply-To: <BA546783-C2DA-4ED9-8391-8408A8B9145B@gmail.com> References: <CC816726-7B79-4643-82DD-7B4CF4A25F54@gmail.com> <20181015022518.GV1044@FreeBSD.org> <1B58488D-8615-40E8-9115-E26496A6DBCE@gmail.com> <BA546783-C2DA-4ED9-8391-8408A8B9145B@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] > On Oct 14, 2018, at 10:12 PM, Enji Cooper (yaneurabeya) <yaneurabeya@gmail.com> wrote: > >> On Oct 14, 2018, at 9:45 PM, Enji Cooper (yaneurabeya) <yaneurabeya@gmail.com <mailto:yaneurabeya@gmail.com>> wrote: >> >> >> >>> On Oct 14, 2018, at 7:25 PM, Gleb Smirnoff <glebius@freebsd.org <mailto:glebius@freebsd.org>> wrote: >>> >>> Hi Enji, >>> >>> On Sun, Oct 14, 2018 at 06:51:42PM -0700, Enji Cooper (yaneurabeya) wrote: >>> E> Hi, >>> E> I’m seeing a semi-deterministic panic on 12.0-ALPHA9 related to sendfile(2) when running sendfile_test on the host: https://pastebin.com/raw/6Y7xg0ki <https://pastebin.com/raw/6Y7xg0ki>; it looks like it’s crashing in the sxlock code when calling sblock on a sockbuf. Are there any commands in gdb you would like me to run to display lock state? >>> E> Repro: >>> E> >>> E> mkdir /path/to/git/checkout >>> E> cd /path/to/git/checkout >>> E> git clone https://github.com/ngie-eign/freebsd/tree/sendfile_tests <https://github.com/ngie-eign/freebsd/tree/sendfile_tests> . >>> E> git checkout sendfile_tests >>> E> (cd lib/libc/tests/sys/; make obj; make; sudo make install) >>> E> kyua test -k /usr/tests/lib/libc/sys/Kyuafile sendfile_test >>> >>> I'd like to reproduce it myself, but looks like URL is >>> wrong: >>> >>> glebius@erla:/usr/src:|>git clone https://github.com/ngie-eign/freebsd/tree/sendfile_tests <https://github.com/ngie-eign/freebsd/tree/sendfile_tests> >>> Клонирование в «sendfile_tests»… >>> fatal: repository 'https://github.com/ngie-eign/freebsd/tree/sendfile_tests/ <https://github.com/ngie-eign/freebsd/tree/sendfile_tests/>' not found >> >> Mea culpa. It should be: >> >> $ git clone https://github.com/ngie-eign/freebsd.git <https://github.com/ngie-eign/freebsd.git> . >> >> Another note is that I’m running GENERIC-NODEBUG, not GENERIC-DEBUG. >> >> I suspect that it’s crashing on :hdtr_negative_bad_pointers or : s_negative_not_descriptor, because the other items don’t seem terribly plausible. >> >> The test case (source) can be found here: https://github.com/ngie-eign/freebsd/blob/95b96470a3a0270c36c4e7fb5eedc150fe124fac/lib/libc/tests/sys/sendfile_test.c <https://github.com/ngie-eign/freebsd/blob/95b96470a3a0270c36c4e7fb5eedc150fe124fac/lib/libc/tests/sys/sendfile_test.c> > Aha! It was actually :s_negative_not_connected_socket. > > Updated repro: use `kyua test -k /usr/tests/lib/libc/sys/Kyuafile sendfile_test:s_negative_not_connected_socket` instead of the other kyua call I provided. Oh yipes. I guess passing in a server socket (a bound and listening socket) instead of a client socket (connect’ed to a server socket) for `s` will result in a crash? From https://github.com/ngie-eign/freebsd/blob/95b96470a3a0270c36c4e7fb5eedc150fe124fac/lib/libc/tests/sys/sendfile_test.c#L479 <https://github.com/ngie-eign/freebsd/blob/95b96470a3a0270c36c4e7fb5eedc150fe124fac/lib/libc/tests/sys/sendfile_test.c#L479>: ATF_TC_BODY(s_negative_not_connected_socket, tc) { int client_sock, error, fd, port; port = XXX_TEST_PORT_BASE + __LINE__; client_sock = setup_tcp_server(XXX_TEST_DOMAIN, port); fd = open(SOURCE_FILE, O_CREAT|O_RDWR); ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno)); error = sendfile(fd, client_sock, 0, 0, NULL, NULL, SF_FLAGS(0, 0)); ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); (void)close(fd); (void)close(client_sock); } Let me see if I can track this down.. Thanks! -Enji [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE5bk3FaGcY5rvqmb79YOpJmkwhhUFAlvEIugACgkQ9YOpJmkw hhUYFRAAlRnEdZpDGsLstcFZokAM3J4Q9DG9mgz5/bgpo4knQe0VXBm2F43WQVsk YdvrgR7ynX3rWBcMTQayJ2WpVt+mhhLrjOBClvqC4J6IbjHCiCpTgnUqkDQ0PQDx qIngELPRP1y36dU/MQkOl9Pu6dhDZ4l7guqiVOelVeoO2HPGQlUziF+xayihLThc +ZQ4GvV8GzYDuIx7Kvllktfpm07HMh+kbMJw0rIF/bUIo8C8gYVFUFSRnLvx0HsH 9H90cRTP/ZvgCKqiydRcsxwzUA77K+oqCsqIbYVzIlqwcxQp6w9tRbKhdhLbgiEX z8k+EQhXd/TXvKxNlZ0Yf4SwM1vPaCOeExPVYVb9c+KqkZ78GnVPZSoaQr31Tvrr 1JzeIQo7WAglO4+WlQGcy82t1GXXOHUaNNLvtCwFwZ33Vi0oOMpsJxPEXY4Rs5eA 6gmmKy/KjLnKQjHDHCOusRz0hXD0n44tQLDh3N9uk8+DGAm1y0APAkmcmn8fhF/y OzpdRyKFLmqonWR7Jj4pCY/c+anAvLzTovgvjqL33cWd3klMj8JoqpFtWs782L+6 oLTfkGDA1+rYKblYHhiizwDPcnRst6dmtRIzXhhFT8QSqOOSvWOCGccpw1pUjd0W lCVKJimpzqt5PzoTBT3uiRNiS5wtwdI7dWEF2Nh59iMtKWBrY5k= =1+Em -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D5F7ABC3-89F1-48B9-94B0-067E3DE3F5B2>
