In OpenShift Enterprise environments using the routing daemon with an nginx router, when multiple applications with the same name were created under different domains, duplicate entries pointing to the same endpoint were created in the nginx routing configuration. This was due to a bug in the routing daemon, and as a result, "duplicate location" errors were reported when restarting the nginx service. This bug fix updates the routing daemon to no longer create /<app_name> endpoints in the nginx routing configuration. As a result, the nginx service no longer reports these errors when restarting.
DescriptionTimothy Williams
2014-11-25 22:49:36 UTC
Description of problem:
The openshift routing nginx configuration for HA applications is partially broken when two applications with the same name are created under different domains.
Specifically, the conf.d/server.conf will have two entries pointing to the same endpoint, throwing the below error when nginx is restarted:
nginx: [emerg] duplicate location "/test10" in /opt/rh/nginx16/root/etc/nginx/conf.d/server.conf:78
Version-Release number of selected component (if applicable):
OSE 2.2.0
rubygem-openshift-origin-routing-daemon-0.17.1.4-1.el6op.noarch
How reproducible:
Always
Steps to Reproduce:
1. Set up and configure an HA load balancer for applications
2. Create two applications under seperate domains with the same name
3.
Actual results:
Two entries are created in conf.d/server.conf. For the below example, the app name is 'test10' and the two domains are 'tim' and 'admin':
# route_name=route_ose_test10_admin
location /test10 {
proxy_pass http://pool_ose_test10_admin_80;
}
# route_name=route_ose_test10_tim
location /test10 {
proxy_pass http://pool_ose_test10_tim_80;
}
Expected results:
Endpoint added without issue
Additional info:
Are these endpoints really necessary?
Verified this bug with rubygem-openshift-origin-routing-daemon-0.20.2.4-1.el6op.noarch, and PASS.
1. Acreate two scalable apps, no endpoint will be added into server.conf, the following conf file are built.
# cat server.conf
ssl_certificate /etc/pki/tls/certs/node.example.com.crt;
ssl_certificate_key /etc/pki/tls/private/node.example.com.key;
server {
listen 80 default_server;
server_name _;
location / {
return 404;
}
}
server {
listen 443 ssl default_server;
server_name _;
location / {
return 404;
}
}
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://rhn.redhat.com/errata/RHBA-2014-1979.html
Description of problem: The openshift routing nginx configuration for HA applications is partially broken when two applications with the same name are created under different domains. Specifically, the conf.d/server.conf will have two entries pointing to the same endpoint, throwing the below error when nginx is restarted: nginx: [emerg] duplicate location "/test10" in /opt/rh/nginx16/root/etc/nginx/conf.d/server.conf:78 Version-Release number of selected component (if applicable): OSE 2.2.0 rubygem-openshift-origin-routing-daemon-0.17.1.4-1.el6op.noarch How reproducible: Always Steps to Reproduce: 1. Set up and configure an HA load balancer for applications 2. Create two applications under seperate domains with the same name 3. Actual results: Two entries are created in conf.d/server.conf. For the below example, the app name is 'test10' and the two domains are 'tim' and 'admin': # route_name=route_ose_test10_admin location /test10 { proxy_pass http://pool_ose_test10_admin_80; } # route_name=route_ose_test10_tim location /test10 { proxy_pass http://pool_ose_test10_tim_80; } Expected results: Endpoint added without issue Additional info: Are these endpoints really necessary?