Re: sendfile changes

2007-05-13 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], =?ISO-8859-1?Q?Andreas_R
=F8sdal?= writes:
Hello,
I have a question about a recent change done in SVN trunk:
http://varnish.projects.linpro.no/changeset/1417

Make the sendfile threshold inifinity for now, we have evidence of
sendfile not doing it's job in a number of operating system (-versions ?)

What does not doing it's job mean here? Sending corrupt or incomplete 
data?

One, the other or even Both, depending on your kernel.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: sendfile changes

2007-05-13 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], =?ISO-8859-1?Q?Andreas_R
=F8sdal?= writes:
On Sun, 13 May 2007, Poul-Henning Kamp wrote:
 In message [EMAIL PROTECTED], =?ISO-8859-1?Q?Andreas_R
 =F8sdal?= writes:
 Hello,
 I have a question about a recent change done in SVN trunk:
 http://varnish.projects.linpro.no/changeset/1417

 Make the sendfile threshold inifinity for now, we have evidence of
 sendfile not doing it's job in a number of operating system (-versions ?)

 What does not doing it's job mean here? Sending corrupt or incomplete
 data?

 One, the other or even Both, depending on your kernel.

Yes, I've seen both. What is the best workaround for this problem?
Should I install the varnish from SVN trunk?

Just set the parameter sendfile_threshold to -1



-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: question marks in the url

2007-06-13 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Bria
n Ott writes:
We have urls: http://.yyy.com/test.jpg?tsp=11301981

the tsp gets updated when the picture is updated, its a timestamp.
this way the user doesnt have to refresh their browser to see new
pictures.

varnish doesnt cache urls with ? in them, it appears.

Varnish doesn't care about '?', but if you have cookies it will
not cache.


-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Error

2007-09-26 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], sure
ndar p writes:


Hi,
When i compile the code,i got this error
Expected positive indentation.

what is the actual error it is?

file and line information, please ?

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Varnish Style Guide

2007-10-22 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Luke M
acpherson writes:

Is there any documentation of code style for varnish?

I did see an early post on naming conventions, but the code base
doesn't actually reflect that early description any more, and some of
the conventions I've not been able to reverse-engineer (I find the
capitalization strategy particularly confusing).

The starting point is FreeBSD's style(9) manual page, and yes, the
capitalization is not consistent.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Support Cache-Control no-cache/private as per RFC2616 ?

2007-11-20 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], =?iso-8859-1?Q?Dag-Erling_Sm=F8rg
rav?= writes:

The closest there is to a formal description of what Varnish is and
how it should behave is the Edge Architecture Specification, which
unfortunately is far less impressive than its title.

ESI is indeed not impressive, but it is also aimed at a very narrow
market which Varnish is not (3rd party but non-adverserial caching)

The only truly precise way to characterize varnish, IMO, is A
webserver that uses HTTP to get at its content.

That description on the other hand, is so general as to be almost
without meaning.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Support Cache-Control no-cache/private as per RFC2616 ?

2007-11-20 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Mark Nottingha
m writes:

On 2007/11/21, at 4:54 AM, Poul-Henning Kamp wrote:
 The only truly precise way to characterize varnish, IMO, is A
 webserver that uses HTTP to get at its content.

This is a good characterisation. It would probably be more correct to  
say gateway than webserver, but most casual readers won't know  
what that means.

Well, I specifically use webserver because Varnish should be
RFC2616 compliant as one, seen from the clients side.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: development efforts on the Solaris side.

2008-01-08 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Theo Schlossnagle
 writes:
Hi guys,

I'd really like to be able to contribute some of the improvements  
we've made to varnish back.  Is there a way I can get access to  
commit.  I'd be happy to stay in my own branch.  My current patch set  
is unwieldy and I'm very tempted to just start my own repos... That,  
of course, seems silly.  I've fixed up (removed) some of the gccism in  
favor or more portability (#include over -include).  I've fixed a few  
bugs, made the VCC line a but smarter and more accepting of non gcc  
compiler, I've added a portfs acceptor and built a storage_umem  
allocator facility that rides on Solaris' excellent libumem (highly  
scalable allocator) which we also ported to run on Linux and FreeBSD  
(and Mac OS X): https://labs.omniti.com/trac/portableumem

Next steps?

Can you mail me a link to the patch ?

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Caching issue

2008-03-11 Thread Poul-Henning Kamp

Is this FAQ fodder ?

In message [EMAIL PROTECTED], =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?=
 writes:
Poul-Henning Kamp [EMAIL PROTECTED] writes:
 You could try the following in vcl_recv:

  if (req.http.accept-encoding) {
  set req.http.accept-encoding =3D regsub(
  req.http.accept-encoding,
  gzip, *, gzip,);
  }

 to get rid of the space(s), but it is not guaranteed to get all cases.

 Alternatively, the more brutal:

  if (req.http.accept-encoding ~ gzip) {
  set req.http.accept-encoding =3D gzip;
  } else {
  unset req.http.accept-encoding;
  }

 Will get the desired effect in all cases, provided your backend does
 not attempt deflate as fallback.

A slightly more complex solution, to cover all bases without losing
functionality:

set req.http.accept-encoding =3D regsub(req.http.accept-encoding,
^ *gzip, *deflate *$, gzip,deflate);
set req.http.accept-encoding =3D regsub(req.http.accept-encoding,
^ *deflate, *gzip *$, gzip,deflate);

This should take care of 99% of cases; I don't know of any browser that
supports only one of the two, or supports anything *but* those two.

However, Apache only supports gzip, so Poul-Henning's solution is
sufficient in this case.

DES
--=20
Dag-Erling Sm=C3=B8rgrav
Senior Software Developer
Linpro AS - www.linpro.no


-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: varnish consuming too much memory?

2008-03-12 Thread Poul-Henning Kamp

i'm wondering how varnish determines how much memory it should  
consume...

It uses all memory it can for caching.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Move re test method into libvcl

2008-04-12 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Paul Nasrat w
rites:

 The attached patch against trunk moves and renames the re_test  
 method into vcc_string.c so libvcl could be used outside of varnishd.

-int
-VRT_re_test(struct vsb *sb, const char *re, int sub)
-{

Your patch breaks the convention that compiled code only calls VRT_*
functions, you need to keep a VRT_re_test() wrapper around for that
reason.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Upload Buffering and x-sendfile

2008-04-20 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Trey Long writ
es:

Does varnish support upload (and download) buffering?

Since varnish handles all of the traffic going to and from my host I
was wondering if it buffered the client when they were uploading a
large post body or downloading a large portion of HTML.

Downloading: yes, we buffer.

Uploading: no, we don't.

Does varnish support x-sendfile type responses?

Not at present, but it sounds like it could be useful, I'll add it
to the post-2.0 ideas list.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: mmap'd file vs. swap

2008-05-05 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Brian Smith writes:

My understanding is that Varnish uses a mmap'd file, but it doesn't re-use 
the file's contents when it is restarted.

Correct.

 Why does Varnish use a mmap'd file 
instead of just using regular virtual memory (swap) directly? 

For many small reasons, none of which are particularly good.

You can use regular VM by enabling the malloc storage method
and various people report good success with that.

I would think 
that the operating system would be more eager to write the data to the 
mmap'd file than it would be to write to swap; on a system where the hot 
cache entries can be stored on disk, it would seem that the swap-based 
method would be superior.

Well, it's slightly more complex than that, we mmap with the
MAP_NOSYNC flag so it should be about a wash.


-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Mapping VCL variables to internal variables

2008-05-22 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Charles Curley writes:

I'd like to set a variable in VCL, and then use it in a modification
of Varnish. Having added to req.hash with something like:

sub vcl_hash
{
if (req.http.Accept-Encoding ~ gzip) {
set req.hash +=3D gzip;
} else if (req.http.Accept-Encoding ~ deflate) {
set req.hash +=3D deflate;
}
}

where do I find that in Varnish itself?

See cache_center.c::cnt_lookup() [search for VCL_hash_method(sp);],
and cache_hash.c::HSH_Copy(), HSH_Compare() and HSH_Lookup().

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: about big flv files

2008-06-16 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], chen
 xiaoyong writes:

Hey guys,
  I'm thinking about big flv files in varnishd. Now,many web sites support
video, Typically,  these files more than 5M.

There is no intrinsic limit on object size in varnish, but it is not
particular geared towards such use.  The major stumbling block is that
Varnish will fetch the entire file from the backend before starting
transmission to the client.

  I don't konw what's better ..  split file in function fetch_straight ?
or do nothing , set up tcp parameters?

I'm not sure I understand what you're trying to say here ?

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: HTCP Purger

2008-06-23 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Artur Bergman 
writes:
On Jun 23, 2008, at 1:26 AM, Poul-Henning Kamp wrote:

 In message [EMAIL PROTECTED],  
 Artur Bergman
 writes:

 I have written an multicast HTCP purger, essentially a perl script
 that listens to HTCP purges and then purges from the local varnish.

 So this is only for HTCP CLR requests ?

Yes

 We should probably integrate support for that in Varnish (after 2.0
 is out the door!)

Awww, that is no fun :), would you take ifdefed patches?

Sure.

 I suggest we add your perl script to the wiki somewhere, as an  
 interrim
 workaround.

Can I get a commit bit and commit it into the tools directory? I hate  
having code on a wiki.

I'd really prefer to not put temporary tools in the source tree,
because that way it gets an official part of the release and all
that jazz.

How long is it anyway ?  Can you mail it to me ?

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: varnish version question

2008-07-17 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Olivier Beau writes:

- Which version of varnish is good for production ?

Hi Olivier,

We are getting very close to a 2.0 release, so right now the best code
we have is the trunk version from subversion.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Monitoring varnish

2008-07-21 Thread Poul-Henning Kamp

Hi Paul,

I have no problems with providing likns on the wiki page if you suggest
some text.

Poul-Henning


In message [EMAIL PROTECTED], Paul Millar writes:
Hi all,

Just to introduce myself, I'm working on a project called MonAMI.  It does 
monitoring: aiming to be plumbing between the thing(s) you want to monitor 
and the monitoring system itself.  More details here:
   http://monami.sourceforge.net/

A little while ago, someone asked for a plugin for Varnish, which turned out 
to be very simple to implement.

I noticed the wiki page has a few links for monitoring (under Performance 
page).

I have a few questions:

   would it be appropriate to add a link to MonAMI?  

   would anyone be interested in checking whether the plugin is gathering 
 all 
the correct information and presenting it correctly?

For the second part, it would be really good to get feedback from the Varnish 
developers as I don't run Varnish myself beyond a simple toy setup, (just to 
verify the plugin works correctly).

Cheers,

Paul.



___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: n_smf_large so large -- varnish-dev Digest, Vol 28, Issue 1

2008-07-21 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], chen
 xiaoyong writes:


I found that there are reasons for this phenomenon because it is negative.
Not just n_smf_large, including n_smf_frag have this phenomenon too.

 Perhaps some code of  storage_file.c should be some more stringent

This is a know problem, and basically we decided that perfect
statistics were not as important as fast speed.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Fresh patch for Solaris

2008-08-11 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Theo Schlossnagle
 writes:

http://lethargy.org/~jesus/misc/varnish-solaris-trunk-3071.diff

OK, I've picked the obvious stuff out.

Various questions about the rest:

Doesn't Solaris have fcntl(F_SETLK) as mandated by POSIX ?
flock() is not a standardized API, and I havn't seen a system yet
which supports it, which doesn't also have fcntl(F_SETLK), so I
would rather not mess up the source with a pointless check.

Do you know for sure that sendfile on Solaris has no reference to the
relevant parts of the file when it returns ?  Otherwise it is not safe
to use.


Why is the extra include of sys/statvfs.h necessary in storage_file.c ?


Is there a reason to name the shared object .so instead of .o or is it
just cosmetics ?


In cache_acceptor.c, please implement the -pass function which does
the port_send() call.


Why the initialization in mgt_child.c ?

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Fresh patch for Solaris

2008-08-11 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Theo Schlossnagle
 writes:

Next pass:

http://lethargy.org/~jesus/misc/varnish-solaris-trunk-3080.diff

You still have the err.h compat stuff, that's not necessary any more,
I removed the two uses of err().

Why is the tcp.c patch necessay ?


You have not answered my questions about .so and sendfile ?

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Fresh patch for Solaris

2008-08-11 Thread Poul-Henning Kamp

Sorry for the comment at the end of my prevous email, got your
emails in reverse order here :-)

 Doesn't Solaris have fcntl(F_SETLK) as mandated by POSIX ?

Ah, good catch.  That wasn't a patch for Solaris.  It was for Linux.   
We've run into some issues with flock being more reliable than fcntl  
on Linux under high concurrency environments. 

We're not even remotely close to concurrency, so I'd prefer to stick
with fcntl until we see any actual problems.

 Is there a reason to name the shared object .so instead of .o or is it
 just cosmetics ?

The Sun Studio toolchain barfs on the .o.  It knows better [...]

Ok, fair enough.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: waitpid EINTR issue in varnishd ( testcases)

2008-08-15 Thread Poul-Henning Kamp

I have committed the EINTR patch and, I hope, fixed the two testcases,
please check this and send me your latest solaris patch.

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Bug in 1.1.2: Multiple headers stripped (oops)

2008-08-19 Thread Poul-Henning Kamp

Hi Adrian,

Good catch.

I created a ticket (#292, now closed) for this because we number
our regression tests by ticket number.

Fixed in #3110.

Poul-Henning

I found the reason why I hit this bug, but I need some tips to  
understand how to debug what's happening in the VCL code. First, I'll  
explain the bug:

1) My default.vcl is configured to strip the Cookie header in  
vcl_recv like this:

sub vcl_recv {
 if(req.http.Cookie) {
 remove req.http.Cookie;
 lookup;
 }
}

2) The Connection header sent from the client browser specified that  
the TE header should be stripped, and was so marked in position 13  
of http_DoConnection::hp-hdf, indicating that header at index 13  
should be skipped when headers are copied into the backend request.

3) The VCL code ran to strip the cookie header, removed it, and  
shifted the other elements in the array UP one position. The Host  
header followed TE at position/index 14, and became position/index 13.

4) The code for copying/morphing the client request to the backend  
ran, and skipped position/index 13, which was the Host header.

5) Varnish kindly noticed that there was no Host header present in  
the backend connection, and added one of it's own using the IP  
address of the backend server as the content of that header.

6) The incorrect document was fetched for the backend because the  
Host header was not correct.
-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: please revise document or code

2008-10-10 Thread Poul-Henning Kamp

done.

http://varnish.projects.linpro.no/wiki/VCLExampleLongerCaching
section *How it should work*
   set obj.ttl = 1w;
maybe changed to
   set obj.ttl = 7d;
or in function static double TimeUnit(struct tokenlist *tl)  add w Id

-- 
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-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Bug : Assert error in exp_timer() | Child not responding to ping, killing it.

2008-12-12 Thread Poul-Henning Kamp

Hi Benjamin, I'll look at it.

Just wanted to point this out in the mean time:


 if (req.url ~ ttl=) {
if (req.url ~ ttl=001) { set obj.ttl=3600s; }
if (req.url ~ ttl=002) { set obj.ttl=7200s; }
if (req.url ~ ttl=003) { set obj.ttl=10800s; }
if (req.url ~ ttl=006) { set obj.ttl=21600s; }
if (req.url ~ ttl=009) { set obj.ttl=32400s; }
if (req.url ~ ttl=012) { set obj.ttl=43200s; }
if (req.url ~ ttl=015) { set obj.ttl=54000s; }
if (req.url ~ ttl=018) { set obj.ttl=64800s; }
if (req.url ~ ttl=021) { set obj.ttl=75600s; }
if (req.url ~ ttl=024) { set obj.ttl=86400s; }
if (req.url ~ ttl=096) { set obj.ttl=345600s; }
if (req.url ~ ttl=168) { set obj.ttl=604800s; }
if (req.url ~ ttl=672) { set obj.ttl=2419200s; }

VCL supports other units of time than seconds, so for
increased readability, you could write:

set obj.ttl = 1h;
set obj.ttl = 2h;
...
set obj.ttl = 1d;
...
set obj.ttl = 1w;
set obj.ttl = 4w;

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Bug: Child not responding to ping, killing it.

2008-12-18 Thread Poul-Henning Kamp
In message 494a2cb6.2010...@octopuce.fr, Benjamin Sonntag writes:

I continue to investigate this problem. It seems that varnish is really
keeping ESTABLISHED connexions to the backend for a verryve verry verrry
long time :

Varnish does not close backend connections, it leaves them open until
the backend times them out.

How you TCP connections get out of sync between varnish host and backend
host I have no idea...


-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: What's the best way to give feedback for future Varnish features?

2009-03-11 Thread Poul-Henning Kamp
In message 4a05e1020903111417w2c175418rd9bcf7a3aef10...@mail.gmail.com, Cloud
e Porteus writes:

Our testing with Varnish is going great, but the features around ESI
that haven't been implemented are going to make things a little bit
harder than I had hoped. I was reading the PostTwoShoppingList and saw
a request (please tell us which!) after more ESI features, but I'm not
sure how to voice my preference. 

Get a wiki login[1], edit the page.

[1] They are free and we happily give them away, but you have to ask
so we kan keep spammers away.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: accept_fd_holdoff second/millisecond confusion

2009-03-20 Thread Poul-Henning Kamp

Fixed, thanks!

Poul-Henning

In message 180e6a10903201237y1e86bc00vdd7c7b473a996...@mail.gmail.com, Eden L
i writes:
Hi all,

We ran into a situation where our backend held connections open for so
long that we ran into the open file limit.  After clearing up the
backend and ensuring, varnish never came back and we had to restart it
in order for it to start relaying connections again.

Flipping on debug mode shows the error Too many open files when
accept(2)ing. Sleeping. which should sleep for 50 milliseconds
(according to param.show).  Instead it seems to be sleeping for
50*1000 *seconds* (13 hours).  Looking at the code, it appears that
this is either a doc bug or a code bug.  I was able to fix the root
issue with this patch:

--- a/varnish-2.0.1/bin/varnishd/cache_acceptor.c   2008-10-17
11:59:49.0 -0700
+++ b/varnish-2.0.1/bin/varnishd/cache_acceptor.c   2009-03-20
12:16:15.0 -0700
@@ -228,7 +228,7 @@
case EMFILE:
VSL(SLT_Debug, ls-sock,
Too many open files when
accept(2)ing. Sleeping.);
-
TIM_sleep(params-accept_fd_holdoff * 1000.0);
+
TIM_sleep(params-accept_fd_holdoff * 0.001);
break;
default:
VSL(SLT_Debug, ls-sock,

Is this the right fix?  Should I create a ticket in trac for this?
We're getting around it now by setting the max open file limit and
listen_depth appropriately so that varnish never gets to this point,
but it'd be nice if this was fixed in case we ever accidentally get
here again.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Huge number for N struct vbe_conn

2009-05-20 Thread Poul-Henning Kamp
In message 4a05e1020905200849s3c79f8e3n498b659341e2f...@mail.gmail.com, Cloud
e Porteus writes:

The vbe_conn is flickering between 0-2 and 18446744073709551615. See
varnishstat below.

Any ideas what might cause this?

Yes, it is an unlocked counter, and you had a race updating it:

18446744073709551615 - 2^64 = -1

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: VCL compiler coverage test FAILED

2009-06-09 Thread Poul-Henning Kamp
In message 48eba6130906011847x6bea3956nc8951455dfcba...@mail.gmail.com, Beau 
Burrier writes:

## v1 VCL compilation failed (as expected)
### v1 CLI STATUS 200
 v1 VCL compilation got 200 expected 106
 TEST FILE: ././tests/v00017.vtc
 TEST DESCRIPTION: VCL compiler coverage test: vcc_acl.c
FAIL: ./tests/v00017.vtc

Can you try to run that test by hand with a -v flag ?
cd .../bin/varnishtest
./varnishtest -v tests/v00017.vtc

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Handling Dynamic Backend Redirects

2009-06-11 Thread Poul-Henning Kamp
In message 4a305b14.7080...@caringo.com, Mike Melson writes:

Is there anyway to catch  follow a 301 redirect from a backend server 
to a host that has NOT been defined as a backend in varnish?

No.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Backend polling not working

2009-10-21 Thread Poul-Henning Kamp
In message 4aded57c.3020...@upfrontsystems.co.za, Izak Burger writes:
Hello again,

I've discussed this issue on zope-dev. The agreement seems to be that 
there is some ambiguity in the HTTP1.1 specification, but that the 
general accepted interpretation is that if the other end closes the 
connection you should close your end as well (it signals a timeout).

There is also no browser implementation out there that does half-closing 
(except where SSL is involved). None that I know of anyway.

I wasn't quite sure which way to interpret the text originally so
I did it the way that was most convenient for the code.

I'll change it.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: bug in esi:include handling (with patch)

2009-11-18 Thread Poul-Henning Kamp
In message 19203.62532.605771.461...@bio-iisrv1.bio.ic.ac.uk, Bob MacCallum w
rites:

Oh, well, at least great minds think alike.

Are includes like this supposed to work:

esi:include src=http://some.other.site/stuff; /

It only works if you have a backend defined for that server.

Look at bin/varnistest/tests/e6.vtc for an example.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: HSH_Lookup entered multiply - why could that happen?

2009-12-09 Thread Poul-Henning Kamp
In message 4b1ffa7d.3020...@schokola.de, Nils Goroll writes:
Hi,

what I get is this (URL removed to protect the innocent):

48 VCL_call c recv lookup
48 VCL_call c hash hash
48 Debugc 24115201202978841 8d6278 on waiting list 8b72e0 ##URL##

What happens here is that another client/thread holds this object
busy while it is being fetched from the backend.  Once the object
is marked unbusy, the waiting threads are relased, and calls hash
again.

I'm not quite sure you you keep hitting it so many times, it smells
like som weird situation where the object takes a long time to fetch,
has no cacheability, but does not get marked pass in vcl_fetch ?

Poul-Henning

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: scheduling off the waiting list

2009-12-28 Thread Poul-Henning Kamp
In message 4b39210f.7080...@schokola.de, Nils Goroll writes:

So basically there are two different scenarios when hsh_rush is called.

* Trigger delivery of an object which just got unbusied
* and trigger delivery of more sessions which did not fire in the first round

The basic point here is that we do not want to unleash 500 waiting sessions
when the object is unbusied, so we release a few, and when they are done
they each release a few etc.

Sort of inspired by TCP-slowstart, but not half as advanced.

I'm not entirely happy with how this works in practice, but within the
current reach, I have no better ideas.

Grace mode helps a lot, if you can use it.

Poul-Henning

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: r4480 - trunk/varnish-cache/bin/varnishncsa

2010-02-01 Thread Poul-Henning Kamp
In message d38199ba-78a0-4c7a-a26a-a24d070b6...@develooper.com, =?iso-8859-1?
Q?Ask_Bj=F8rn_Hansen?= writes:

On Feb 1, 2010, at 1:35, Anders Nordby wrote:

 I must object to this change, as I use varnishncsa -b extensively to
 pull out reports on missed objects being fetch from the backends too
 often. Please revert this change, as varnishncsa -b has its use.

I don't know why it was removed or if there's a good alternative,
but I've found the -b option very useful, too.

Well, the code to implement it full was never there, and people were
reporting core dumps because of it, so we figured we would make the
non-support for -b explicit, until the code could be written.

There are no objections to supporting it, it's just code to be
written by somebody... (nudge, nudge, wink, wink...)

Poul-Henning


-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Literal ip4/6 addresses in VCL

2010-03-07 Thread Poul-Henning Kamp
In message 4b93b0ab.4080...@schokola.de, Nils Goroll writes:

My main question is if they should be tokenized as CSTRs or rather as new 
tokens, e.g. of token type IP (not to be confused with variable type IP).

The syntax for this is already decided, just not implemented:

set client.ip = IP(req.http.x-forwarded-for);

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev


Re: Literal ip4/6 addresses in VCL

2010-03-07 Thread Poul-Henning Kamp
In message 4b93b6ea.9010...@schokola.de, Nils Goroll writes:

 The syntax for this is already decided, just not implemented:
 
  set client.ip = IP(req.http.x-forwarded-for);

Thank you for pointing this out, so I am going to implement this syntax for 
the 
case where runtime conversion is needed.

Do you have an opinion regarding the suggestion for the VCL compile time case?

There should not be two different syntaxes, the above should be used in
both cases.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@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.
___
varnish-dev mailing list
varnish-dev@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-dev