Date: Sat, 29 Mar 2014 15:02:29 +0100 From: Willy Offermans <Willy@Offermans.Rompen.nl> To: Willy Offermans <Willy@Offermans.Rompen.nl> Cc: freebsd-net@FreeBSD.ORG, freebsd-stable@FreeBSD.ORG Subject: Re: TCP packets remain unsent Message-ID: <20140329140229.GE3528@vpn.offrom.nl> In-Reply-To: <20140328162554.GA26748@vpn.offrom.nl> References: <20140328162554.GA26748@vpn.offrom.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
Dear FreeBSD friends, On Fri, Mar 28, 2014 at 05:25:54PM +0100, Willy Offermans wrote: > Dear FreeBSD friends, > > I have a problem with my relatively new FreeBSD server. I came across the > problem when sending e-mails of larger size and copying files with scp. > The e-mails were not sent out because of time-out error and the copying was > extremely slow, though successful after a while. I already started a thread > on this topic on freebsd-current. See > http://docs.freebsd.org/mail/current/freebsd-current.html, topic > sendmail Broken Pipe Error. I got some help to narrow down the > error: Sending out e-mails of larger size stops at some point. TCP packets > were not transferred to the smarthost causing a timeout error. There were > still some TCP packets waiting to be sent. > > My system is a HP ProLiant Gen8 MicroServer with FreeBSD 10.0-STABLE #0 > r261266M. The server has two network cards: > > bge0@pci0:3:0:0: class=0x020000 card=0x2133103c chip=0x165f14e4 rev=0x00 hdr=0x00 > vendor = 'Broadcom Corporation' > device = 'NetXtreme BCM5720 Gigabit Ethernet PCIe' > class = network > subclass = ethernet > bge1@pci0:3:0:1: class=0x020000 card=0x2133103c chip=0x165f14e4 rev=0x00 hdr=0x00 > vendor = 'Broadcom Corporation' > device = 'NetXtreme BCM5720 Gigabit Ethernet PCIe' > class = network > subclass = ethernet > > I do not know if there any known issues with these cards (drivers). > > Before the time out error occurs, the CPU loading of natd and dhcpd is > steadily increasing to extreme values to my opinion: > > PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND > > 1235 root 1 93 0 28908K 2144K RUN 0 54:05 71.78% natd > 1614 dhcpd 1 4 0 26784K 14936K RUN 0 29:24 38.77% dhcpd > > I followed an advice of another FreeBSD friend to modify tcp_input.c > > <snip> > ... > You may want to locally apply SVN r258821 to sys/netinet/tcp_input.c, > in case it has not been merged back to the FreeBSD version you use: > > --- sys/netinet/tcp_input.c (revision 258820) > +++ sys/netinet/tcp_input.c (revision 258821) > @@ -2429,13 +2429,15 @@ > hhook_run_tcp_est_in(tp, th, &to); > > if (SEQ_LEQ(th->th_ack, tp->snd_una)) { > - if (tlen == 0 && tiwin == tp->snd_wnd) { > + if (tlen == 0 && tiwin == tp->snd_wnd && > + !(thflags & TH_FIN)) { > TCPSTAT_INC(tcps_rcvdupack); > /* > * If we have outstanding data (other than > * a window probe), this is a completely > * duplicate ack (ie, window info didn't > - * change), the ack is the biggest we've > + * change and FIN isn't set), > + * the ack is the biggest we've > * seen and we've seen exactly our rexmt > * threshhold of them, assume a packet > * has been dropped and retransmit it. > > ... > </snip> > > However this did not solve the issue. > > So my question to you is if someone else encountered a similar problem with > NetXtreme BCM5720 Gigabit Ethernet PCIe and if someone is able to take this > up and to help me to solve this issue. I would love to run this FreeBSD > server as a swiss clock as other beastie servers, I have setup in the past. > > -- I could narrow down the cause of the error: If I remove the following line from my firewall rules, I could sent out e-mails without issues. /sbin/ipfw add 50 divert natd all from any to any via bge0 I do not know yet how things are related, but I will dig into it. If someone has a hint, please respond to the list. -- Met vriendelijke groeten, With kind regards, Mit freundlichen Gruessen, De jrus wah, Wiel ************************************* W.K. Offermans e-mail: Willy@Offermans.Rompen.nl Powered by .... (__) \\\'',) \/ \ ^ .\._/_) www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140329140229.GE3528>