In message <[email protected]>, Paul
Wright writes:
>I've compiled with the additional -mt flag, here's my current
>compilation process:
Please pull a brand new -trunk, I have added a check for errno
working and I would like to make sure that passes for you also.
>Child (14052) Panic message: Assert error in TCP_nonblocking(), tcp.c line =
>172:
> Condition((ioctl(sock, ((int)((uint32_t)(0x80000000|(((sizeof
>(int))&0xff)<<16)| ('f'<<8)|126))), &i)) =3D=3D 0) not true.
>errno =3D 131 (Connection reset by peer)
Now, _this_ errno I can actually belive, because that matches
the packet traces we have seen, and it is a plausible scenario.
The fact that Solaris docs does not mention ECONNRESET as a legal
error return for ioctl is a minor detail in that context.
The difference here is that the traditional BSD stack does not
return ECONNRESET until you try to move data on the socket,
giving you much simpler error checking on socket-state changes
(ioctl, fcntl, setsockopt, getsockopt etc)
So now that we have reached the root-cause, I need to go through
and do complex error-checking for all the socket-state calls.
Hopefully done later today...
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
[email protected] | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
_______________________________________________
varnish-misc mailing list
[email protected]
http://projects.linpro.no/mailman/listinfo/varnish-misc