Hello,
On Mon, 23 Apr 2018, Net Filter wrote:
> I was requested by Pablo Neira Ayuso to report the netfilter bugzilla
> ticket https://bugzilla.netfilter.org/show_bug.cgi?id=1247 here.
>
> The ticket is replicated below for your convenience.
>
> Start of ticket content:
>
> The configuration I use is a NixOS keepalived setup on AWS (which uses
> Xen) configured with per packet round robin routing in a direct
> routing setup, which in turn uses ipvs.
>
> Symptoms are ksoftirqd using 100% of the CPU resulting in what looks
> like a DoS attack on the machine.
>
> The module repeatedly crashes when in this mode with a message similar
> to the one below.
>
> [root@keepalive:~]# uname -a
> Linux keepalive 4.15.17 #1-NixOS SMP Thu Apr 12 10:31:21 UTC 2018
> x86_64 GNU/Linux
>
> It is the same problem as described on
> https://github.com/NixOS/nixpkgs/issues/39078.
>
> [ 782.525457] ------------[ cut here ]------------
> [ 782.525467] refcount_t hit zero at ip_vs_conn_put+0x31/0x40 [ip_vs]
Looks like the One-packet scheduling mode (-o, --ops)
runs with refcnt=0 which upsets the refcount_dec() checks.
The solution would be to replace the __ip_vs_conn_put() call
in __ip_vs_conn_put_notimer() with refcount_dec_if_one() in
ip_vs_conn_unlink(). This will make the refcount subsystem
happy. Will test a patch in the following days...
> in sh[15519], uid/euid: 497/497
> [ 782.525477] WARNING: CPU: 0 PID: 15519 at ../kernel/panic.c:657
> refcount_error_report+0x94/0x9e
> [ 782.525477] Modules linked in: ip_vs_rr cirrus ttm sb_edac
> edac_core drm_kms_helper crct10dif_pclmul crc32_pclmul
> ghash_clmulni_intel pcbc mousedev drm aesni_intel aes_x86_64
> crypto_simd glue_helper cryptd psmouse evdev input_leds led_class
> intel_agp fb_sys_fops syscopyarea sysfillrect intel_rapl_perf mac_hid
> intel_gtt serio_raw sysimgblt agpgart i2c_piix4 i2c_core ata_generic
> pata_acpi floppy cfg80211 rfkill button loop macvlan ip_vs
> nf_conntrack libcrc32c crc32c_generic ip_tables x_tables ipv6
> crc_ccitt autofs4 ext4 crc16 mbcache jbd2 fscrypto ata_piix libata
> atkbd libps2 scsi_mod crc32c_intel i8042 rtc_cmos serio af_packet
> dm_mod dax fuse xen_netfront xen_blkfront
> [ 782.525532] CPU: 0 PID: 15519 Comm: sh Tainted: G W
> 4.15.17 #1-NixOS
> [ 782.525533] Hardware name: Xen HVM domU, BIOS 4.2.amazon 08/24/2006
> [ 782.525535] RIP: 0010:refcount_error_report+0x94/0x9e
> [ 782.525536] RSP: 0000:ffffa344dde039c8 EFLAGS: 00010296
> [ 782.525537] RAX: 0000000000000057 RBX: ffffffff92f20e06 RCX:
> 0000000000000006
> [ 782.525541] RDX: 0000000000000007 RSI: 0000000000000086 RDI:
> ffffa344dde165c0
> [ 782.525541] RBP: ffffa344dde03b08 R08: 0000000000000218 R09:
> 0000000000000004
> [ 782.525542] R10: ffffffff93006a80 R11: 0000000000000001 R12:
> ffffa344d68cd100
> [ 782.525543] R13: 00000000000001f1 R14: ffffffff92f12fb0 R15:
> 0000000000000004
> [ 782.525544] FS: 00007fc9d2040fc0(0000) GS:ffffa344dde00000(0000)
> knlGS:0000000000000000
> [ 782.525545] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 782.525546] CR2: 000000000262a000 CR3: 0000000016a0c004 CR4:
> 00000000001606f0
> [ 782.525548] Call Trace:
> [ 782.525551] <IRQ>
> [ 782.525557] ex_handler_refcount+0x4e/0x80
> [ 782.525558] fixup_exception+0x33/0x40
> [ 782.525563] do_trap+0x83/0x140
> [ 782.525565] do_error_trap+0x83/0xf0
> [ 782.525568] ? ip_vs_conn_drop_conntrack+0x120/0x1a5 [ip_vs]
> [ 782.525574] ? ip_finish_output2+0x29c/0x390
> [ 782.525575] ? ip_finish_output2+0x1a2/0x390
> [ 782.525580] invalid_op+0x1b/0x40
> [ 782.525582] RIP: 0010:ip_vs_conn_put+0x31/0x40 [ip_vs]
> [ 782.525583] RSP: 0000:ffffa344dde03bb8 EFLAGS: 00010246
> [ 782.525584] RAX: 0000000000000001 RBX: ffffa344df31cf00 RCX:
> ffffa344d7450198
> [ 782.525585] RDX: 0000000000000003 RSI: 00000000fffffe01 RDI:
> ffffa344d7450140
> [ 782.525586] RBP: 0000000000000002 R08: 0000000000000476 R09:
> 0000000000000000
> [ 782.525587] R10: ffffa344dde03b28 R11: ffffa344df200000 R12:
> ffffa344d7d09000
> [ 782.525587] R13: ffffa344def3a980 R14: ffffffffc04f6e20 R15:
> 0000000000000008
> [ 782.525591] ip_vs_in.part.29.constprop.36+0x34f/0x640 [ip_vs]
> [ 782.525593] ? ip_vs_conn_out_get+0xe0/0xe0 [ip_vs]
> [ 782.525596] ip_vs_remote_request4+0x47/0xa0 [ip_vs]
> [ 782.525598] ? ip_vs_in.part.29.constprop.36+0x640/0x640 [ip_vs]
> [ 782.525600] nf_hook_slow+0x43/0xc0
> [ 782.525602] ip_local_deliver+0xac/0xc0
> [ 782.525604] ? ip_rcv_finish+0x400/0x400
> [ 782.525606] ip_rcv+0x26c/0x380
> [ 782.525610] __netif_receive_skb_core+0x3a0/0xb10
> [ 782.525629] ? inet_gro_receive+0x23c/0x2b0
> [ 782.525631] ? netif_receive_skb_internal+0x24/0xb0
> [ 782.525633] netif_receive_skb_internal+0x24/0xb0
> [ 782.525635] napi_gro_receive+0xb8/0xe0
> [ 782.525638] xennet_poll+0x676/0xb40 [xen_netfront]
> [ 782.525641] net_rx_action+0x139/0x3a0
> [ 782.525644] __do_softirq+0xde/0x2b4
> [ 782.525646] irq_exit+0xae/0xb0
> [ 782.525651] xen_evtchn_do_upcall+0x2c/0x40
> [ 782.525653] xen_hvm_callback_vector+0x7d/0x90
> [ 782.525654] </IRQ>
> [ 782.525656] RIP: 0033:0x7fc9d11c91f9
> [ 782.525656] RSP: 002b:00007ffebe8a2ea0 EFLAGS: 00000202 ORIG_RAX:
> ffffffffffffff0c
> [ 782.525658] RAX: 00000000ffffffff RBX: 0000000002609808 RCX:
> 0000000000000054
> [ 782.525658] RDX: 0000000000000001 RSI: 0000000002605440 RDI:
> 00000000025f940e
> [ 782.525659] RBP: 00000000025f940e R08: 000000000260213d R09:
> 1999999999999999
> [ 782.525660] R10: 000000000262a808 R11: 00000000025f942d R12:
> 00000000025f940e
> [ 782.525661] R13: 00007fc9d1301e20 R14: 00000000025f9408 R15:
> 00007fc9d1302720
> [ 782.525662] Code: 48 8b 95 80 00 00 00 41 55 49 8d 8c 24 e0 05 00
> 00 45 8b 84 24 38 04 00 00 41 89 c1 48 89 de 48 c7 c7 a8 2f f2 92 e8
> 7c fa ff ff <0f> 0b 58 5b 5d 41 5c 41 5d c3 0f 1f 44 00 00 55 48 89 e5
> 41 56
> [ 782.525684] ---[ end trace 429a7a27ee858cfb ]---
> --
Regards
--
Julian Anastasov <ja@xxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|