ARP: Error Message in if_ether.c "arprequest: cannot find matching address"

Juan Mojica jmojica at gmail.com
Mon Apr 22 18:48:49 UTC 2013


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 at 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 at gmail.com


More information about the freebsd-net mailing list