[PATCH] add a least-connection director

Federico G. Schwindt fgsch at lodoss.net
Thu Mar 29 12:38:58 CEST 2012


No, will check tonight. Was fine last time I checked.

Tollef Fog Heen <tfheen at varnish-software.com> wrote:

>]] Federico G. Schwindt
>
>Hi,
>
>> On Sat, 21 Jan 2012 10:14:27 +0000
>> "Federico G. Schwindt" <fgsch at lodoss.net> wrote:
>> 
>> > Hi,
>> > 
>> > The diff below adds a least-connection director based on the random director.
>> > Documentation and tests included.
>> > Comments? OKs?
>> 
>> Updated diff against trunk.
>
>Fails for me on make distcheck, any idea why?
>
>**** top   0.0 macro def varnishd=../varnishd/varnishd
>**** top   0.0 macro def pwd=/home/tfheen/varnish/bin/varnishtest
>**** top   0.0 macro def topbuild=/home/tfheen/varnish/bin/varnishtest/../..
>**** top   0.0 macro def bad_ip=10.255.255.255
>**** top   0.0 macro def tmpdir=/tmp/vtc.27004.4c2262bf
>*    top   0.0 TEST tests/v00038.vtc starting
>***  top   0.0 varnishtest
>*    top   0.0 TEST Test least-connection director
>***  top   0.0 server
>**   s1    0.0 Starting server
>**** s1    0.0 macro def s1_addr=127.0.0.1
>**** s1    0.0 macro def s1_port=53652
>**** s1    0.0 macro def s1_sock=127.0.0.1 53652
>*    s1    0.0 Listen on 127.0.0.1 53652
>***  top   0.0 server
>**   s2    0.0 Starting server
>**   s1    0.0 Started on 127.0.0.1 53652
>**** s2    0.0 macro def s2_addr=127.0.0.1
>**** s2    0.0 macro def s2_port=45207
>**** s2    0.0 macro def s2_sock=127.0.0.1 45207
>*    s2    0.0 Listen on 127.0.0.1 45207
>***  top   0.0 server
>**   s3    0.0 Starting server
>**   s2    0.0 Started on 127.0.0.1 45207
>**** s3    0.0 macro def s3_addr=127.0.0.1
>**** s3    0.0 macro def s3_port=35684
>**** s3    0.0 macro def s3_sock=127.0.0.1 35684
>*    s3    0.0 Listen on 127.0.0.1 35684
>***  top   0.0 varnish
>**   s3    0.0 Started on 127.0.0.1 35684
>**   v1    0.0 Launch
>***  v1    0.0 CMD: cd ${pwd} && ${varnishd} -d -d -n /tmp/vtc.27004.4c2262bf/v1 -l 10m,1m,- -p auto_restart=off -p syslog_cli_traffic=off -a '127.0.0.1:0' -S /tmp/vtc.27004.4c2262bf/v1/_S -M '127.0.0.1 48915' -P /tmp/vtc.27004.4c2262bf/v1/varnishd.pid -sfile,/tmp/vtc.27004.4c2262bf/v1,10M 
>***  v1    0.0 CMD: cd /home/tfheen/varnish/bin/varnishtest && ../varnishd/varnishd -d -d -n /tmp/vtc.27004.4c2262bf/v1 -l 10m,1m,- -p auto_restart=off -p syslog_cli_traffic=off -a '127.0.0.1:0' -S /tmp/vtc.27004.4c2262bf/v1/_S -M '127.0.0.1 48915' -P /tmp/vtc.27004.4c2262bf/v1/varnishd.pid -sfile,/tmp/vtc.27004.4c2262bf/v1,10M 
>***  v1    0.0 PID: 27026
>***  v1    0.0 debug| Platform: Linux,3.2.0-2-amd64,x86_64,-sfile,-smalloc,-hcritbit\n
>***  v1    0.0 debug| 200 239     \n
>***  v1    0.0 debug| -----------------------------\n
>***  v1    0.0 debug| Varnish Cache CLI 1.0\n
>***  v1    0.0 debug| -----------------------------\n
>***  v1    0.0 debug| Linux,3.2.0-2-amd64,x86_64,-sfile,-smalloc,-hcritbit\n
>***  v1    0.0 debug| \n
>***  v1    0.0 debug| Type 'help' for command list.\n
>***  v1    0.0 debug| Type 'quit' to close CLI session.\n
>***  v1    0.0 debug| Type 'start' to launch worker process.\n
>***  v1    0.0 debug| \n
>**** v1    0.1 CLIPOLL 1 0x1 0x0
>***  v1    0.1 CLI connection fd = 10
>***  v1    0.1 CLI RX  107
>**** v1    0.1 CLI RX| jeewhbchriitfqnmdlljphjdymdhvwme\n
>**** v1    0.1 CLI RX| \n
>**** v1    0.1 CLI RX| Authentication required.\n
>**** v1    0.1 CLI TX| auth e11fc5df61935fc9b91e446bc02cbf070862be830d2db4bfe4ae5a6ccfbe0a33\n
>***  v1    0.1 CLI RX  200
>**** v1    0.1 CLI RX| -----------------------------\n
>**** v1    0.1 CLI RX| Varnish Cache CLI 1.0\n
>**** v1    0.1 CLI RX| -----------------------------\n
>**** v1    0.1 CLI RX| Linux,3.2.0-2-amd64,x86_64,-sfile,-smalloc,-hcritbit\n
>**** v1    0.1 CLI RX| \n
>**** v1    0.1 CLI RX| Type 'help' for command list.\n
>**** v1    0.1 CLI RX| Type 'quit' to close CLI session.\n
>**** v1    0.1 CLI RX| Type 'start' to launch worker process.\n
>**** v1    0.1 CLI TX| vcl.inline vcl1 << %XJEIFLH|)Xspa8P\n
>**** v1    0.1 CLI TX| backend s1 { .host = "127.0.0.1"; .port = "53652"; }\n
>**** v1    0.1 CLI TX| backend s2 { .host = "127.0.0.1"; .port = "45207"; }\n
>**** v1    0.1 CLI TX| backend s3 { .host = "127.0.0.1"; .port = "35684"; }\n
>**** v1    0.1 CLI TX| \n
>**** v1    0.1 CLI TX| \n
>**** v1    0.1 CLI TX| \tdirector lc least-connection {\n
>**** v1    0.1 CLI TX| \t\t{ .backend = s1; .weight = 1; }\n
>**** v1    0.1 CLI TX| \t\t{ .backend = s2; .weight = 1; }\n
>**** v1    0.1 CLI TX| \t\t{ .backend = s3; .weight = 1; }\n
>**** v1    0.1 CLI TX| \t}\n
>**** v1    0.1 CLI TX| \tsub vcl_recv {\n
>**** v1    0.1 CLI TX| \t\tset req.backend = lc;\n
>**** v1    0.1 CLI TX| \t\treturn (pass);\n
>**** v1    0.1 CLI TX| \t}\n
>**** v1    0.1 CLI TX| \n
>**** v1    0.1 CLI TX| %XJEIFLH|)Xspa8P\n
>***  v1    0.2 CLI RX  200
>**** v1    0.2 CLI RX| VCL compiled.
>**** v1    0.2 CLI TX| vcl.use vcl1
>***  v1    0.2 CLI RX  200
>**   v1    0.2 Start
>**** v1    0.2 CLI TX| start
>***  v1    0.3 debug| child (27052) Started\n
>***  v1    0.3 CLI RX  200
>***  v1    0.3 wait-running
>**** v1    0.3 CLI TX| status
>***  v1    0.3 debug| Child (27052) said Not running as root, no priv-sep\n
>***  v1    0.3 debug| Child (27052) said Child starts\n
>***  v1    0.3 debug| Child (27052) said SMF.s0 mmap'ed 10485760 bytes of 10485760\n
>***  v1    0.3 CLI RX  200
>**** v1    0.3 CLI RX| Child in state running
>**** v1    0.3 CLI TX| debug.xid 1000
>***  v1    0.4 CLI RX  200
>**** v1    0.4 CLI RX| XID is 1000
>**** v1    0.4 CLI TX| debug.listen_address
>**** v1    0.4 vsl|     0 CLI          - Rd vcl.load "vcl1" ./vcl.qB2JUoQd.so
>**** v1    0.4 vsl|     0 CLI          - Wr 200 36 Loaded "./vcl.qB2JUoQd.so" as "vcl1"
>**** v1    0.4 vsl|     0 CLI          - Rd vcl.use "vcl1"
>**** v1    0.4 vsl|     0 CLI          - Wr 200 0 
>**** v1    0.4 vsl|     0 CLI          - Rd start
>**** v1    0.4 vsl|     0 CLI          - Wr 200 0 
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f53931c70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f53929c70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f53921c70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f5390dc70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f538fdc70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f53905c70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f538f5c70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f538edc70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f538e5c70 start
>**** v1    0.4 vsl|     0 WorkThread   - 0x7f4f538ddc70 start
>**** v1    0.4 vsl|     0 CLI          - Rd debug.xid 1000 
>**** v1    0.4 vsl|     0 CLI          - Wr 200 11 XID is 1000
>***  v1    0.4 CLI RX  200
>**** v1    0.4 CLI RX| 127.0.0.1 37617\n
>**   v1    0.4 Listen on 127.0.0.1 37617
>**** v1    0.4 macro def v1_addr=127.0.0.1
>**** v1    0.4 macro def v1_port=37617
>**** v1    0.4 macro def v1_sock=127.0.0.1 37617
>***  top   0.4 client
>**   c1    0.4 Starting client
>***  top   0.4 client
>**   c2    0.4 Starting client
>***  c1    0.4 Connect to 127.0.0.1 37617
>***  top   0.4 delay
>***  top   0.4 delaying 0.5 second(s)
>***  c2    0.4 Connect to 127.0.0.1 37617
>***  c1    0.4 connected fd 15 from 127.0.0.1 50667 to 127.0.0.1 37617
>***  c2    0.4 connected fd 14 from 127.0.0.1 50668 to 127.0.0.1 37617
>***  c1    0.4 txreq
>**** c1    0.4 txreq| GET / HTTP/1.1\r\n
>**** c1    0.4 txreq| \r\n
>***  c2    0.4 txreq
>**** c2    0.4 txreq| GET / HTTP/1.1\r\n
>**** c2    0.4 txreq| \r\n
>***  c2    0.4 rxresp
>***  s1    0.4 accepted fd 5
>***  s1    0.4 rxreq
>**** s1    0.4 rxhdr| GET / HTTP/1.1\r\n
>**** s1    0.4 rxhdr| X-Varnish: 1001\r\n
>**** s1    0.4 rxhdr| Host: 127.0.0.1\r\n
>**** s1    0.4 rxhdr| \r\n
>**** s1    0.4 http[ 0] | GET
>**** s1    0.4 http[ 1] | /
>**** s1    0.4 http[ 2] | HTTP/1.1
>**** s1    0.4 http[ 3] | X-Varnish: 1001
>**** s1    0.4 http[ 4] | Host: 127.0.0.1
>**** s1    0.4 bodylen = 0
>***  s1    0.4 sema
>**** s1    0.4 Sema(r1) wait 1 of 3
>***  c1    0.4 rxresp
>**** v1    0.5 vsl|     0 CLI          - Rd debug.listen_address 
>**** v1    0.5 vsl|     0 CLI          - Wr 200 16 127.0.0.1 37617
>
>***  top   0.9 client
>**   c3    0.9 Starting client
>***  top   0.9 client
>**   c1    0.9 Waiting for client
>***  c3    0.9 Connect to 127.0.0.1 37617
>***  c3    0.9 connected fd 16 from 127.0.0.1 50671 to 127.0.0.1 37617
>***  c3    0.9 txreq
>**** c3    0.9 txreq| GET / HTTP/1.1\r\n
>**** c3    0.9 txreq| \r\n
>***  s2    0.9 accepted fd 7
>***  s2    0.9 rxreq
>**** s2    0.9 rxhdr| GET / HTTP/1.1\r\n
>**** s2    0.9 rxhdr| X-Varnish: 1003\r\n
>**** s2    0.9 rxhdr| Host: 127.0.0.1\r\n
>**** s2    0.9 rxhdr| \r\n
>**** s2    0.9 http[ 0] | GET
>**** s2    0.9 http[ 1] | /
>**** s2    0.9 http[ 2] | HTTP/1.1
>**** s2    0.9 http[ 3] | X-Varnish: 1003
>**** s2    0.9 http[ 4] | Host: 127.0.0.1
>**** s2    0.9 bodylen = 0
>***  s2    0.9 sema
>**** s2    0.9 Sema(r1) wait 2 of 3
>***  c3    0.9 rxresp
>**** v1    3.3 vsl|     0 CLI          - Rd ping
>**** v1    3.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009603 1.0
>**** v1    6.3 vsl|     0 CLI          - Rd ping
>**** v1    6.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009606 1.0
>**** v1    9.3 vsl|     0 CLI          - Rd ping
>**** v1    9.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009609 1.0
>**** v1   12.3 vsl|     0 CLI          - Rd ping
>**** v1   12.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009612 1.0
>**** v1   15.4 vsl|     0 CLI          - Rd ping
>**** v1   15.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009615 1.0
>---- c2   15.4 HTTP rx timeout (fd:14 15000 ms)
>---- c1   15.4 HTTP rx timeout (fd:15 15000 ms)
>*    top  15.4 RESETTING after tests/v00038.vtc
>**   s1   15.4 Waiting for server
>**** s1   15.4 macro undef s1_addr
>**** s1   15.4 macro undef s1_port
>**** s1   15.4 macro undef s1_sock
>**   s2   15.4 Waiting for server
>**** v1   15.5 vsl|    17 BereqRequest b GET
>**** v1   15.5 vsl|    17 BereqURL     b /
>**** v1   15.5 vsl|    17 BereqProtocol b HTTP/1.1
>**** v1   15.5 vsl|    17 BereqHeader  b X-Varnish: 1002
>**** v1   15.5 vsl|    17 BereqHeader  b Host: 127.0.0.1
>**** v1   15.5 vsl|    17 BackendClose b s1(127.0.0.1,,53652)
>**** v1   15.5 vsl|    12 SessionOpen  c 127.0.0.1 50668 127.0.0.1:0
>**** v1   15.5 vsl|    12 ReqStart     c 127.0.0.1 50668 1002
>**** v1   15.5 vsl|    12 ReqRequest   c GET
>**** v1   15.5 vsl|    12 ReqURL       c /
>**** v1   15.5 vsl|    12 ReqProtocol  c HTTP/1.1
>**** v1   15.5 vsl|    12 VCL_call     c recv
>**** v1   15.5 vsl|    12 VCL_return   c pass
>**** v1   15.5 vsl|    12 VCL_call     c hash
>**** v1   15.5 vsl|    12 Hash         c /
>**** v1   15.5 vsl|    12 Hash         c 127.0.0.1
>**** v1   15.5 vsl|    12 VCL_return   c hash
>**** v1   15.5 vsl|    12 VCL_call     c pass
>**** v1   15.5 vsl|    12 VCL_return   c pass
>**** v1   15.5 vsl|    12 BackendOpen  c 17 s1(127.0.0.1,,53652) 127.0.0.1 38443 
>**** v1   15.5 vsl|    12 Backend      c 17 lc s1(127.0.0.1,,53652)
>**** v1   15.5 vsl|    12 FetchError   c http first read error: -1 104 (Connection reset by peer)
>**** v1   15.5 vsl|    12 VCL_call     c error
>**** v1   15.5 vsl|    12 VCL_return   c deliver
>**** v1   15.5 vsl|    12 VCL_call     c deliver
>**** v1   15.5 vsl|    12 VCL_return   c deliver
>**** v1   15.5 vsl|    12 RespProtocol c HTTP/1.1
>**** v1   15.5 vsl|    12 RespStatus   c 503
>**** v1   15.5 vsl|    12 RespResponse c Service Unavailable
>**** v1   15.5 vsl|    12 RespHeader   c Server: Varnish
>**** v1   15.5 vsl|    12 RespHeader   c Content-Type: text/html; charset=utf-8
>**** v1   15.5 vsl|    12 RespHeader   c Retry-After: 5
>**** v1   15.5 vsl|    12 RespHeader   c Content-Length: 413
>**** v1   15.5 vsl|    12 RespHeader   c Accept-Ranges: bytes
>**** v1   15.5 vsl|    12 RespHeader   c Date: Thu, 29 Mar 2012 08:26:55 GMT
>**** v1   15.5 vsl|    12 RespHeader   c X-Varnish: 1002
>**** v1   15.5 vsl|    12 RespHeader   c Age: 15
>**** v1   15.5 vsl|    12 RespHeader   c Via: 1.1 varnish
>**** v1   15.5 vsl|    12 RespHeader   c Connection: close
>**** v1   15.5 vsl|    12 Length       c 413
>**** v1   15.5 vsl|    12 ReqEnd       c 1002 1333009600.319918633 1333009615.336753130 0.000022650 15.016654015 0.000180483
>**** v1   15.5 vsl|    12 SessionClose c error
>**** v1   15.5 vsl|    12 StatSess     c 127.0.0.1 50668 15 1 1 0 1 0 252 413
>**** v1   18.4 vsl|     0 CLI          - Rd ping
>**** v1   18.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009618 1.0
>**** v1   21.4 vsl|     0 CLI          - Rd ping
>**** v1   21.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009621 1.0
>**** v1   24.4 vsl|     0 CLI          - Rd ping
>**** v1   24.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009624 1.0
>**** v1   27.4 vsl|     0 CLI          - Rd ping
>**** v1   27.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009627 1.0
>**** v1   30.4 vsl|     0 CLI          - Rd ping
>**** v1   30.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009630 1.0
>**** v1   33.4 vsl|     0 CLI          - Rd ping
>**** v1   33.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009633 1.0
>**** v1   36.4 vsl|     0 CLI          - Rd ping
>**** v1   36.4 vsl|     0 CLI          - Wr 200 19 PONG 1333009636 1.0
>**** v1   39.3 vsl|     0 CLI          - Rd ping
>**** v1   39.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009639 1.0
>**** v1   42.3 vsl|     0 CLI          - Rd ping
>**** v1   42.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009642 1.0
>**** v1   45.3 vsl|     0 CLI          - Rd ping
>**** v1   45.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009645 1.0
>**** v1   48.3 vsl|     0 CLI          - Rd ping
>**** v1   48.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009648 1.0
>**** v1   51.3 vsl|     0 CLI          - Rd ping
>**** v1   51.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009651 1.0
>**** v1   54.3 vsl|     0 CLI          - Rd ping
>**** v1   54.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009654 1.0
>**** v1   57.3 vsl|     0 CLI          - Rd ping
>**** v1   57.3 vsl|     0 CLI          - Wr 200 19 PONG 1333009657 1.0
>
>#     top  TEST tests/v00038.vtc FAILED (60.060) signal=9 exit=0
>
>-- 
>Tollef Fog Heen
>Technical lead, Varnish Software
>t: +47 21 98 92 64


More information about the varnish-dev mailing list