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.
Thanks for the help! Ryan ________________________________________ From: adrian.ch...@gmail.com <adrian.ch...@gmail.com> on behalf of Adrian Chadd <adr...@freebsd.org> Sent: Friday, January 16, 2015 1:39 PM To: Quattlebaum, Ryan Cc: freebsd-net@freebsd.org Subject: Re: Accessing socket APIs soon after accept Oh, I've no idea about -8. If that's what the code does then yeah, that seems wrong. Is it like that in -10 or -11 ? -adrian On 16 January 2015 at 09:07, Quattlebaum, Ryan <ryan.quattleb...@netapp.com> wrote: > Hi, Adrian. Thanks for taking a look at this. > > We're using FreeBSD 8.2 and httpd-2.4.10 with arp-1.5.1 and apr-util-1.5.4. > > The problem we're seeing is pretty intermittent, so I hope this test case can > shine a little bit of light on the > problem. We tried debugging this on our own by adding calls to getsockname() > right after the accept call (in srclib/apr/network_io/unix/sockets.c: > apr_socket_accept()) and logging the output. That's where we saw invalid data. > > I took a look at the source code for the TCP syncache module and the accept > syscall. It looks like the new child socket is available for the application > to accept after the call to sonewconn returns, but the address information > isn't set until further down in the function. Wouldn't this open a window > where an application could accept on a socket that the syncache code isn't > done configuring? > > - Ryan Quattlebaum > ________________________________________ > From: adrian.ch...@gmail.com <adrian.ch...@gmail.com> on behalf of Adrian > Chadd <adr...@freebsd.org> > Sent: Thursday, January 15, 2015 1:20 PM > To: Quattlebaum, Ryan > Cc: freebsd-net@freebsd.org > Subject: Re: Accessing socket APIs soon after accept > > On 15 January 2015 at 08:29, Quattlebaum, Ryan > <ryan.quattleb...@netapp.com> wrote: >> Is there anything preventing applications from calling functions e.g. >> getsockname() right after accept()? Or is there a recommended pattern that >> applications should use to ensure they get correct data? We recently >> upgraded to a new version of Apache and are seeing uninitialized data coming >> back from a few of these calls. > > I'm under the impression that once you get the FD from accept(), it > should be fully formed and ready. > > Which version of FreeBSD/apache is it? can you come up with a test > case that shows that it's happening? > > > > -adrian > >> Thanks, >> >> Ryan Quattlebaum >> Software Developer, NetApp, Inc. >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org" _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"