Bug 32776

Summary: С ядром 4.4 сломались счётчики у ipset
Product: Sisyphus Reporter: Sergey Y. Afonin <asy>
Component: kernel-image-std-defAssignee: Vitaly Chikunov <vt>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: evg, kernelbot, lav, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey Y. Afonin 2016-11-21 14:10:48 MSK
Если сделать сет с counters, то счётчики работают странно (проверено с 4.4.32-std-def-alt0.M80P.1):

# ipset -N SET_TEST hash:ip counters
# iptables -I OUTPUT -m set --match-set SET_TEST dst -j RETURN
# ipset -A SET_TEST 10.1.1.1
# ping -c1 10.1.1.1
# ipset -L SET_TEST|grep 10.1.1.1
10.1.1.1 packets 72057594037927936 bytes 6052837899185946624

С 4.1.21-std-def-alt1 работает нормально. 

https://lists.altlinux.org/pipermail/sysadmins/2016-November/037652.html
Comment 1 Sergey Y. Afonin 2016-11-21 17:16:01 MSK
https://bugzilla.kernel.org/show_bug.cgi?id=188261
Comment 2 Anton Farygin 2016-11-21 17:22:28 MSK
ipset-6.30 соберу буквально завтра (может быть сегодня успею). попробуйте на нём.

Кстати, а счётчики плохо работают только с hash:ip ? у меня есть hash:net с conters - считает вроде как нормально.

Какая версия ipset ? rpm -q ipset
Comment 3 Sergey Y. Afonin 2016-11-21 17:42:45 MSK
hash:net пробовал тоже, без разницы. ipset-6.29-alt2.git.caaa86 (из p8).
Comment 4 Anton Farygin 2016-11-21 18:11:07 MSK
А архитектура какая ? i586 или x86_64 ?
Comment 5 Sergey Y. Afonin 2016-11-21 18:33:28 MSK
обе, сейчас на i586 тоже проверил c 4.4.32-std-def-alt0.M80P.1. На x86_64 ещё смотрел с 4.8.8-un-def, то же самое.

Вообще странно, если не воспроизводится.
Comment 6 Anton Farygin 2016-11-21 20:19:13 MSK
там ядро старое.4.4.13-std-def-alt1

[root@salto ~]# ipset -N SET_TEST hash:net counters
[root@salto ~]# iptables -I OUTPUT -m set --match-set SET_TEST dst -j RETURN
[root@salto ~]# ipset -A SET_TEST 10.1.1.1
[root@salto ~]# ping -c1 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
From 10.12.0.2 icmp_seq=1 Destination Host Unreachable

--- 10.1.1.1 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

[root@salto ~]# ipset -L SET_TEST|grep 10.1.1.1
10.1.1.1 packets 1 bytes 84
Comment 7 Sergey Y. Afonin 2016-11-21 22:59:50 MSK
(In reply to comment #6)

> там ядро старое.4.4.13-std-def-alt1

Да. Нашёл, где стоит 4.4.11-std-def-alt0.M80P.1. Тоже работает правильно.
Comment 8 Anton Farygin 2016-11-24 16:21:08 MSK
ipset-6.30 отправил в Sisyphus, но в нём эту проблему не починили.
Comment 9 Anton Farygin 2016-12-12 15:11:29 MSK
апстрим молчит ?
Comment 10 Sergey Y. Afonin 2016-12-13 01:38:21 MSK
(In reply to comment #9)

> апстрим молчит ?

Да, молчит. Кстати, сломалось в 4.4.19-alt0.M80P.1. В 4.4.18 ещё работало. Надо бы в баге на kernel.org дописать...
Comment 11 Anton Farygin 2016-12-13 06:43:01 MSK
Если есть время - попробуйте пообщаться с автором ipset на IRC канале netfilter.
Comment 12 Sergey Y. Afonin 2017-05-29 11:52:15 MSK
> Если есть время - попробуйте пообщаться с автором ipset на IRC канале
> netfilter.

Что-то руки не дошли. Но сейчас попробовал пару 4.9.30-std-def-alt1/ipset-6.32-alt1.S1, счётчики работают нормально. Так что для Сизифа починилось. Вопрос теперь, проблема в ядре была, или в ipset. Наверное, надо ipset в p8 обновить для начала.
Comment 13 Sergey Y. Afonin 2017-05-29 11:57:15 MSK
Кстати, у ядра 4.4.18 модуль ipset был 6.26. Может, проблема с ipset 6.29 возникла, а не с обновлением ядра...
Comment 14 Sergey Y. Afonin 2017-05-30 10:03:08 MSK
(In reply to comment #13)

> Может, проблема с ipset 6.29 возникла, а не с обновлением ядра...

Похоже, так оно и есть. Так что не ядро было виновато:
https://bugzilla.altlinux.org/33510#c1