Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Aug 2009 17:13:45 -0700
From:      Kip Macy <kmacy@freebsd.org>
To:        Brian Somers <brian@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: kernel panics in in_lltable_lookup (with INVARIANTS)
Message-ID:  <3c1674c90908211713j36415b96q58b0ed66cc82713f@mail.gmail.com>
In-Reply-To: <20090821164312.641fe2bd@dev.lan.Awfulhak.org>
References:  <20090821164312.641fe2bd@dev.lan.Awfulhak.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Try this:

Index: sys/net/flowtable.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/net/flowtable.c (revision 196382)
+++ sys/net/flowtable.c (working copy)
@@ -688,6 +688,12 @@
                struct rtentry *rt =3D ro->ro_rt;
                struct ifnet *ifp =3D rt->rt_ifp;

+               if (ifp->if_flags & IFF_POINTOPOINT) {
+                       RTFREE(rt);
+                       ro->ro_rt =3D NULL;
+                       return (ENOENT);
+               }
+
                if (rt->rt_flags & RTF_GATEWAY)
                        l3addr =3D rt->rt_gateway;
                else

You'll need to apply this by hand as gmail munges the formatting.

-Kip


On Fri, Aug 21, 2009 at 16:43, Brian Somers<brian@freebsd.org> wrote:
> Hi,
>
> I've been working on a fix to address an issue that came up with
> our update of openssh-5. =A0The issue is that openssh-5 now uses
> pipe() to create stdin/stdout channels between sshd and the server
> side program where it used to use socketpair(). =A0Because it uses
> pipe(), stdin is no longer bi-directional and cannot be used for both
> input and output by a child process. =A0This breaks the use of ssh
> as a tunnel with ppp on either end (set device "!ssh -e none host
> ppp -direct label")
>
> I talked with des@ for a while and then with the openssh folks and
> have not been able to resolve the issues in openssh that made them
> choose to enforce the use of pipe() over socketpair(). =A0I now have a
> patch to ppp that makes ppp detect that it's connected via pipe() and
> causes it to use stdin for input and stdout for output (usually it expect=
s
> just one descriptor). =A0Although I'm happy with the patch and planned on
> requesting permission to commit, I've bumped into a show-stopper
> that seems unrelated, so I thought I'd ask here if anyone has seen
> this or has any suggestions as to what the problem might be.
>
> The issue....
>
> I'm seeing a panic when I send traffic through a ppp link:
>
> panic string is: sin_family 18
> Stack trace starts:
> =A0 =A0in_lltable_lookup()
> =A0 =A0llentry_update()
> =A0 =A0flowtable_lookup()
> =A0 =A0ip_output()
> =A0 =A0....
>
> The panic is due to a KASSERT in in_lltable_lookup() that expects the
> sockaddr to be AF_INET. =A0Number 18 is AF_LINK.
>
> AFAICT this is happening while setting up a temporary route for the
> first outbound packet. =A0I haven't been able to do much investigation
> yet due to other patches in my tree that seem to have broken all my
> kernel symbols, but once I get a clean rebuild I should be back in
> business.
>
> If anyone has any suggestions, I'm all ears!
>
> Cheers.
>
> --
> Brian Somers =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0<brian@Awfulhak.org>
> Don't _EVER_ lose your sense of humour ! =A0 =A0 =A0 =A0 =A0 =A0 =A0 <bri=
an@FreeBSD.org>
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org=
"
>



--=20
When harsh accusations depart too far from the truth, they leave
bitter consequences.
--Tacitus



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3c1674c90908211713j36415b96q58b0ed66cc82713f>