Follow up. We're not sure what the code want's to achieve here, but at
least the attached patch let's us use names the way we think it should be
;-)


FWIW,
./Marian

patch by [email protected]

On 27.03.13 15:21, "Hettwer, Marian" <[email protected]> wrote:

>Hi Ho,
>
>seems like the parser for specifying the backend is buggy.
>Should I file a bug report?
>
>But first the details. Look what's happening.
>
>We have this backend list:
>
>varnish> backend.list
>200        
>Backend name                   Refs   Admin      Probe
>speedy(10.47.28.60,,9062)      1      probe      Healthy 5/5
>speedy(10.47.28.61,,9062)      1      probe      Sick 0/5
>speedy47_1(10.47.60.1,,9062)   1      probe      Healthy 8/8
>speedy47_10(10.47.60.10,,9062) 1      probe      Healthy 8/8
>speedy47_11(10.47.60.11,,9062) 1      probe      Healthy 8/8
>speedy47_12(10.47.60.12,,9062) 1      probe      Healthy 8/8
>speedy47_13(10.47.60.13,,9062) 1      probe      Healthy 8/8
>speedy47_14(10.47.60.14,,9062) 1      probe      Healthy 8/8
>speedy47_15(10.47.60.15,,9062) 1      probe      Healthy 8/8
>speedy47_16(10.47.60.16,,9062) 1      probe      Healthy 8/8
>speedy47_17(10.47.60.17,,9062) 1      probe      Healthy 8/8
>speedy47_18(10.47.60.18,,9062) 1      probe      Healthy 8/8
>speedy47_2(10.47.60.2,,9062)   1      probe      Healthy 8/8
>speedy47_3(10.47.60.3,,9062)   1      probe      Healthy 8/8
>speedy47_4(10.47.60.4,,9062)   1      probe      Healthy 8/8
>speedy47_5(10.47.60.5,,9062)   1      probe      Healthy 8/8
>speedy47_6(10.47.60.6,,9062)   1      probe      Healthy 8/8
>speedy47_7(10.47.60.7,,9062)   1      probe      Healthy 8/8
>speedy47_8(10.47.60.8,,9062)   1      probe      Healthy 8/8
>speedy47_9(10.47.60.9,,9062)   1      probe      Healthy 8/8
>
>And are now setting speedy47_1 to sick:
>
>varnish> backend.set_health speedy47_1(10.47.60.1) sick
>200        
>
>
>Now let's have a look at the backend list:
>
>varnish> backend.list
>200        
>Backend name                   Refs   Admin      Probe
>speedy(10.47.28.60,,9062)      1      probe      Healthy 5/5
>speedy(10.47.28.61,,9062)      1      probe      Sick 0/5
>speedy47_1(10.47.60.1,,9062)   1      sick       Healthy 8/8
>speedy47_10(10.47.60.10,,9062) 1      sick       Healthy 8/8
>speedy47_11(10.47.60.11,,9062) 1      sick       Healthy 8/8
>speedy47_12(10.47.60.12,,9062) 1      sick       Healthy 8/8
>speedy47_13(10.47.60.13,,9062) 1      sick       Healthy 8/8
>speedy47_14(10.47.60.14,,9062) 1      sick       Healthy 8/8
>speedy47_15(10.47.60.15,,9062) 1      sick       Healthy 8/8
>speedy47_16(10.47.60.16,,9062) 1      sick       Healthy 8/8
>speedy47_17(10.47.60.17,,9062) 1      sick       Healthy 8/8
>speedy47_18(10.47.60.18,,9062) 1      sick       Healthy 8/8
>speedy47_2(10.47.60.2,,9062)   1      probe      Healthy 8/8
>speedy47_3(10.47.60.3,,9062)   1      probe      Healthy 8/8
>speedy47_4(10.47.60.4,,9062)   1      probe      Healthy 8/8
>speedy47_5(10.47.60.5,,9062)   1      probe      Healthy 8/8
>speedy47_6(10.47.60.6,,9062)   1      probe      Healthy 8/8
>speedy47_7(10.47.60.7,,9062)   1      probe      Healthy 8/8
>speedy47_8(10.47.60.8,,9062)   1      probe      Healthy 8/8
>speedy47_9(10.47.60.9,,9062)   1      probe      Healthy 8/8
>
>
>
>Oh No! I only wanted one backend to go sick. Damn.
>
>Let's try Name, IP address and port instead...
>
>varnish> backend.list
>200        
>Backend name                   Refs   Admin      Probe
>speedy(10.47.28.60,,9062)      1      probe      Healthy 5/5
>speedy(10.47.28.61,,9062)      1      probe      Sick 0/5
>speedy47_1(10.47.60.1,,9062)   1      sick       Healthy 8/8
>speedy47_10(10.47.60.10,,9062) 1      sick       Healthy 8/8
>speedy47_11(10.47.60.11,,9062) 1      sick       Healthy 8/8
>speedy47_12(10.47.60.12,,9062) 1      sick       Healthy 8/8
>speedy47_13(10.47.60.13,,9062) 1      sick       Healthy 8/8
>speedy47_14(10.47.60.14,,9062) 1      sick       Healthy 8/8
>speedy47_15(10.47.60.15,,9062) 1      sick       Healthy 8/8
>speedy47_16(10.47.60.16,,9062) 1      sick       Healthy 8/8
>speedy47_17(10.47.60.17,,9062) 1      sick       Healthy 8/8
>speedy47_18(10.47.60.18,,9062) 1      sick       Healthy 8/8
>speedy47_2(10.47.60.2,,9062)   1      probe      Healthy 8/8
>speedy47_3(10.47.60.3,,9062)   1      probe      Healthy 8/8
>speedy47_4(10.47.60.4,,9062)   1      probe      Healthy 8/8
>speedy47_5(10.47.60.5,,9062)   1      probe      Healthy 8/8
>speedy47_6(10.47.60.6,,9062)   1      probe      Healthy 8/8
>speedy47_7(10.47.60.7,,9062)   1      probe      Healthy 8/8
>speedy47_8(10.47.60.8,,9062)   1      probe      Healthy 8/8
>speedy47_9(10.47.60.9,,9062)   1      probe      Healthy 8/8
>varnish> backend.set_health speedy47_1(10.47.60.1:9062) auto
>200        
>
>varnish> backend.list
>200        
>Backend name                   Refs   Admin      Probe
>speedy(10.47.28.60,,9062)      1      probe      Healthy 5/5
>speedy(10.47.28.61,,9062)      1      probe      Sick 0/5
>speedy47_1(10.47.60.1,,9062)   1      probe      Healthy 8/8
>speedy47_10(10.47.60.10,,9062) 1      probe      Healthy 8/8
>speedy47_11(10.47.60.11,,9062) 1      probe      Healthy 8/8
>speedy47_12(10.47.60.12,,9062) 1      probe      Healthy 8/8
>speedy47_13(10.47.60.13,,9062) 1      probe      Healthy 8/8
>speedy47_14(10.47.60.14,,9062) 1      probe      Healthy 8/8
>speedy47_15(10.47.60.15,,9062) 1      probe      Healthy 8/8
>speedy47_16(10.47.60.16,,9062) 1      probe      Healthy 8/8
>speedy47_17(10.47.60.17,,9062) 1      probe      Healthy 8/8
>speedy47_18(10.47.60.18,,9062) 1      probe      Healthy 8/8
>speedy47_2(10.47.60.2,,9062)   1      probe      Healthy 8/8
>speedy47_3(10.47.60.3,,9062)   1      probe      Healthy 8/8
>speedy47_4(10.47.60.4,,9062)   1      probe      Healthy 8/8
>speedy47_5(10.47.60.5,,9062)   1      probe      Healthy 8/8
>speedy47_6(10.47.60.6,,9062)   1      probe      Healthy 8/8
>speedy47_7(10.47.60.7,,9062)   1      probe      Healthy 8/8
>speedy47_8(10.47.60.8,,9062)   1      probe      Healthy 8/8
>speedy47_9(10.47.60.9,,9062)   1      probe      Healthy 8/8
>
>Again, matched all. Meeeeep!
>
>
>
>hm. Looks like something is wrong down here in the code:
>
>bin/varnishd/cache/cache_backend_cfg.c
>367     if (port_b != NULL && strncmp(b->port, port_b, port_l) != 0)
>369     if (name_b != NULL && strncmp(b->vcl_name, name_b, name_l) != 0)
>373           strncmp(b->ipv4_addr, ip_b, ip_l)) &&
>375           strncmp(b->ipv6_addr, ip_b, ip_l)))
>
>should also take the strlen(b->port)... into account.
>
>Example:
>367     if (port_b != NULL && strlen(b->port) == port_l &&
>strncmp(b->port, port_b, port_l) != 0)
>
>
>
>best regards,
>Marian
>
>
>_______________________________________________
>varnish-misc mailing list
>[email protected]
>https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Attachment: fix-backend-matcher.patch
Description: fix-backend-matcher.patch

_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to