Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Jan 2015 18:40:50 +0000
From:      "Quattlebaum, Ryan" <Ryan.Quattlebaum@netapp.com>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   RE: Accessing socket APIs soon after accept
Message-ID:  <1421433650372.44369@netapp.com>
In-Reply-To: <CAJ-VmomJ0GnHTK9NuKnJ3iLht6XbabKZV-2KKnu3i%2BuABrN8iQ@mail.gmail.com>
References:  <1421339375968.94209@netapp.com> <CAJ-VmonYaAUior3aGBioVUvMPM1OMHJnHt7-rQgzMGQ4co4ATQ@mail.gmail.com> <1421428048190.48193@netapp.com>, <CAJ-VmomJ0GnHTK9NuKnJ3iLht6XbabKZV-2KKnu3i%2BuABrN8iQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I haven't checked head of line. I'll go take a look. We are in the process =
of moving to 9.x, so I'll check that as well.=0A=
=0A=
Thanks for the help!=0A=
Ryan=0A=
________________________________________=0A=
From: adrian.chadd@gmail.com <adrian.chadd@gmail.com> on behalf of Adrian C=
hadd <adrian@freebsd.org>=0A=
Sent: Friday, January 16, 2015 1:39 PM=0A=
To: Quattlebaum, Ryan=0A=
Cc: freebsd-net@freebsd.org=0A=
Subject: Re: Accessing socket APIs soon after accept=0A=
=0A=
Oh, I've no idea about -8. If that's what the code does then yeah,=0A=
that seems wrong. Is it like that in -10 or -11 ?=0A=
=0A=
=0A=
=0A=
-adrian=0A=
=0A=
=0A=
On 16 January 2015 at 09:07, Quattlebaum, Ryan=0A=
<Ryan.Quattlebaum@netapp.com> wrote:=0A=
> Hi, Adrian. Thanks for taking a look at this.=0A=
>=0A=
> We're using FreeBSD 8.2 and httpd-2.4.10 with arp-1.5.1 and apr-util-1.5.=
4.=0A=
>=0A=
> The problem we're seeing is pretty intermittent, so I hope this test case=
 can                                      shine a little bit of light on th=
e problem. We tried debugging this on our own by adding calls to getsocknam=
e() right after the accept call (in srclib/apr/network_io/unix/sockets.c: a=
pr_socket_accept()) and logging the output. That's where we saw invalid dat=
a.=0A=
>=0A=
> I took a look at the source code for the TCP syncache module and the acce=
pt syscall. It looks like the new child socket is available for the applica=
tion to accept after the call to sonewconn returns, but the address informa=
tion isn't set until further down in the function. Wouldn't this open a win=
dow where an application could accept on a socket that the syncache code is=
n't done configuring?=0A=
>=0A=
> - Ryan Quattlebaum=0A=
> ________________________________________=0A=
> From: adrian.chadd@gmail.com <adrian.chadd@gmail.com> on behalf of Adrian=
 Chadd <adrian@freebsd.org>=0A=
> Sent: Thursday, January 15, 2015 1:20 PM=0A=
> To: Quattlebaum, Ryan=0A=
> Cc: freebsd-net@freebsd.org=0A=
> Subject: Re: Accessing socket APIs soon after accept=0A=
>=0A=
> On 15 January 2015 at 08:29, Quattlebaum, Ryan=0A=
> <Ryan.Quattlebaum@netapp.com> wrote:=0A=
>> Is there anything preventing applications from calling functions e.g. ge=
tsockname() right after accept()? Or is there a recommended pattern that ap=
plications should use to ensure they get correct data? We recently upgraded=
 to a new version of Apache and are seeing uninitialized data coming back f=
rom a few of these calls.=0A=
>=0A=
> I'm under the impression that once you get the FD from accept(), it=0A=
> should be fully formed and ready.=0A=
>=0A=
> Which version of FreeBSD/apache is it? can you come up with a test=0A=
> case that shows that it's happening?=0A=
>=0A=
>=0A=
>=0A=
> -adrian=0A=
>=0A=
>> Thanks,=0A=
>>=0A=
>> Ryan Quattlebaum=0A=
>> Software Developer, NetApp, Inc.=0A=
>> _______________________________________________=0A=
>> freebsd-net@freebsd.org mailing list=0A=
>> http://lists.freebsd.org/mailman/listinfo/freebsd-net=0A=
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"=
=0A=



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