TCP_Check() compatibility for NetBSD
Daniel Bilik
daniel.bilik at neosystem.cz
Wed Apr 13 12:15:42 CEST 2011
Hi.
Macro TCP_Check() as defined in include/libvarnish.h has two variants -
for Solaris and the rest of world. There is a note that EINVAL for socket
reset by the remote is a bug in Solaris. Well, I see the same on NetBSD
(5.1), where this is documented behaviour (ie. not a bug) - getsockname(2)
explicitly says:
[EINVAL] The socket has been shut down.
This causes varnishd to panic approx. once a day on my NetBSD box with
messages like this:
varnishd[27350]: Child (25744) Panic message: Assert error in
VRT_r_server_ip(), cache_vrt.c line 768: Condition(TCP_Check(i)) not
true. errno = 22 (Invalid argument)
It can be fixed by simply extending the condition for macro definition, see
attached patch.
--
Daniel Bilik
neosystem.cz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: varnish-2.1.5.patch
Type: text/x-diff
Size: 644 bytes
Desc: not available
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-bugs/attachments/20110413/e8e9b651/attachment.patch>
More information about the varnish-bugs
mailing list