Abhinandan Prateek created CLOUDSTACK-8488:
----------------------------------------------
Summary: network with LB rules fails to restart
Key: CLOUDSTACK-8488
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8488
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: Virtual Router
Affects Versions: 4.6.0
Reporter: Abhinandan Prateek
Priority: Critical
Fix For: 4.6.0
Restarting network fails as the LB rules formatting is not good:
Snippet from the VR config son that is degenerated for LB:
</script>
<file>
/var/cache/cloud/load_balancer.json
{"rules":[{"configuration":["global","\tlog 127.0.0.1:3914 local0
warning","\tmaxconn 4096","\tmaxpipes 1024","\tchroot /var/lib/haproxy","\tuser
haproxy","\tgroup haproxy","\tdaemon","\t ","defaults","\tlog
global","\tmode tcp","\toption dontlognull","\tretries 3","\toption
redispatch","\toption forwardfor","\toption forceclose","\ttimeout connect
5000","\ttimeout client 50000","\ttimeout server 50000","\nlisten
stats_on_public 192.168.100.67:8081\n\tmode http\n\toption httpclose\n\tstats
enable\n\tstats uri /admin?stats\n\tstats realm Haproxy\\
Statistics\n\tstats auth admin1:AdMiN123\n","\t ","listen 192_168_100_67-80
192.168.100.67:80","\tbalance roundrobin","\tserver 192_168_100_67-80_0
10.1.1.121:80 check","\tserver 192_168_100_67-80_1 10.1.1.211:80 check","\tmode
http","\toption httpclose","\t ","\t
"],"tmp_cfg_file_path":"/etc/haproxy/","tmp_cfg_file_name":"haproxy.cfg.new.1432103998137","add_rules":["192.168.100.67:80:"],"remove_rules":[],"stat_rules":["192.168.100.67:8081:0/0:,"],"router_ip":"169.254.3.40"}],"type":"loadbalancer"}
</file>
Due to formatting issues, there is an error when tis config is applied on VR:
2015-05-20 12:10:05,222 ERROR [c.c.u.s.SshHelper] (DirectAgent-86:ctx-94e1e0a8)
SSH execution of command /opt/cloud/bin/router_proxy.sh vr_cfg.sh 169.254.3.40
-c /var/cache/cloud/VR-41f28904-b10b-4074-aa42-f4d4105ec49b.cfg has an error
status code in return. result output: VR config: execution failed:
"/opt/cloud/bin/update_config.py load_balancer.json", check /var/log/cloud.log
in VR for details
On VR the rules are copied to /var/cache/cloud/load_balancer.json with content:
{"rules":[{"configuration":["global","tlog 127.0.0.1:3914 local0
warning","tmaxconn 4096","tmaxpipes 1024","tchroot /var/lib/haproxy","tuser
haproxy","tgroup haproxy","tdaemon","t ","defaults","tlog global","tmode
tcp","toption dontlognull","tretries 3","toption redispatch","toption
forwardfor","toption forceclose","ttimeout connect 5000","ttimeout client
50000","ttimeout server 50000","nlisten stats_on_public
192.168.100.67:8081ntmode httpntoption httpclosentstats enablentstats uri
/admin?statsntstats realm Haproxy\ Statisticsntstats auth admin1:AdMiN123n","t
","listen 192_168_100_67-80 192.168.100.67:80","tbalance roundrobin","tserver
192_168_100_67-80_0 10.1.1.121:80 check","tserver 192_168_100_67-80_1
10.1.1.211:80 check","tmode http","toption httpclose","t ","t
"],"tmp_cfg_file_path":"/etc/haproxy/","tmp_cfg_file_name":"haproxy.cfg.new.1432103998137","add_rules":["192.168.100.67:80:"],"remove_rules":[],"stat_rules":["192.168.100.67:8081:0/0:,"],"router_ip":"169.254.3.40"}],"type":"loadbalancer"}
The following text is badly formatted:
"nlisten stats_on_public 192.168.100.67:8081ntmode httpntoption
httpclosentstats enablentstats uri /admin?statsntstats realm Haproxy\
Statisticsntstats auth admin1:AdMiN123n","t ",
Looks like the \n and \t have messed up the format.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)