Date: Mon, 18 Jul 2016 18:19:31 +0200 From: Randall Stewart <rrs@netflix.com> To: Gleb Smirnoff <glebius@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r302998 - head/sys/kern Message-ID: <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> In-Reply-To: <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I have worked out a fix of this in Netflix code base (I have the same code running there). I will get that tested tonight I will get the fixes in to restore the behavior. I will setup a phabricator shortly.. most likely I will update the one I already have on the one problem your earlier patch did not fix. R > On Jul 18, 2016, at 5:44 PM, Randall Stewart <rrs@netflix.com> wrote: > > Gleb: > > This now leaks TCP-PCB’s since you have broken the return codes with all your > fixes that used to be in here. > > It was > > return 1 — You stopped the callout > return 0 — The callout could not be stopped > return -1 — The callout was not running. > > The LLRef code that was crashing in in.c depended on this to know to free > the memory.. i.e. if was > 0 then they needed to free the memory. > > TCP depends on a return 0 to indicate the async-drain function will be called back and > thus increments a refcnt and waits for the callback. > > You now return 0 when no timer was active.. which makes the stack then wait > for the not forth coming async-drain call. > > R >> On Jul 18, 2016, at 11:29 AM, Gleb Smirnoff <glebius@freebsd.org> wrote: >> >> Author: glebius >> Date: Mon Jul 18 09:29:08 2016 >> New Revision: 302998 >> URL: https://svnweb.freebsd.org/changeset/base/302998 >> >> Log: >> Revert the last commit. It must get more review and testing first. >> >> Modified: >> head/sys/kern/kern_timeout.c >> >> Modified: head/sys/kern/kern_timeout.c >> ============================================================================== >> --- head/sys/kern/kern_timeout.c Mon Jul 18 09:26:06 2016 (r302997) >> +++ head/sys/kern/kern_timeout.c Mon Jul 18 09:29:08 2016 (r302998) >> @@ -1381,7 +1381,7 @@ again: >> CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", >> c, c->c_func, c->c_arg); >> CC_UNLOCK(cc); >> - return (-1); >> + return (0); >> } >> >> c->c_iflags &= ~CALLOUT_PENDING; >> > > -------- > Randall Stewart > rrs@netflix.com > 803-317-4952 > > > > > -------- Randall Stewart rrs@netflix.com 803-317-4952
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?58868615-8255-4D8B-BD9E-8E19A734CB6C>
