Child constantly crashes in Mac OS X

Javi Lavandeira javi at lavandeira.net
Mon Jul 30 19:06:58 CEST 2012


Hi phk,

> In message <A1FE9D80-4D75-4450-AB9B-96C55E914973 at lavandeira.net>, Javi Lavandei
> ra writes:
> 
> Can you check the manual pages and see if it mentions how long timeouts
> you can specify to setsockopt(SO_SNDTIMEO) ?
> 
>> Child (7681) died signal=6
>> Child (7681) Panic message: Assert error in VCA_Prep(), cache_acceptor.c line 185:
>> Condition(VTCP_Check(setsockopt(sp->fd, 0xffff, 0x1005, &tv_sndtimeo, sizeof tv_sndtimeo))) not true.

Let's see if this helps:

From setsockopt()'s manpage:

[...]
     Most socket-level options utilize an int parameter for option_value.  For setsockopt(), the
     parameter should be non-zero to enable a boolean option, or zero if the option is to be dis-
     abled.  SO_LINGER uses a struct linger parameter, defined in <sys/socket.h>, which specifies
     the desired state of the option and the linger interval (see below).  SO_SNDTIMEO and
     SO_RCVTIMEO use a struct timeval parameter, defined in <sys/time.h>.
[...]
     SO_SNDTIMEO is an option to set a timeout value for output operations.  It accepts a struct
     timeval parameter with the number of seconds and microseconds used to limit waits for output
     operations to complete.  If a send operation has blocked for this much time, it returns with a
     partial count or with the error EWOULDBLOCK if no data were sent.  In the current implementa-
     tion, this timer is restarted each time additional data are delivered to the protocol, imply-
     ing that the limit applies to output portions ranging in size from the low-water mark to the
     high-water mark for output.
[...]

And I can see this in the header files:

/usr/include/sys/_structs.h:

#define _STRUCT_TIMEVAL struct timeval
_STRUCT_TIMEVAL
{
	__darwin_time_t		tv_sec;	/* seconds */
	__darwin_suseconds_t 	tv_usec;	/* and microseconds */
}; 

/usr/include/sys/types.h:
	
typedef __darwin_time_t         time_t;
typedef __darwin_suseconds_t    suseconds_t;

/usr/include/sys/_types.h:

typedef __int32_t	__darwin_suseconds_t;	/* [???] microseconds */

Hope it helps.

--
Javi Lavandeira 
Twitter: @javilm

Blog: http://www.lavandeira.net/blog/
Email and hosting: http://www.lavandeira.net/services/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20120731/ff25a924/attachment.html>


More information about the varnish-misc mailing list