An infinite loop occurs in flow_cache_lookup() due to the fcp's last hash_table hlist node pointing to the 1st node

Solution Unverified - Updated -

Issue

  • The kernel-rt crashes due to a blocked task
[626981.608136] INFO: task ksoftirqd/32:323 blocked for more than 600 seconds.
[626981.615103] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[626981.623571] ksoftirqd/32    D ffff8e64189657c0     0   323      2 0x00000080
[626981.630745] Call Trace:
[626981.633289]  [<ffffffffa0180320>] schedule+0x30/0x96
[626981.638341]  [<ffffffffa0181075>] rt_spin_lock_slowlock_locked+0xf5/0x2d0
[626981.645215]  [<ffffffffa01812a7>] rt_spin_lock_slowlock+0x57/0x90
[626981.651401]  [<ffffffffa0182cb5>] rt_spin_lock+0x25/0x30
[626981.656803]  [<ffffffff9fa95864>] do_current_softirqs+0x134/0x410
[626981.662980]  [<ffffffff9fa95c00>] run_ksoftirqd+0x30/0x50
[626981.668467]  [<ffffffff9fac297f>] smpboot_thread_fn+0x20f/0x2e0
[626981.674473]  [<ffffffff9fac2770>] ? lg_local_unlock+0x20/0x20
[626981.680305]  [<ffffffff9fab9421>] kthread+0xd1/0xe0
[626981.685270]  [<ffffffff9fab9350>] ? kthread_worker_fn+0x170/0x170
[626981.691450]  [<ffffffffa018d077>] ret_from_fork_nospec_begin+0x21/0x21
[626981.698062]  [<ffffffff9fab9350>] ? kthread_worker_fn+0x170/0x170
        ...
[626981.705552] Kernel panic - not syncing: hung_task: blocked tasks
[626981.705555] CPU: 1 PID: 484 Comm: khungtaskd Kdump: loaded Tainted: G           OE  ------------ T 3.10.0-1160.76.1.rt56.1220.el7.x86_64 #1
        ...
[626981.705557] Call Trace:
[626981.705561]  [<ffffffffa017ab2d>] dump_stack+0x19/0x1b
[626981.705567]  [<ffffffffa0174e13>] panic+0xe8/0x21f
[626981.705571]  [<ffffffff9fb44c60>] watchdog+0x2b0/0x330
[626981.705575]  [<ffffffff9fb449b0>] ? reset_hung_task_detector+0x20/0x20
[626981.705578]  [<ffffffff9fab9421>] kthread+0xd1/0xe0
[626981.705582]  [<ffffffff9fab9350>] ? kthread_worker_fn+0x170/0x170
[626981.705584]  [<ffffffffa018d077>] ret_from_fork_nospec_begin+0x21/0x21
[626981.705587]  [<ffffffff9fab9350>] ? kthread_worker_fn+0x170/0x170
  • The blocked task is in a long-term TASK_UNINTERRUPTIBLE state waiting to acquire local_irq_lock
  • The lock owner is calling flow_cache_lookup() and looping indefinitely.
PID: 254135   TASK: ffff8e640242d6e0  CPU: 32   COMMAND: "task_name"
 #0 [ffff8e721ce09e40] crash_nmi_callback at ffffffff9fa48577
 #1 [ffff8e721ce09e50] nmi_handle at ffffffffa0185904
 #2 [ffff8e721ce09ea8] do_nmi at ffffffffa0185c00
 #3 [ffff8e721ce09ef0] end_repeat_nmi at ffffffffa0184d4c
    [exception RIP: flow_cache_lookup+784]
    RIP: ffffffffa0068900  RSP: ffff8e630f1d7280  RFLAGS: 00000246
    RAX: ffff8e630f1d7418  RBX: ffff8e631e340120  RCX: 00000000000017c0
    RDX: ffff8e631f8fad20  RSI: 0000000000000400  RDI: ffff8e630f1d7470
    RBP: ffff8e630f1d72e0   R8: ffffd7a273a0bd18   R9: 0000000000000001
    R10: 0000000000000068  R11: 0011000000000000  R12: 0000000000000001
    R13: 000000000000000a  R14: 000000000000000a  R15: ffff8e6f8d159740
    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
--- <NMI exception stack> ---
 #4 [ffff8e630f1d7280] flow_cache_lookup at ffffffffa0068900
 #5 [ffff8e630f1d7298] __ip6_dst_alloc at ffffffffa0122901
 #6 [ffff8e630f1d72e8] xfrm_lookup at ffffffffa00fbca7
 #7 [ffff8e630f1d7358] xfrm_lookup_route at ffffffffa00fc1bf
 #8 [ffff8e630f1d7380] ip6_dst_lookup_flow at ffffffffa01127e6
 #9 [ffff8e630f1d73c0] tcp_v6_send_response at ffffffffa0140196
#10 [ffff8e630f1d74a8] tcp_v6_send_reset at ffffffffa0141f35
#11 [ffff8e630f1d7530] tcp_v6_rcv at ffffffffa0143500
#12 [ffff8e630f1d75e0] ip6_input_finish at ffffffffa01166af
#13 [ffff8e630f1d7620] ip6_input at ffffffffa0116fda
#14 [ffff8e630f1d7680] ip6_rcv_finish at ffffffffa01164ae
#15 [ffff8e630f1d7698] ipv6_rcv at ffffffffa0116d8a
#16 [ffff8e630f1d7720] __netif_receive_skb_core at ffffffffa0049549
#17 [ffff8e630f1d7798] __netif_receive_skb at ffffffffa0049868
#18 [ffff8e630f1d77b8] process_backlog at ffffffffa004aab0
#19 [ffff8e630f1d7810] net_rx_action at ffffffffa004a0a3
#20 [ffff8e630f1d78f0] do_current_softirqs at ffffffff9fa95912
#21 [ffff8e630f1d7978] __local_bh_enable at ffffffff9fa95bb4
#22 [ffff8e630f1d7988] ip6_finish_output2 at ffffffffa011359c
#23 [ffff8e630f1d7a20] ip6_finish_output at ffffffffa0115c3c
#24 [ffff8e630f1d7a48] ip6_output at ffffffffa0115cf7
#25 [ffff8e630f1d7ab0] ip6_xmit at ffffffffa0112e46
#26 [ffff8e630f1d7b68] inet6_csk_xmit at ffffffffa01487c5
#27 [ffff8e630f1d7c08] tcp_transmit_skb at ffffffffa00b5574
#28 [ffff8e630f1d7c78] tcp_connect at ffffffffa00b722d
#29 [ffff8e630f1d7d08] tcp_v6_connect at ffffffffa01415ae
#30 [ffff8e630f1d7dd8] __inet_stream_connect at ffffffffa00d4493
#31 [ffff8e630f1d7e50] inet_stream_connect at ffffffffa00d4758
#32 [ffff8e630f1d7e80] SYSC_connect at ffffffffa002898d
#33 [ffff8e630f1d7f40] sys_connect at ffffffffa002a5de
#34 [ffff8e630f1d7f50] tracesys at ffffffffa018d4a8 (via system_call)
    RIP: 00007ffff77c1a3d  RSP: 00007ffffffe9a10  RFLAGS: 00000293
    RAX: ffffffffffffffda  RBX: 0000000000004e20  RCX: ffffffffffffffff
    RDX: 000000000000001c  RSI: 00007ffffffe9bd0  RDI: 0000000000000021
    RBP: 00007ffffffe9b70   R8: 00007ffffffe9bd0   R9: 0000000000004e21
    R10: 00007ffff6415900  R11: 0000000000000293  R12: 00000000006efdfa
    R13: 0000000000000000  R14: 00000000010ff7c0  R15: 00007ffffffec5a0
    ORIG_RAX: 000000000000002a  CS: 0033  SS: 002b

Environment

  • Red Hat Enterprise Linux for Real Time - kernel-rt-3.10.0-1160.76.1.rt56.1220.el7.x86_64

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content