Problems with varnishncsa and duplicated ReqEnd (tickets #633, #685 and #709) - Solaris 10

Jorge Díaz jdzstz at gmail.com
Tue Jun 1 20:09:38 CEST 2010


Hello,

About bugs of varnishncsa in tickets
#633<http://varnish-cache.org/ticket/633>and
#685 <http://varnish-cache.org/ticket/685>  I have modified varnishncsa.c,

It ignores duplicated ReqEnd and dump bogus in stderr ¿may be changed to
system error log???

   1. Get XID from ReqEnd
   2. If XID == 0 then ignore ReqEnd
   3. If XID != = but bogus == 1 then print bogus request in standard error.


It works me ok in Solaris 10, and avoid coredumps.


Thank you



2010/5/31 Jorge Díaz <jdzstz at gmail.com>

> 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 using now Apache with mod_cache and we are planning to switch to
> Varnish, I have followed the instructions in
> http://letsgetdugg.com/2009/12/04/varnish-on-solaris/<http://letsgetdugg.com/2009/12/04/varnish-on-solaris/>
>
> After fixing the LINGER problem (ticket #649<http://varnish-cache.org/ticket/649>), varnish seems to work ok, we have also make some little tests in
> production enviroment, switching to Varnish during 3 hours in one of our
> eight Apache Servers.
>
> The only problem that is stopping us to making the change are some strange
> behaviour with varnishncsa.
> Original varnishncsa.c version generate coredumps and fixed file with #685<http://varnish-cache.org/ticket/685>workaround generates a lot of bogus requests.
>
> After some investigations I have found that the root of the problems is a
> duplicated ReqEnd record when there is a SessionClose EOF, I have filled the
> bug in new ticket #709 <http://varnish-cache.org/ticket/709>  The
> duplicated ReqEnd has no XID
>
> Tickets #633 <http://varnish-cache.org/ticket/633> and #685<http://varnish-cache.org/ticket/685>
> they are almost the same. I think it would be nice to control the bogus
> requests:
>
>    1. Get XID from ReqEnd
>    2. If XID == 0 then ignore ReqEnd
>    3. If XID != = but bogus == 1 then print bogus request in standard
>    error.
>
> I attach to the mail two varnishncsa.c fixes:
>
>    1. using workaround of #685  and adding extra logging
>    2. retrieving xid and testing "if (!lp->bogus && lp->xid > 0)" and
>    adding extra logging
>
> I have to change the extra logging to stderr.
>
>
> *I need help with #709 <http://varnish-cache.org/ticket/709> , somebody
> has any clue about SessionClose EOF problem?? This issue is reported also in
> varnish-misc list:
>
> http://lists.varnish-cache.org/pipermail/varnish-misc/2009-December/003395.html
> *
> I attach my preproduction logs (with a BOGUS error and a duplicated ReqEnd)
> and my modified varnishncsa:
>
>     7 TxHeader     c X-backend: prepro
>     7 ReqEnd       c 1937859944 1275326684.354095459 1275326684.376112938
> 0.000319004 0.021736622 0.000280857
>     7 SessionClose c EOF
>     7 ReqEnd       c 0 1275326684.386904716 1275326684.386904716
> 0.010791779 0.000000000 0.000000000
>     7 StatSess     c 212.170.156.253 31325 0 1 1 0 0 1 288 0
>
> Thank you
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.varnish-cache.org/pipermail/varnish-dev/attachments/20100601/2d027711/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: varnishncsa.c
Type: application/octet-stream
Size: 14602 bytes
Desc: not available
URL: <http://lists.varnish-cache.org/pipermail/varnish-dev/attachments/20100601/2d027711/attachment-0001.obj>


More information about the varnish-dev mailing list