| Summary: | не пингуется mDNS хост | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Anton Farygin <rider> |
| Component: | libnss-myhostname | Assignee: | Alexey Shabalin <shaba> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | arseny, ender, ldv, rider, sem, shaba |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
|
Description
Anton Farygin
2020-11-16 23:27:40 MSK
Похоже, что getaddrinfo() возвращает EAI_SYSTEM по каким-то причинам. Т.е. проблема не в ping, а в резолвинге. Предлагаю под strace запустить, там и errno будет видно. # resolve BRWE89EB445B7E5.local IP address of BRWE89EB445B7E5.local: xx.xx.xx.xx # ping BRWE89EB445B7E5.local ping: BRWE89EB445B7E5.local: System error (Ответ для Mikhail Efremov на комментарий #2) > Предлагаю под strace запустить, там и errno будет видно. в strace чистенько. там после попытки срезловить его на местном DNS вот такое в конце: 737976 openat(AT_FDCWD, "/lib64/libnss_myhostname.so.2", O_RDONLY|O_CLOEXEC) = 5 737976 read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2404\0\0\0\0\0\0"..., 832) = 832 737976 fstat(5, {st_mode=S_IFREG|0644, st_size=104688, ...}) = 0 737976 mmap(NULL, 108808, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x7f2511a33000 737976 mmap(0x7f2511a36000, 45056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x3000) = 0x7f2511a36000 737976 mmap(0x7f2511a41000, 32768, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0xe000) = 0x7f2511a41000 737976 mmap(0x7f2511a49000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x15000) = 0x7f2511a49000 737976 close(5) = 0 737976 openat(AT_FDCWD, "/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/tls/haswell/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64/tls/haswell/x86_64", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/tls/haswell/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64/tls/haswell", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64/tls/x86_64", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64/tls", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/haswell/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64/haswell/x86_64", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/haswell/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64/haswell", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64/x86_64", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 openat(AT_FDCWD, "/usr/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) 737976 stat("/usr/lib64", 0x7ffd5e3febf0) = -1 ENOENT (Нет такого файла или каталога) 737976 munmap(0x7f2511a33000, 108808) = 0 737976 write(2, "ping: ", 6) = 6 737976 write(2, "BRWE89EB445B7E5.local: System er"..., 35) = 35 737976 write(2, "\n", 1) = 1 737976 close(1) = 0 737976 close(2) = 0 737976 exit_group(2) = ? можешь у себя попробовать - иметь этот .local хост в сети не обязательно. может быть ему /lib64/libpthread.so.0 в чруте не хватило ? А если выполнить update_chrooted all? # update_chrooted all # ping rider.local ping: rider.local: System error Миша, у тебя же это прекрасно воспроизводится. Или нет ? (Ответ для Anton Farygin на комментарий #7) > # update_chrooted all > # ping rider.local > ping: rider.local: System error > > Миша, у тебя же это прекрасно воспроизводится. Или нет ? Нет, не воспроизводится. Впрочем, я проверял на p9. В Сизифе же libnss_myhostname.so.2 действительно слинкован с libpthread.so.0. Значит в этом случае libpthread надо добавлять в чрут, видимо. (In reply to Mikhail Efremov from comment #8) > Сизифе же > libnss_myhostname.so.2 действительно слинкован с libpthread.so.0. Ой. Вы же понимаете, что это значит? Во время работы обычная ничего не подозревающая программа вызывает getaddrinfo, в результате которого вдруг начинает быть слинкованной с -lpthread. Это потенциально очень проблематично. Не надо так делать. Это надо перевесить на мантейнера libnss_myhostname.so.2. Не все программы слинкованы с -lpthread, и не надо их к этому принуждать. перевешиваю на libnss-myhostname а тогда, видимо, и это можно считать за ошибку ? :
/lib64/libnss_wins.so.2
linux-vdso.so.1 (0x00007ffefb73f000)
libwbclient.so.0 => /usr/lib64/libwbclient.so.0 (0x00007f4779af3000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4779ad2000)
libc.so.6 => /lib64/libc.so.6 (0x00007f477990e000)
libsamba-util.so.0 => /usr/lib64/libsamba-util.so.0 (0x00007f477989a000)
libwinbind-client-samba4.so => /usr/lib64/samba/libwinbind-client-samba4.so (0x00007f4779894000)
libreplace-samba4.so => /usr/lib64/samba/libreplace-samba4.so (0x00007f477988f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4779b30000)
libgenrand-samba4.so => /usr/lib64/samba/libgenrand-samba4.so (0x00007f4779888000)
libsocket-blocking-samba4.so => /usr/lib64/samba/libsocket-blocking-samba4.so (0x00007f4779883000)
libsamba-debug-samba4.so => /usr/lib64/samba/libsamba-debug-samba4.so (0x00007f4779878000)
libtime-basic-samba4.so => /usr/lib64/samba/libtime-basic-samba4.so (0x00007f4779873000)
libsys-rw-samba4.so => /usr/lib64/samba/libsys-rw-samba4.so (0x00007f477986e000)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f47797b6000)
libtevent.so.0 => /usr/lib64/libtevent.so.0 (0x00007f477979f000)
libtalloc.so.2 => /usr/lib64/libtalloc.so.2 (0x00007f477978d000)
libicui18n.so.67 => /usr/lib64/libicui18n.so.67 (0x00007f4779493000)
libicuuc.so.67 => /usr/lib64/libicuuc.so.67 (0x00007f47792af000)
libgnutls.so.30 => /usr/lib64/libgnutls.so.30 (0x00007f47790e6000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f47790e1000)
libiov-buf-samba4.so => /usr/lib64/samba/libiov-buf-samba4.so (0x00007f47790da000)
librt.so.1 => /lib64/librt.so.1 (0x00007f47790cf000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f47790a2000)
libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f4778fec000)
liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f4778fca000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007f4778eab000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4778c33000)
libm.so.6 => /lib64/libm.so.6 (0x00007f4778aee000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f4778ad4000)
libicudata.so.67 => /usr/lib64/libicudata.so.67 (0x00007f4776fbb000)
libp11-kit.so.0 => /usr/lib64/libp11-kit.so.0 (0x00007f4776e9b000)
libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f4776e7a000)
libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f4776cf6000)
libtasn1.so.6 => /usr/lib64/libtasn1.so.6 (0x00007f4776ce0000)
libnettle.so.8 => /usr/lib64/libnettle.so.8 (0x00007f4776ca2000)
libhogweed.so.6 => /usr/lib64/libhogweed.so.6 (0x00007f4776c59000)
libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007f4776be3000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f4776bc1000)
libffi.so.7 => /usr/lib64/libffi.so.7 (0x00007f4776bb3000)
(In reply to Anton Farygin from comment #12) > а тогда, видимо, и это можно считать за ошибку ? : > /lib64/libnss_wins.so.2 > linux-vdso.so.1 (0x00007ffefb73f000) > libwbclient.so.0 => /usr/lib64/libwbclient.so.0 (0x00007f4779af3000) > libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4779ad2000) > libc.so.6 => /lib64/libc.so.6 (0x00007f477990e000) > libsamba-util.so.0 => /usr/lib64/libsamba-util.so.0 > (0x00007f477989a000) > libwinbind-client-samba4.so => > /usr/lib64/samba/libwinbind-client-samba4.so (0x00007f4779894000) > libreplace-samba4.so => /usr/lib64/samba/libreplace-samba4.so > (0x00007f477988f000) > /lib64/ld-linux-x86-64.so.2 (0x00007f4779b30000) > libgenrand-samba4.so => /usr/lib64/samba/libgenrand-samba4.so > (0x00007f4779888000) > libsocket-blocking-samba4.so => > /usr/lib64/samba/libsocket-blocking-samba4.so (0x00007f4779883000) > libsamba-debug-samba4.so => > /usr/lib64/samba/libsamba-debug-samba4.so (0x00007f4779878000) > libtime-basic-samba4.so => /usr/lib64/samba/libtime-basic-samba4.so > (0x00007f4779873000) > libsys-rw-samba4.so => /usr/lib64/samba/libsys-rw-samba4.so > (0x00007f477986e000) > libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f47797b6000) > libtevent.so.0 => /usr/lib64/libtevent.so.0 (0x00007f477979f000) > libtalloc.so.2 => /usr/lib64/libtalloc.so.2 (0x00007f477978d000) > libicui18n.so.67 => /usr/lib64/libicui18n.so.67 (0x00007f4779493000) > libicuuc.so.67 => /usr/lib64/libicuuc.so.67 (0x00007f47792af000) > libgnutls.so.30 => /usr/lib64/libgnutls.so.30 (0x00007f47790e6000) > libdl.so.2 => /lib64/libdl.so.2 (0x00007f47790e1000) > libiov-buf-samba4.so => /usr/lib64/samba/libiov-buf-samba4.so > (0x00007f47790da000) > librt.so.1 => /lib64/librt.so.1 (0x00007f47790cf000) > liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f47790a2000) > libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f4778fec000) > liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f4778fca000) > libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007f4778eab000) > libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4778c33000) > libm.so.6 => /lib64/libm.so.6 (0x00007f4778aee000) > libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f4778ad4000) > libicudata.so.67 => /usr/lib64/libicudata.so.67 (0x00007f4776fbb000) > libp11-kit.so.0 => /usr/lib64/libp11-kit.so.0 (0x00007f4776e9b000) > libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f4776e7a000) > libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f4776cf6000) > libtasn1.so.6 => /usr/lib64/libtasn1.so.6 (0x00007f4776ce0000) > libnettle.so.8 => /usr/lib64/libnettle.so.8 (0x00007f4776ca2000) > libhogweed.so.6 => /usr/lib64/libhogweed.so.6 (0x00007f4776c59000) > libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007f4776be3000) > libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f4776bc1000) > libffi.so.7 => /usr/lib64/libffi.so.7 (0x00007f4776bb3000) Это вообще финиш. (Ответ для Mikhail Efremov на комментарий #8) > (Ответ для Anton Farygin на комментарий #7) > > # update_chrooted all > > # ping rider.local > > ping: rider.local: System error > > > > Миша, у тебя же это прекрасно воспроизводится. Или нет ? > > Нет, не воспроизводится. Впрочем, я проверял на p9. В Сизифе же > libnss_myhostname.so.2 действительно слинкован с libpthread.so.0. > Значит в этом случае libpthread надо добавлять в чрут, видимо. В p9 не воспроизводится, но все же там тоже слинковано с libpthread. Т.е. в этом месте я не вижу разницы в libnss_myhostname. Разница скорее в iputils. Я не утверждаю, что libnss_myhostname правильно слинкован с libpthread, но оторвать по-быстрому у меня не получилось. (Ответ для Alexey Shabalin на комментарий #14) > (Ответ для Mikhail Efremov на комментарий #8) > > (Ответ для Anton Farygin на комментарий #7) > > > # update_chrooted all > > > # ping rider.local > > > ping: rider.local: System error > > > > > > Миша, у тебя же это прекрасно воспроизводится. Или нет ? > > > > Нет, не воспроизводится. Впрочем, я проверял на p9. В Сизифе же > > libnss_myhostname.so.2 действительно слинкован с libpthread.so.0. > > Значит в этом случае libpthread надо добавлять в чрут, видимо. > > В p9 не воспроизводится, но все же там тоже слинковано с libpthread. А, значит туда тоже уже просочилось. У меня был p9 не обновленный до текущего, в libnss-myhostname-243.8-alt2 еще не слинкован. |