Varnish LINGER crash on Solaris (Ticket #649)

Jorge Díaz jdzstz at gmail.com
Mon May 31 13:21:28 CEST 2010


The ticket exists:

http://varnish-cache.org/ticket/649

I need somebody to test it in linux, only check that it compiles OK.

I am new to Varnish, ¿everybody can commit changes to trunk? or only admin
users?

Thanks


2010/5/31 Poul-Henning Kamp <phk at phk.freebsd.dk>

>
> Can I get you to open a ticket with this text in it, so we have
> a record of why we are doing this ?
>
> Poul-Henning
>
> In message <AANLkTik-i3Kh45hQTP4zVYzw50Kz2zGvT8xWdpYQS--q at mail.gmail.com>,
> =?IS
> O-8859-1?Q?Jorge_D=EDaz?= writes:
> >--===============8061307876579297173==
> >Content-Type: multipart/alternative; boundary=0016e659f6d29162560487e1a818
> >
> >--0016e659f6d29162560487e1a818
> >Content-Type: text/plain; charset=ISO-8859-1
> >
> >Hello,
> >
> >I am testing Varnish (r4576 <http://varnish-cache.org/changeset/4576>) in
> >Solaris 10 5.10 Generic_120011-14 sun4v sparc SUNW,Sun-Fire-T2000.
> >We are planning to use a cache like Varnish or Squid and I have followed
> the
> >instructions in
> >http://letsgetdugg.com/2009/12/04/varnish-on-solaris/<
> http://letsgetdugg.com/2009/12/04/varnish-on-solaris/>
> >I have the same LINGER crash like in
> >#660<http://varnish-cache.org/ticket/660>that has the same root cause
> >in
> >#649 <http://varnish-cache.org/ticket/649>
> >
> >I have trying to fix the bug and I have found *the problem is that solaris
> >setsockopt returns sometimes EINVAL* when it is no invalid parameters,
> >problem found in Java JVM in Solaris:
> >*  http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378870<
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378870>
> >*
> >
> http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=7141b1811572e415779f4a711a96?bug_id=6850464
> <
> http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=7141b1811572e415779f4a711a96?bug_id=6850464
> >
> >
> >I think the solution is to changed the definition of "TCP_Check" in *
> >libvarnish.h* only for Solaris*
> >
> >/* In Solaris OS, errno == EINVAL is OK because setsockopt(3SOCKET) call
> >returns EINVAL when the connection is reset. */
> >#if defined (__SVR4) && defined (__sun)
> >#define TCP_Check(a) ((a) == 0 || errno == ECONNRESET || errno == ENOTCONN
> >|| errno == EINVAL)
> >#else
> >#define TCP_Check(a) ((a) == 0 || errno == ECONNRESET || errno ==
> ENOTCONN)
> >#endif
> >
> >Do you think it is ok to commit it to trunk ?
> >
> >Thank you
> >*
> >
> >--0016e659f6d29162560487e1a818
> >Content-Type: text/html; charset=ISO-8859-1
> >Content-Transfer-Encoding: quoted-printable
> >
> >Hello,<br><br><p>
> >I am testing Varnish (<a class=3D"changeset" href=3D"
> http://varnish-cache.o=
> >rg/changeset/4576" title=3D"Tell FlexeLint=20
> >that we ignore returnvalues on purpose.">r4576</a>) in Solaris 10 5.10=20
> >Generic_120011-14 sun4v sparc SUNW,Sun-Fire-T2000. <br>
> >We are planning to use a cache like Varnish or Squid and I have followed
> > the instructions in <a class=3D"ext-link" href=3D"
> http://letsgetdugg.com/2=
> >009/12/04/varnish-on-solaris/"><span class=3D"icon">=A0</span>
> http://letsge=
> >tdugg.com/2009/12/04/varnish-on-solaris/</a>
> ></p>
> >
> >I have the same LINGER crash like in <a class=3D"closed ticket"
> href=3D"htt=
> >p://varnish-cache.org/ticket/660" title=3D"defect: Varnish LINGER
> > crash in tcp.c (closed: duplicate)">#660</a> that has the same root=20
> >cause in <a class=3D"new ticket" href=3D"
> http://varnish-cache.org/ticket/64=
> >9" title=3D"defect: Varnish LINGER
> > crash on Solaris (new)">#649</a> <br><br>I have trying to fix the bug and
> =
> >I have found <strong>the problem is=20
> >that solaris setsockopt returns sometimes EINVAL</strong> when it is no=20
> >invalid parameters, problem found in Java JVM in Solaris:<br>
> >* <a class=3D"ext-link" href=3D"
> http://bugs.sun.com/bugdatabase/view_bug.do=
> >?bug_id=3D6378870"><span class=3D"icon">=A0</span>
> http://bugs.sun.com/bugda=
> >tabase/view_bug.do?bug_id=3D6378870</a>
> >  <br>
> >* <a class=3D"ext-link" href=3D"
> http://bugs.opensolaris.org/bugdatabase/vie=
> >w_bug.do;jsessionid=3D7141b1811572e415779f4a711a96?bug_id=3D6850464"><span
> =
> >class=3D"icon">=A0</span>
> http://bugs.opensolaris.org/bugdatabase/view_bug.d=
> >o;jsessionid=3D7141b1811572e415779f4a711a96?bug_id=3D6850464</a>
> ><br><br>I think the solution is to changed the definition of
> "TCP_Chec=
> >k" in <b>libvarnish.h</b> only for Solaris<strong><br><br><span
> style=
> >=3D"font-family: courier new,monospace;">/* In Solaris OS, errno =3D=3D
> EIN=
> >VAL is OK because setsockopt(3SOCKET) call returns EINVAL when the
> connecti=
> >on is reset. */</span><br style=3D"font-family: courier new,monospace;">
> ><span style=3D"font-family: courier new,monospace;">#if defined (__SVR4)
> &a=
> >mp;& defined (__sun) </span><br style=3D"font-family: courier
> new,monos=
> >pace;"><span style=3D"font-family: courier new,monospace;">#define
> TCP_Chec=
> >k(a) ((a) =3D=3D 0 || errno =3D=3D ECONNRESET || errno =3D=3D ENOTCONN ||
> e=
> >rrno =3D=3D EINVAL)</span><br style=3D"font-family: courier
> new,monospace;"=
> >>
> ><span style=3D"font-family: courier new,monospace;">#else</span><br style=
> >=3D"font-family: courier new,monospace;"><span style=3D"font-family:
> courie=
> >r new,monospace;">#define TCP_Check(a) ((a) =3D=3D 0 || errno =3D=3D
> ECONNR=
> >ESET || errno =3D=3D ENOTCONN)</span><br style=3D"font-family: courier
> new,=
> >monospace;">
> ><span style=3D"font-family: courier new,monospace;">#endif</span><br
> style=
> >=3D"font-family: courier new,monospace;"><br><span style=3D"font-weight:
> no=
> >rmal;">Do you think it is ok to commit it to trunk ?<br><br>Thank
> you<br></=
> >span></strong>
> >
> >--0016e659f6d29162560487e1a818--
> >
> >
> >--===============8061307876579297173==
> >Content-Type: text/plain; charset="us-ascii"
> >MIME-Version: 1.0
> >Content-Transfer-Encoding: 7bit
> >Content-Disposition: inline
> >
> >_______________________________________________
> >varnish-dev mailing list
> >varnish-dev at varnish-cache.org
> >http://lists.varnish-cache.org/mailman/listinfo/varnish-dev
> >--===============8061307876579297173==--
> >
>
> --
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> phk at FreeBSD.ORG         | TCP/IP since RFC 956
> FreeBSD committer       | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-dev/attachments/20100531/c4000acf/attachment-0003.html>


More information about the varnish-dev mailing list