Re: iSCSI session logout regression after fbce4d97fd ("scsi: fixup kernel warning during rmmod()")
From: Max Ivanov
Date: Mon Feb 19 2018 - 03:09:21 EST
It seems that commit 81b6c9998979 ('scsi: core: check for device state
in __scsi_remove_target()') didn't make it to 4.14 branch
$ git tag --contains 81b6c9998979
v4.15
v4.15-rc6
v4.15-rc7
v4.15-rc8
v4.15-rc9
v4.15.1
v4.15.2
v4.15.3
v4.15.4
v4.16-rc1
v4.16-rc2
On 19 February 2018 at 06:56, Hannes Reinecke <hare@xxxxxxx> wrote:
> On 02/18/2018 07:33 PM, Max Ivanov wrote:
>> Hi,
>>
>> on my system I can't logout from iSCSI session when on 4.4.18, but
>> 4.3.19 works just fine. git bisect points to fbce4d97fd ("scsi: fixup
>> kernel warning during rmmod()")
>>
>> Bug manifests itself like following:
>> - iSCSI session logout hangs and never completes
>> - 1 kworker per iSCSI session start consuming 100% CPU
>> - very shortly one of 2 errors show up in dmesg (full listings are below):
>> * kernel: list_del corruption, ffff88c1cd6bb810->next is LIST_POISON1
>> * kernel BUG at mm/slub.c:295!
>>
>> Ways to trigger bug:
>> 1. initiate iSCSI sessions to multiple portals
>> 2. let multipathd to create multipath devices
>> 3. run 'iscsiadm -m node --logoutall=all'
>>
>> Bugs is NOT triggered and iSCSI logout succeeds when either:
>> - multipathd is masked and never started
>> - I manually delete all scsi devices via /sys/block/$d/device/delete
>> before attempting
>> to do iSCSI logout
>>
>> list_del_corrpution:
>>
>> Feb 16 10:37:11 localhost.localdomain kernel: alua: device handler registered
>> Feb 16 10:37:11 localhost.localdomain kernel: emc: device handler registered
>> Feb 16 10:37:11 localhost.localdomain kernel: rdac: device handler registered
>> Feb 16 10:37:11 localhost.localdomain kernel: device-mapper: multipath
>> service-time: version 0.3.0 loaded
>> Feb 16 10:38:38 localhost.localdomain kernel: list_del corruption,
>> ffff88c1cd6bb810->next is LIST_POISON1 (dead000000000100)
>> Feb 16 10:38:38 localhost.localdomain kernel: ------------[ cut here
>> ]------------
>> Feb 16 10:38:38 localhost.localdomain kernel: kernel BUG at lib/list_debug.c:47!
>> Feb 16 10:38:38 localhost.localdomain kernel: invalid opcode: 0000 [#1] SMP PTI
>> Feb 16 10:38:38 localhost.localdomain kernel: Modules linked in:
>> dm_service_time dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua
>> binfmt_misc iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi
>> ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ip_set nfnetlink
>> ebtable_nat ebtable_broute bridge stp llc ip6tabl
>> Feb 16 10:38:38 localhost.localdomain kernel: pata_acpi
>> Feb 16 10:38:38 localhost.localdomain kernel: CPU: 2 PID: 5 Comm:
>> kworker/u24:0 Not tainted 4.14.18-300.fc27.x86_64 #1
>> Feb 16 10:38:38 localhost.localdomain kernel: Hardware name: VMware,
>> Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS
>> 6.00 09/21/2015
>> Feb 16 10:38:38 localhost.localdomain kernel: Workqueue: scsi_wq_5
>> __iscsi_unbind_session [scsi_transport_iscsi]
>> Feb 16 10:38:38 localhost.localdomain kernel: task: ffff88bdede83e80
>> task.stack: ffffb15043158000
>> Feb 16 10:38:38 localhost.localdomain kernel: RIP:
>> 0010:__list_del_entry_valid+0x4e/0x90
>> Feb 16 10:38:38 localhost.localdomain kernel: RSP:
>> 0018:ffffb1504315bd88 EFLAGS: 00010082
>> Feb 16 10:38:38 localhost.localdomain kernel: RAX: 000000000000004e
>> RBX: ffff88c1cd6bbf38 RCX: 0000000000000000
>> Feb 16 10:38:38 localhost.localdomain kernel: RDX: 0000000000000000
>> RSI: ffff88bdefc96a38 RDI: ffff88bdefc96a38
>> Feb 16 10:38:38 localhost.localdomain kernel: RBP: 0000000000000246
>> R08: 00000000000007be R09: 0000000000aaaaaa
>> Feb 16 10:38:38 localhost.localdomain kernel: R10: ffffb1504315bd58
>> R11: 00000000ffffffff R12: ffff88c1ebb659c0
>> Feb 16 10:38:38 localhost.localdomain kernel: R13: ffff88bdec827010
>> R14: ffff88c1cd6bb800 R15: ffff88c1cd6bb800
>> Feb 16 10:38:38 localhost.localdomain kernel: FS:
>> 0000000000000000(0000) GS:ffff88bdefc80000(0000)
>> knlGS:0000000000000000
>> Feb 16 10:38:38 localhost.localdomain kernel: CS: 0010 DS: 0000 ES:
>> 0000 CR0: 0000000080050033
>> Feb 16 10:38:38 localhost.localdomain kernel: CR2: 0000563d0c1ed280
>> CR3: 000000057120a001 CR4: 00000000001606e0
>> Feb 16 10:38:38 localhost.localdomain kernel: Call Trace:
>> Feb 16 10:38:38 localhost.localdomain kernel:
>> scsi_device_dev_release_usercontext+0x52/0x250
>> Feb 16 10:38:38 localhost.localdomain kernel: ? __schedule+0x10f/0x880
>> Feb 16 10:38:38 localhost.localdomain kernel:
>> execute_in_process_context+0x21/0x60
>> Feb 16 10:38:38 localhost.localdomain kernel: device_release+0x30/0x80
>> Feb 16 10:38:38 localhost.localdomain kernel: kobject_put+0x80/0x1a0
>> Feb 16 10:38:38 localhost.localdomain kernel: scsi_remove_target+0x16d/0x1b0
>> Feb 16 10:38:38 localhost.localdomain kernel:
>> __iscsi_unbind_session+0xad/0x150 [scsi_transport_iscsi]
>> Feb 16 10:38:38 localhost.localdomain kernel: process_one_work+0x184/0x3a0
>> Feb 16 10:38:38 localhost.localdomain kernel: worker_thread+0x2e/0x380
>> Feb 16 10:38:38 localhost.localdomain kernel: ? process_one_work+0x3a0/0x3a0
>> Feb 16 10:38:38 localhost.localdomain kernel: kthread+0x11a/0x130
>> Feb 16 10:38:38 localhost.localdomain kernel: ? kthread_park+0x60/0x60
>> Feb 16 10:38:38 localhost.localdomain kernel: ret_from_fork+0x35/0x40
>> Feb 16 10:38:38 localhost.localdomain kernel: Code: 74 2b 48 8b 32 48
>> 39 fe 75 34 48 8b 50 08 48 39 f2 75 3f b8 01 00 00 00 c3 48 89 fe 48
>> 89 c2 48 c7 c7 90 c6 0c bf e8 0d 94 cc ff <0f> 0b 48 89 fe 48 c7 c7 c8
>> c6 0c bf e8 fc 93 cc ff 0f 0b 48 89
>> Feb 16 10:38:38 localhost.localdomain kernel: RIP:
>> __list_del_entry_valid+0x4e/0x90 RSP: ffffb1504315bd88
>> Feb 16 10:38:38 localhost.localdomain kernel: ---[ end trace
>> 20bb15aa6c0307f2 ]---
>> Feb 16 10:38:38 localhost.localdomain kernel: device-mapper:
>> multipath: Failing path 65:0.
>> Feb 16 10:38:39 localhost.localdomain kernel: print_req_error: I/O
>> error, dev dm-2, sector 2097024
>> Feb 16 10:38:39 localhost.localdomain kernel: print_req_error: I/O
>> error, dev dm-2, sector 2097024
>> Feb 16 10:38:39 localhost.localdomain kernel: Buffer I/O error on dev
>> dm-2, logical block 262128, async page read
>> Feb 16 10:38:39 localhost.localdomain kernel: device-mapper:
>> multipath: Failing path 65:64.
>> Feb 16 10:38:40 localhost.localdomain kernel: device-mapper:
>> multipath: Failing path 65:112.
>> Feb 16 10:38:41 localhost.localdomain kernel: device-mapper:
>> multipath: Failing path 65:208.
>> Feb 16 10:38:42 localhost.localdomain kernel: device-mapper:
>> multipath: Failing path 8:112.
>> Feb 16 10:38:43 localhost.localdomain kernel: device-mapper:
>> multipath: Failing path 8:208.
>> Feb 16 10:38:43 localhost.localdomain kernel: device-mapper:
>> multipath: Failing path 8:208.
>> Feb 16 10:38:43 localhost.localdomain kernel: list_del corruption,
>> ffff88c1ebc26010->next is LIST_POISON1 (dead000000000100)
>>
>>
>> kernel BUG at mm/slub.c:
>>
>> [ 70.433229] scsi 3:0:0:0: alua: Detached
>> [ 70.433233] ------------[ cut here ]------------
>> [ 70.433234] kernel BUG at mm/slub.c:295!
>> [ 70.433253] invalid opcode: 0000 [#1] SMP PTI
>> [ 70.433265] Modules linked in: ip6t_rpfilter ip6t_REJECT
>> nf_reject_ipv6 xt_conntrack ip_set nfnetlink ebtable_nat
>> ebtable_broute bridge stp llc ip6table_nat nf_conntrack_ipv6
>> nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw
>> ip6table_security iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4
>> nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_raw
>> iptable_security dm_service_time ebtable_filter ebtables
>> ip6table_filter ip6_tables vmw_vsock_vmci_transport vsock sunrpc
>> sb_edac crct10dif_pclmul crc32_pclmul vmw_balloon ghash_clmulni_intel
>> intel_rapl_perf joydev i2c_piix4 vmw_vmci shpchp dm_multipath
>> scsi_dh_rdac scsi_dh_emc scsi_dh_alua iscsi_tcp libiscsi_tcp libiscsi
>> scsi_transport_iscsi xfs libcrc32c vmwgfx drm_kms_helper ttm drm
>> crc32c_intel ata_generic serio_raw vmxnet3 vmw_pvscsi pata_acpi
>> [ 70.433441] CPU: 10 PID: 776 Comm: multipathd Not tainted
>> 4.14.18-300.fc27.x86_64 #1
>> [ 70.433458] Hardware name: VMware, Inc. VMware Virtual
>> Platform/440BX Desktop Reference Platform, BIOS 6.00 09/21/2015
>> [ 70.433483] task: ffff99ab2b5ebe80 task.stack: ffffb07f83a64000
>> [ 70.433500] RIP: 0010:__slab_free+0x18b/0x300
>> [ 70.433511] RSP: 0018:ffffb07f83a67cb0 EFLAGS: 00010246
>> [ 70.433525] RAX: ffff99ab2b11ff00 RBX: ffff99ab2b11ff00 RCX: 00000001802a0022
>> [ 70.433542] RDX: ffff99ab2b11ff00 RSI: fffff31490ac47c0 RDI: ffff99ab2f803680
>> [ 70.433558] RBP: ffffb07f83a67d50 R08: 0000000000000001 R09: ffffffff815cccbe
>> [ 70.433574] R10: fffff31490ac47c0 R11: 0000000000000000 R12: ffff99ab2f803680
>> [ 70.433591] R13: fffff31490ac47c0 R14: ffff99ab2b11ff00 R15: ffff99ab2d742fb0
>> [ 70.433607] FS: 00007f6d65a7a700(0000) GS:ffff99af3fd00000(0000)
>> knlGS:0000000000000000
>> [ 70.433626] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> [ 70.433640] CR2: 00007f4a983c67f8 CR3: 000000082a726001 CR4: 00000000001606e0
>> [ 70.433688] Call Trace:
>> [ 70.433701] ? __wake_up_common_lock+0x89/0xc0
>> [ 70.433715] ? __slab_free+0x15b/0x300
>> [ 70.433726] ? scsi_dh_release_device+0x1e/0x60
>> [ 70.433738] scsi_dh_release_device+0x1e/0x60
>> [ 70.433750] scsi_device_dev_release_usercontext+0x2a/0x250
>> [ 70.434206] execute_in_process_context+0x21/0x60
>> [ 70.434643] device_release+0x30/0x80
>> [ 70.435098] kobject_put+0x80/0x1a0
>> [ 70.435525] scsi_disk_put+0x2b/0x40
>> [ 70.435942] __blkdev_put+0x197/0x1f0
>> [ 70.436355] blkdev_close+0x21/0x30
>> [ 70.436756] __fput+0xd0/0x1e0
>> [ 70.437152] task_work_run+0x84/0xa0
>> [ 70.437539] exit_to_usermode_loop+0x9e/0xa0
>> [ 70.437917] do_syscall_64+0x173/0x180
>> [ 70.438133] device-mapper: multipath: Failing path 65:16.
>> [ 70.438140] device-mapper: multipath: Failing path 65:0.
>> [ 70.438985] entry_SYSCALL_64_after_hwframe+0x21/0x86
>> [ 70.439325] RIP: 0033:0x7f6d64a3a70c
>> [ 70.439648] RSP: 002b:00007f6d65a78880 EFLAGS: 00000293 ORIG_RAX:
>> 0000000000000003
>> [ 70.439974] RAX: 0000000000000000 RBX: 00007f6d4c0306f0 RCX: 00007f6d64a3a70c
>> [ 70.440293] RDX: 0000000000000000 RSI: 0000000000000001 RDI: 000000000000000a
>> [ 70.440605] RBP: 00007f6d4c030a68 R08: 0000000000000054 R09: 0000000000000080
>> [ 70.440907] R10: 00000000ffffffdf R11: 0000000000000293 R12: 000055867dd47410
>> [ 70.441199] R13: 0000000000000000 R14: 0000000000000001 R15: 00007f6d4c03be00
>> [ 70.441486] Code: fe ff ff 44 0f b6 bd 7f ff ff ff 80 7d ab 00 79
>> 05 45 84 ff 74 7b 48 83 c4 78 5b 41 5c 41 5d 41 5e 41 5f 5d 49 8d 65
>> f0 41 5d c3 <0f> 0b 4c 89 d0 4c 89 55 88 45 89 fa 48 85 c0 44 0f b6 bd
>> 7f ff
>> [ 70.442406] RIP: __slab_free+0x18b/0x300 RSP: ffffb07f83a67cb0
>> [ 70.442735] ---[ end trace c79c468d1b715f7e ]---
>> [ 70.540044] device-mapper: multipath: Failing path 8:32.
>>
> As already explained in the previous mail, there is a fixup for this in
> commit 81b6c9998979 ('scsi: core: check for device state in
> __scsi_remove_target()').
> Please check if this is applied, too.
>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke Teamlead Storage & Networking
> hare@xxxxxxx +49 911 74053 688
> SUSE LINUX GmbH, Maxfeldstr. 5, 90409 NÃrnberg
> GF: F. ImendÃrffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
> HRB 21284 (AG NÃrnberg)