Bug 40636 - ping gives strange messages, possibly because errors in parsing
Summary: ping gives strange messages, possibly because errors in parsing
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: iputils (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 major
Assignee: Mikhail Efremov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-08-02 19:00 MSK by nbr
Modified: 2021-08-04 08:39 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description nbr 2021-08-02 19:00:23 MSK
Example: (Sisyphus)
ping -W10 www.rbc.ru
ping: option argument contains garbage: 
ping: this will become fatal error in the future
PING www.RBC.RU (185.72.229.3) 56(84) bytes of data.

Which argument contains garbage?
Comment 1 Anton Farygin 2021-08-02 22:57:15 MSK
$ rpm -q iputils
iputils-20210722-alt1.x86_64
$ ping -W10 www.rbc.ru
PING www.rbc.ru (185.72.229.3) 56(84) bytes of data.
64 bytes from www.rbc.ru (185.72.229.3): icmp_seq=1 ttl=57 time=43.1 ms
64 bytes from www.rbc.ru (185.72.229.3): icmp_seq=2 ttl=57 time=54.5 ms
64 bytes from www.rbc.ru (185.72.229.3): icmp_seq=3 ttl=57 time=39.4 ms
Comment 2 Leonid Krivoshein 2021-08-03 01:49:35 MSK
Антон, выше Денис опустил информацию, что этот дефект "плавающий". Чруты не всегда формируются корректно, до них не доезжают локали, из-за чего неверно парсятся аргументы ping. Проблема затрагивает все решения, построенные на p9, и выше.
Comment 3 Anton Farygin 2021-08-03 09:11:51 MSK
Было бы интересно увидеть методику воспроизведения.
Comment 4 nbr 2021-08-03 10:00:20 MSK
наблюдается только от root
# ping -W10 www.rbc.ru
ping: option argument contains garbage: 
ping: this will become fatal error in the future
PING www.RBC.RU (80.68.253.3) 56(84) bytes of data.
64 bytes from www.rbc.ru (80.68.253.3): icmp_seq=1 ttl=46 time=21.8 ms
^C
--- www.RBC.RU ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 21.822/21.822/21.822/0.000 ms

Может быть связано с локалью
LANG=en_US.utf8
iputils-20210722-alt1
но также наблюдалось на
iputils-20210202-alt1
Comment 5 nbr 2021-08-03 10:02:59 MSK
export LANG=C сообщение об ошибке убирает.
Это связано с локалью.
Возможно в chroot нет нужных локалей, что вызывает ошибки при работе ping.
Comment 6 Anton Farygin 2021-08-03 10:57:18 MSK
У меня такой проблемы нет от слова совсем, при этом в чрут точно не попадают локали:
87677 chroot("/var/resolv")             = 0
87677 chdir("/")                        = 0
87677 setregid(468, 468)                = 0
87677 capget({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, NULL) = 0
87677 capget({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=1<<CAP_CHOWN|1<<CAP_DAC_OVERRIDE|1<<CAP_DAC_READ_SEARCH|1<<CAP_FOWNER|1<<CAP_FSETID|1<<
CAP_KILL|1<<CAP_SETGID|1<<CAP_SETUID|1<<CAP_SETPCAP|1<<CAP_LINUX_IMMUTABLE|1<<CAP_NET_BIND_SERVICE|1<<CAP_NET_BROADCAST|1<<CAP_NET_ADMIN|1<<CAP_NET_RAW|1<<CA
P_IPC_LOCK|1<<CAP_IPC_OWNER|1<<CAP_SYS_MODULE|1<<CAP_SYS_RAWIO|1<<CAP_SYS_CHROOT|1<<CAP_SYS_PTRACE|1<<CAP_SYS_PACCT|1<<CAP_SYS_ADMIN|1<<CAP_SYS_BOOT|1<<CAP_S
YS_NICE|1<<CAP_SYS_RESOURCE|1<<CAP_SYS_TIME|1<<CAP_SYS_TTY_CONFIG|1<<CAP_MKNOD|1<<CAP_LEASE|1<<CAP_AUDIT_WRITE|1<<CAP_AUDIT_CONTROL|1<<CAP_SETFCAP|1<<CAP_MAC
_OVERRIDE|1<<CAP_MAC_ADMIN|1<<CAP_SYSLOG|1<<CAP_WAKE_ALARM|1<<CAP_BLOCK_SUSPEND|1<<CAP_AUDIT_READ|1<<CAP_PERFMON|1<<CAP_BPF|1<<CAP_CHECKPOINT_RESTORE, permit
ted=1<<CAP_CHOWN|1<<CAP_DAC_OVERRIDE|1<<CAP_DAC_READ_SEARCH|1<<CAP_FOWNER|1<<CAP_FSETID|1<<CAP_KILL|1<<CAP_SETGID|1<<CAP_SETUID|1<<CAP_SETPCAP|1<<CAP_LINUX_I
MMUTABLE|1<<CAP_NET_BIND_SERVICE|1<<CAP_NET_BROADCAST|1<<CAP_NET_ADMIN|1<<CAP_NET_RAW|1<<CAP_IPC_LOCK|1<<CAP_IPC_OWNER|1<<CAP_SYS_MODULE|1<<CAP_SYS_RAWIO|1<<
CAP_SYS_CHROOT|1<<CAP_SYS_PTRACE|1<<CAP_SYS_PACCT|1<<CAP_SYS_ADMIN|1<<CAP_SYS_BOOT|1<<CAP_SYS_NICE|1<<CAP_SYS_RESOURCE|1<<CAP_SYS_TIME|1<<CAP_SYS_TTY_CONFIG|
1<<CAP_MKNOD|1<<CAP_LEASE|1<<CAP_AUDIT_WRITE|1<<CAP_AUDIT_CONTROL|1<<CAP_SETFCAP|1<<CAP_MAC_OVERRIDE|1<<CAP_MAC_ADMIN|1<<CAP_SYSLOG|1<<CAP_WAKE_ALARM|1<<CAP_
BLOCK_SUSPEND|1<<CAP_AUDIT_READ|1<<CAP_PERFMON|1<<CAP_BPF|1<<CAP_CHECKPOINT_RESTORE, inheritable=0}) = 0
87677 capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=1<<CAP_SETGID|1<<CAP_SETUID, permitted=1<<CAP_SETGID|1<<CAP_SETUID|1<<CAP_NET_ADMIN|1<<
CAP_NET_RAW, inheritable=0}) = 0
87677 prctl(PR_SET_KEEPCAPS, 1)         = 0
87677 setreuid(490, 490)                = 0
87677 prctl(PR_SET_KEEPCAPS, 0)         = 0
87677 capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=0, permitted=1<<CAP_NET_ADMIN|1<<CAP_NET_RAW, inheritable=0}) = 0
87677 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 openat(AT_FDCWD, "/usr/lib/locale/ru_RU.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 openat(AT_FDCWD, "/usr/lib/locale/ru_RU.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 openat(AT_FDCWD, "/usr/lib/locale/ru_RU/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 openat(AT_FDCWD, "/usr/lib/locale/ru.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 openat(AT_FDCWD, "/usr/lib/locale/ru.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 openat(AT_FDCWD, "/usr/lib/locale/ru/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
87677 getrandom("\xe1\x44\xdd\xf1", 4, GRND_NONBLOCK) = 4
Comment 7 Anton Farygin 2021-08-03 10:58:45 MSK
Собственно вот весь чрут:
# find /var/resolv/
/var/resolv/
/var/resolv/etc
/var/resolv/etc/nsswitch.conf
/var/resolv/etc/resolv.conf
/var/resolv/etc/services
/var/resolv/etc/localtime
/var/resolv/etc/host.conf
/var/resolv/etc/hosts
/var/resolv/lib64
/var/resolv/lib64/libnss_myhostname.so.2
/var/resolv/lib64/libnss_mdns4_minimal.so.2
/var/resolv/lib64/libnss_role.so.2
/var/resolv/lib64/libnss_files.so.2
/var/resolv/lib64/libnss_dns.so.2
/var/resolv/lib64/libresolv.so.2
/var/resolv/var
/var/resolv/var/avahi
/var/resolv/var/avahi/socket
/var/resolv/var/nis
/var/resolv/var/yp
/var/resolv/var/yp/binding
Comment 8 Mikhail Efremov 2021-08-03 11:21:56 MSK
setlocale() если не удалось установить локаль в каких-то случаях выставляет errno, а в каких-то нет, от чего зависит я не понял.
У меня воспроизводится так:
LC_ALL=ru_RU.utf8 ping -W10 www.rbc.ru
В любом случае в ping надо игнорировать неуспешный setlocale().
Впрочем, в Сизифе это не слишком большая проблема: это просто warning, на работу не влияет.
А вот в некоторых более ранних версиях iputils это проблема, т.к. ошибка была фатальной.
Для них должен работать workaround
LC_ALL=C ping -W10 www.rbc.ru
Comment 9 Anton Farygin 2021-08-03 11:52:47 MSK
да, воспроизвелось.
Comment 10 Repository Robot 2021-08-03 18:50:13 MSK
iputils-20210722-alt2 -> sisyphus:

 Tue Aug 03 2021 Mikhail Efremov <sem@altlinux> 20210722-alt2
 - ping: Fixed -W/-i options in case of setlocale() error
    (closes: #40636).
Comment 11 AEN 2021-08-03 18:53:00 MSK
Спасибо. 
Если не трудно, поправьте в p10 и p9.