dhclient taking up all CPU

Brooks Davis brooks at one-eyed-alien.net
Mon Nov 6 14:34:39 UTC 2006


It doesn't effect nearly enough people to warrent a commit to the eratta
branch.  It's also not serious enough; the bar has typically been set at
the level of data corruption bugs.

-- Brooks

On Mon, Nov 06, 2006 at 02:20:42PM +0100, Spil Oss wrote:
> Hi all,
> 
> Rebuilt dhclient with the bpf.c from RELENG_6 ( line 285 == -> >=)
> According to the cvs commit log this fixes my problem.
> 
> Still leaves me wondering why this was not applied to RELENG_6_1
> 
> Kind regards,
> 
> Spil.
> 
> 
> On 05/11/06, Brooks Davis <brooks at one-eyed-alien.net> wrote:
> >It should be fixed in STABLE.  The particular fixes were to bpf.c so I
> >belive (but have not verified) that if you grab the latest version of
> >that file, put it in src/sbin/dhclient/ and rebuild dhclient the
> >problems will go away.
> >
> >-- Brooks
> >
> >On Sun, Nov 05, 2006 at 09:12:25PM +0100, Spil Oss wrote:
> >> Hi all,
> >>
> >> Been experiencing this same behaviour every now-and-then.
> >>
> >> FreeBSD/i386 6.1-RELEASE-p10
> >>
> >> Any solutions to this?
> >>
> >> Kind regards,
> >>
> >> Spil.
> >>
> >> On 06/05/06, Lodewijk V??ge <lvoege at gmail.com> wrote:
> >> >hello,
> >> >
> >> >a while ago someone reported the same problem I had been seeing, that
> >> >dhclient starts taking up 100% CPU. it's probably something comcast
> >> >is doing.
> >> >
> >> >I couldn't get the requested coredump then, if I set kern.corefile
> >> >to /tmp/%N.core and kill -QUIT it, it doesn't seem to produce a
> >> >coredump. but it happened again just now, and I was able to attach
> >> >gdb. this is where it's spinning, in receive_packet() in bpf.c:
> >> >
> >> >(gdb)
> >> >285                     if (interface->rbuf_offset == interface-
> >> > >rbuf_len) {
> >> >(gdb)
> >> >299                     if (interface->rbuf_len - interface-
> >> > >rbuf_offset <
> >> >(gdb)
> >> >306                     memcpy(&hdr, &interface->rbuf[interface-
> >> > >rbuf_offset],
> >> >(gdb)
> >> >313                     if (interface->rbuf_offset + hdr.bh_hdrlen +
> >> >hdr.bh_caplen >
> >> >(gdb)
> >> >320                     interface->rbuf_offset += hdr.bh_hdrlen;
> >> >(gdb)
> >> >327                     if (hdr.bh_caplen != hdr.bh_datalen) {
> >> >(gdb)
> >> >328                             interface->rbuf_offset =
> >> >(gdb)
> >> >331                             continue;
> >> >(gdb)
> >> >385             } while (!length);
> >> >
> >> >and then it goes back to line 285. interesting variables are:
> >> >
> >> >(gdb) p *interface
> >> >$1 = {next = 0x0, hw_address = {htype = 1 '\001', hlen = 6 '\006',
> >> >    haddr = "\000\021??\223?\000\000\000\000\000\000\000\000\000"},
> >> >primary_address = {s_addr = 0},
> >> >  name = "vr0", '\0' <repeats 12 times>, rfdesc = 7, wfdesc = 7,
> >> >rbuf = 0x807d000 "\022?\\Dk\214", rbuf_max = 4096,
> >> >  rbuf_offset = 416, rbuf_len = 415, ifp = 0x806f160, client =
> >> >0x8075000, noifmedia = 0, errors = 0, dead = 0, index = 2}
> >> >(gdb) p length
> >> >$2 = 0
> >> >(gdb) p hdr
> >> >$3 = {bh_tstamp = {tv_sec = 0, tv_usec = 0}, bh_caplen = 4294901760,
> >> >bh_datalen = 4294901778, bh_hdrlen = 65535}
> >> >
> >> >this is FreeBSD/i386 6.1-RC as of about two weeks ago.
> >> >
> >> >Lodewijk
> >> >
> >> >_______________________________________________
> >> >freebsd-stable at freebsd.org mailing list
> >> >http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> >> >To unsubscribe, send any mail to 
> >"freebsd-stable-unsubscribe at freebsd.org"
> >> >
> >
> >> _______________________________________________
> >> freebsd-stable at freebsd.org mailing list
> >> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> >> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
> >
> >
> >
> >
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20061106/a7780f45/attachment.pgp


More information about the freebsd-stable mailing list