panic: rcv_start < rcv_end

Slava Shwartsman slava.shwartsman at gmail.com
Sun Sep 8 07:21:06 UTC 2019


+1



On 05-Sep-19 22:40, Piotr Kubaj via freebsd-net wrote:
> Hello,
>
> today I had a panic on CURRENT/powerpc64. I guess running make fetch for one of ports had something to do with it:
> db> show panic
> panic: rcv_start < rcv_end
> db> bt
> Tracing pid 0 tid 100176 td 0xc000000006fa4560
> 0xe000000099ad2b30: at vpanic+0x1fc
> 0xe000000099ad2be0: at panic+0x44
> 0xe000000099ad2c10: at tcp_update_dsack_list+0x3e8
> 0xe000000099ad2ce0: at tcp_do_segment+0x2eb8
> 0xe000000099ad2e80: at tcp_input+0xec0
> 0xe000000099ad3060: at tcp6_input+0x1a8
> 0xe000000099ad30b0: at ip6_input+0x11d4
> 0xe000000099ad3210: at netisr_dispatch_src+0x108
> 0xe000000099ad32c0: at netisr_dispatch+0x24
> 0xe000000099ad32f0: at ether_demux+0x1b4
> 0xe000000099ad3370: at ether_gen_addr+0x660
> 0xe000000099ad3430: at netisr_dispatch_src+0x108
> 0xe000000099ad34e0: at netisr_dispatch+0x24
> 0xe000000099ad3510: at ether_ifattach+0x414
> 0xe000000099ad35b0: at if_input+0x28
> 0xe000000099ad35e0: at ata_sii_chipinit+0xe92c
> 0xe000000099ad3690: at ata_sii_chipinit+0xb8bc
> 0xe000000099ad3700: at taskqueue_run+0x200
> 0xe000000099ad37d0: at taskqueue_thread_loop+0xd4
> 0xe000000099ad3820: at fork_exit+0xc4
> 0xe000000099ad38c0: at fork_trampoline+0x18
> 0xe000000099ad38f0: at -0x4
>
> pkubaj at talos:$/usr/home/pkubaj$ uname -a
> FreeBSD talos 13.0-CURRENT FreeBSD 13.0-CURRENT #0 r351820M: Wed Sep  4 23:37:46 CEST 2019     root at talos:/usr/obj/usr/src/powerpc.powerpc64/sys/ZFS  powerpc
>
> My kernel:
> pkubaj at talos:$/usr/home/pkubaj$ cat /usr/src/sys/powerpc/conf/ZFS
> include GENERIC64
> options GEOM_ELI
> options ZFS


(kgdb) bt
#0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55
#1  doadump (textdump=0) at /usr/src/sys/kern/kern_shutdown.c:392
#2  0xffffffff804a1f3b in db_dump (dummy=<optimized out>, 
dummy2=<optimized out>, dummy3=<unavailable>, dummy4=<unavailable>) at 
/usr/src/sys/ddb/db_command.c:575
#3  0xffffffff804a1d09 in db_command (last_cmdp=<optimized out>, 
cmd_table=<optimized out>, dopager=1) at /usr/src/sys/ddb/db_command.c:482
#4  0xffffffff804a1a84 in db_command_loop () at 
/usr/src/sys/ddb/db_command.c:535
#5  0xffffffff804a4c2f in db_trap (type=<optimized out>, code=<optimized 
out>) at /usr/src/sys/ddb/db_main.c:252
#6  0xffffffff80c1e67c in kdb_trap (type=3, code=0, tf=<optimized out>) 
at /usr/src/sys/kern/subr_kdb.c:692
#7  0xffffffff8119387f in trap (frame=0xfffffe0011dfd9c0) at 
/usr/src/sys/amd64/amd64/trap.c:621
#8  <signal handler called>
#9  kdb_enter (why=0xffffffff8133d85a "panic", msg=<optimized out>) at 
/usr/src/sys/kern/subr_kdb.c:479
#10 0xffffffff80bd2f4a in vpanic (fmt=<optimized out>, ap=<optimized 
out>) at /usr/src/sys/kern/kern_shutdown.c:897
#11 0xffffffff80bd2cc3 in panic (fmt=0xffffffff81e8a3b8 <cnputs_mtx> 
"\211'0\201\377\377\377\377") at /usr/src/sys/kern/kern_shutdown.c:835
#12 0xffffffff80dfae89 in tcp_update_dsack_list (tp=0xfffff800bb670000, 
rcv_start=828121842, rcv_end=828121842) at 
/usr/src/sys/netinet/tcp_sack.c:166
#13 0xffffffff80deef63 in tcp_do_segment (m=0xfffff800bb4dab00, 
th=0xfffff800bb4dab7c, so=0xfffff8013035ea98, tp=0xfffff800bb670000, 
drop_hdrlen=52, tlen=<optimized out>,
     iptos=0 '\000') at /usr/src/sys/netinet/tcp_input.c:3076
#14 0xffffffff80deb993 in tcp_input (mp=<optimized out>, offp=<optimized 
out>, proto=<optimized out>) at /usr/src/sys/netinet/tcp_input.c:1373
#15 0xffffffff80d6f39f in ip_input (m=0x0) at 
/usr/src/sys/netinet/ip_input.c:829
#16 0xffffffff80cffd02 in netisr_dispatch_src (proto=1, 
source=<optimized out>, m=0x80) at /usr/src/sys/net/netisr.c:1123
#17 0xffffffff80ce3c7b in ether_demux (ifp=0xfffff800036b2800, m=0x80) 
at /usr/src/sys/net/if_ethersubr.c:913
#18 0xffffffff80ce51fd in ether_input_internal (ifp=0xfffff800036b2800, 
m=0x80) at /usr/src/sys/net/if_ethersubr.c:705
#19 ether_nh_input (m=<optimized out>) at 
/usr/src/sys/net/if_ethersubr.c:735
#20 0xffffffff80cffd02 in netisr_dispatch_src (proto=5, 
source=<optimized out>, m=0x80) at /usr/src/sys/net/netisr.c:1123
#21 0xffffffff80ce410d in ether_input (ifp=0xfffff800036b2800, m=0x0) at 
/usr/src/sys/net/if_ethersubr.c:823
#22 0xffffffff80df5051 in tcp_flush_out_le (tp=0x0, 
lc=0xfffffe0056544fc0, le=0xfffffe005ea6c498, locked=0) at 
/usr/src/sys/netinet/tcp_lro.c:569
#23 0xffffffff80df4d93 in tcp_lro_flush (lc=0xfffffe0056544fc0, 
le=0xfffffe005ea6c498) at /usr/src/sys/netinet/tcp_lro.c:971
#24 0xffffffff80df53f2 in tcp_lro_rx_done (lc=0xfffffe0056544fc0) at 
/usr/src/sys/netinet/tcp_lro.c:356
#25 0xffffffff80df50fc in tcp_lro_flush_all (lc=0xfffffe0056544fc0) at 
/usr/src/sys/netinet/tcp_lro.c:1116
#26 0xffffffff82546056 in mlx5e_rx_cq_comp (mcq=<optimized out>) at 
/usr/src/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c:581
#27 0xffffffff8256f4a1 in mlx5_cq_completion (dev=0xfffffe0056318000, 
cqn=1035) at /usr/src/sys/dev/mlx5/mlx5_core/mlx5_cq.c:71
#28 0xffffffff8257080a in mlx5_eq_int (dev=0xfffffe0056318000, 
eq=0xfffff800036ae800) at /usr/src/sys/dev/mlx5/mlx5_core/mlx5_eq.c:248
#29 mlx5_msix_handler (irq=<optimized out>, eq_ptr=0xfffff800036ae800) 
at /usr/src/sys/dev/mlx5/mlx5_core/mlx5_eq.c:400
#30 0xffffffff80b94307 in intr_event_execute_handlers (p=<optimized 
out>, ie=<optimized out>) at /usr/src/sys/kern/kern_intr.c:1148
#31 ithread_execute_handlers (p=<optimized out>, ie=<optimized out>) at 
/usr/src/sys/kern/kern_intr.c:1161
#32 ithread_loop (arg=<optimized out>) at /usr/src/sys/kern/kern_intr.c:1241
#33 0xffffffff80b90e84 in fork_exit (callout=0xffffffff80b94180 
<ithread_loop>, arg=0xfffff800036ebe20, frame=0xfffffe0011dfe340) at 
/usr/src/sys/kern/kern_fork.c:1046
#34 <signal handler called>

(kgdb) f 12
#12 0xffffffff80dfae89 in tcp_update_dsack_list (tp=0xfffff800bb670000, 
rcv_start=828121842, rcv_end=828121842) at 
/usr/src/sys/netinet/tcp_sack.c:166
166             KASSERT(SEQ_LT(rcv_start, rcv_end), ("rcv_start < 
rcv_end"));
(kgdb) l
161             int i, j, n, identical;
162             tcp_seq start, end;
163
164             INP_WLOCK_ASSERT(tp->t_inpcb);
165
166             KASSERT(SEQ_LT(rcv_start, rcv_end), ("rcv_start < 
rcv_end"));
167
168             if (tp->t_inpcb->inp_socket->so_options & SO_DEBUG) {
169                     log(LOG_DEBUG, "\nDSACK update: %d..%d, rcv_nxt: 
%u\n",
170                     rcv_start, rcv_end, tp->rcv_nxt);

Slava



More information about the freebsd-net mailing list