On Tue, May 04, 2021 at 07:07:03PM +0000, kyo wrote:
> Background - I was trying to troubleshoot a networking problem. I had put my
> wg(4) interface on rdomain 2 and was NAT-ing certain packets from iwm(4) to 
> it.
> When the crash happened, I was running a ping and a tcpdump on the wireguard
> interface.

It is an endless recursion through tcp_output+0x1a10.

/usr/src/sys/netinet/tcp_output.c:1088
    1aef:       48 8b b8 d8 01 00 00    mov    0x1d8(%rax),%rdi
    1af6:       be ff ff ff ff          mov    $0xffffffff,%esi
    1afb:       e8 00 00 00 00          callq  1b00 <tcp_output+0x1a10>
*   1b00:       e9 d5 e6 ff ff          jmpq   1da <tcp_output+0xea>


  1081          if (error == EMSGSIZE) {
  1082                  /*
  1083                   * ip_output() will have already fixed the route
  1084                   * for us.  tcp_mtudisc() will, as its last action,
  1085                   * initiate retransmission, so it is important to
  1086                   * not do so here.
  1087                   */
* 1088                  tcp_mtudisc(tp->t_inpcb, -1);
  1089                  return (0);
  1090          }

Looks similar to
https://marc.info/?l=openbsd-bugs&m=161253566513764&w=2
which was fixed here
https://marc.info/?l=openbsd-cvs&m=161298170610605&w=2

The fixed bug was about path MTU discovery, IPsec and routing
doamins.  I guess you have found a similar problem with wireguard.

bluhm

Reply via email to