Date: Mon, 22 Apr 2013 14:48:47 -0400 From: Juan Mojica <jmojica@gmail.com> To: Gleb Smirnoff <glebius@freebsd.org> Cc: FreeBSD Net <freebsd-net@freebsd.org> Subject: Re: ARP: Error Message in if_ether.c "arprequest: cannot find matching address" Message-ID: <CAPKuH-wQnyxdddMozTN328V3U_GLpiCOp-nuKiYEKXO-FWhmVg@mail.gmail.com> In-Reply-To: <20130422095759.GC76816@FreeBSD.org> References: <CAPKuH-w4ugf4KSWBKMoURbNsSrs1O-XNmWdn47VKn9MkCOgRDw@mail.gmail.com> <20130422095759.GC76816@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks Gleb. I do not believe this path can triggered by an incoming frame. I am planning on adding a KASSERT here to get a core when we exercise this code in our debug images. -Juan On Mon, Apr 22, 2013 at 5:57 AM, Gleb Smirnoff <glebius@freebsd.org> wrote: > On Wed, Apr 17, 2013 at 08:46:42AM -0400, Juan Mojica wrote: > J> We manage to hit the following message with some regularity. > J> > J> arprequest: cannot find matching address > J> > J> The code shows a printf: > J> > J> printf("%s: cannot find matching address\n", __func__); > J> > J> > J> Any reason this is a printf and not a > J> > J> log(LOG_ERR, > J> > J> The only things I can come up with are: > J> > J> a) it is a really severe and should be printed out, which if that is the > J> case why isn't there an assert there? > J> b) whoops, that should probably be a log(LOG_ERR, > J> On our end we need to figure out exactly why we're intermittently > hitting > J> this patch of code. > > Can you please try this patch? Let's see what's going on. > > printf()ing in kernel is especially unsafe when the event can be triggered > remotely. The arprequest() is called on output path of a packet, however > I'm not sure that it can't be triggered by incoming packet. > > -- > Totus tuus, Glebius. > -- Juan Mojica Email: jmojica@gmail.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPKuH-wQnyxdddMozTN328V3U_GLpiCOp-nuKiYEKXO-FWhmVg>