UDP LOR with the latest RELENG_7

Jeremy Chadwick koitsu at FreeBSD.org
Fri Oct 10 08:44:09 PDT 2008


On Fri, Oct 10, 2008 at 06:24:59PM +0300, Vlad GALU wrote:
> On Fri, Oct 10, 2008 at 6:21 PM, Jeremy Chadwick <koitsu at freebsd.org> wrote:
> > On Fri, Oct 10, 2008 at 06:11:25PM +0300, Vlad GALU wrote:
> >> On Fri, Oct 10, 2008 at 5:57 PM, Mike Tancsa <mike at sentex.net> wrote:
> >> > At 08:40 AM 10/10/2008, Vlad GALU wrote:
> >> >>
> >> >>   As my kernel had started to lock up periodically and I don't have
> >> >> hands-on access to that machine, I enabled WITNESS.
> >> >> So these started to pop up:
> >> >
> >> > Is this with a stock kernel and sysctl settings ?  Or do you have any custom
> >> > kernel options ?
> >>
> >>    Jeremy pointed to a possible culprit - running csup again brought
> >> uipc_usrreq.c to version 1.206.2.5. I'm rebuilding a new kernel with
> >> this revision as I type and I'll see how it goes. I'm attaching the
> >> sysctl.conf below just to be safe:
> >
> > I remember LORs pertaining to UDP being discussed recently.
> >
> > Possibly relevant threads:
> >
> > http://lists.freebsd.org/pipermail/freebsd-stable/2008-September/thread.html#45020
> > http://lists.freebsd.org/pipermail/freebsd-stable/2008-September/thread.html#45109
> > http://lists.freebsd.org/pipermail/freebsd-stable/2008-September/thread.html#45193
> > http://lists.freebsd.org/pipermail/freebsd-stable/2008-September/thread.html#45231
> >
> > The last one is rwatson's fix, and confirmation from a couple people
> > that it fixes their issues.
> 
>    I've rebuilt the kernel, the LORs are still there :(
> -- cut here --
> --- syscall (97, FreeBSD ELF64, socket), rip = 0x80070427c, rsp =
> 0x7fffffffe8c8, rbp = 0x5269c8 ---
> uma_zalloc_arg: zone "16" with the following non-sleepable locks held:
> exclusive rw udp r = 0 (0xffffffff8064c928) locked @
> /usr/src/sys/netinet/udp_usrreq.c:1125
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> witness_warn() at witness_warn+0x241
> uma_zalloc_arg() at uma_zalloc_arg+0x290
> malloc() at malloc+0x5c
> getenv() at getenv+0x93
> getenv_quad() at getenv_quad+0x13
> getenv_int() at getenv_int+0x15
> udp_inpcb_init() at udp_inpcb_init+0x1f
> slab_zalloc() at slab_zalloc+0x1ad
> uma_zone_slab() at uma_zone_slab+0xb4
> uma_zalloc_arg() at uma_zalloc_arg+0x31d
> in_pcballoc() at in_pcballoc+0x38
> udp_attach() at udp_attach+0x57
> socreate() at socreate+0x14f
> socket() at socket+0x8a
> syscall() at syscall+0x1a9
> Xfast_syscall() at Xfast_syscall+0xab
> --- syscall (97, FreeBSD ELF64, socket), rip = 0x80070427c, rsp =
> 0x7fffffffe8c8, rbp = 0x5269c8 ---
> -- and here --
> 
>   I'll see whether the system still locks up or not though..

Okay, I'm bringing rwatson@ into the thread since this is specific to
UDP.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-stable mailing list