← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2056300] [NEW] Some Roboto fonts are looked in the wrong location

 

Public bug reported:

I do have a basic OpenStack-Ansible All-in-One deployment of the current
master branch.

Horizon SHA: a77818d745f25ed1e5b576760d3481f0f62ce042

Deployment was done following way:
1. git clone https://opendev.org/openstack/openstack-ansible
2. cd openstack-ansible
3. ./scripts/gate-check-commit.sh aio_lxc

Once it's done, horizon is working properly. However, from time to time
I do catch "429 Too many requests" which is potentially legit behavior
by LB configuration, that tries to implement bot protection:

http-request deny deny_status 429 if { sc_http_err_rate(0) gt 20 }:
https://opendev.org/openstack/openstack-ansible/src/commit/e72984ca956d44d8056ca4ea8ea7e263bc3c8881/inventory/group_vars/horizon_all/haproxy_service.yml#L24

Violation of this rule is triggered by invalid path to roboto fontface
which returns quite some 404 per each request:

[06/Mar/2024:08:58:13.851] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/1/1/2 404 340 - - ---- 32/1/0/0/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Regular.woff2 HTTP/2.0"
[06/Mar/2024:08:58:13.856] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/1/1 404 340 - - ---- 32/1/0/0/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2 HTTP/2.0"

On the horizon container this path is indeed not valid:
root@aio1-horizon-container-f7cace3d:/# ls -l /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2ls: cannot access '/openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2': No such file or directory
root@aio1-horizon-container-f7cace3d:/#

However, expected path is slightly different:
root@aio1-horizon-container-f7cace3d:/# ls -l /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Bold.woff2
-rwxr-xr-x 1 root root 63596 Mar  6 08:37 /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Bold.woff2
root@aio1-horizon-container-f7cace3d:/#

So doing smth like `cp -r
/openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-
packages/static/horizon/lib/roboto_fontface/fonts/roboto/
/openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-
packages/static/horizon/lib/roboto_fontface/fonts/Roboto/` does the
trick.

And the issue is basically in `roboto` vs `Roboto` in path.

If I would try to `mv roboto Roboto` - then some dashboard will fail,
like heat-dashboard, as they do expect `roboto`:

[06/Mar/2024:09:10:30.452] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/0/0 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff2 HTTP/2.0"
[06/Mar/2024:09:10:30.560] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/3/3 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff HTTP/2.0"
[06/Mar/2024:09:10:30.604] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/1/1 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.ttf HTTP/2.0"

The /roboto directory is being populated automatically during `horizon-
manage.py collectstatic --noinput` execution.

** Affects: horizon
     Importance: Undecided
         Status: New

** Description changed:

  I do have a basic OpenStack-Ansible All-in-One deployment of the current
  master branch.
  
  Horizon SHA: a77818d745f25ed1e5b576760d3481f0f62ce042
  
  Deployment was done following way:
  1. git clone https://opendev.org/openstack/openstack-ansible
  2. cd openstack-ansible
  3. ./scripts/gate-check-commit.sh aio_lxc
  
  Once it's done, horizon is working properly. However, from time to time
  I do catch "429 Too many requests" which is potentially legit behavior
  by LB configuration, that tries to implement bot protection:
  
  http-request deny deny_status 429 if { sc_http_err_rate(0) gt 20 }:
  https://opendev.org/openstack/openstack-ansible/src/commit/e72984ca956d44d8056ca4ea8ea7e263bc3c8881/inventory/group_vars/horizon_all/haproxy_service.yml#L24
  
- 
- Violation of this rule is triggered by invalid path to roboto fontface which returns quite some 404 per each request:
+ Violation of this rule is triggered by invalid path to roboto fontface
+ which returns quite some 404 per each request:
  
  [06/Mar/2024:08:58:13.851] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/1/1/2 404 340 - - ---- 32/1/0/0/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Regular.woff2 HTTP/2.0"
  [06/Mar/2024:08:58:13.856] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/1/1 404 340 - - ---- 32/1/0/0/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2 HTTP/2.0"
  
- 
  On the horizon container this path is indeed not valid:
  root@aio1-horizon-container-f7cace3d:/# ls -l /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2ls: cannot access '/openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2': No such file or directory
- root@aio1-horizon-container-f7cace3d:/# 
- 
+ root@aio1-horizon-container-f7cace3d:/#
  
  However, expected path is slightly different:
  root@aio1-horizon-container-f7cace3d:/# ls -l /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Bold.woff2
  -rwxr-xr-x 1 root root 63596 Mar  6 08:37 /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Bold.woff2
- root@aio1-horizon-container-f7cace3d:/# 
+ root@aio1-horizon-container-f7cace3d:/#
  
- 
- So doing smth like `cp -r /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/roboto/ /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/Roboto/` does the trick.
+ So doing smth like `cp -r
+ /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-
+ packages/static/horizon/lib/roboto_fontface/fonts/roboto/
+ /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-
+ packages/static/horizon/lib/roboto_fontface/fonts/Roboto/` does the
+ trick.
  
  And the issue is basically in `roboto` vs `Roboto` in path.
  
+ If I would try to `mv roboto Roboto` - then some dashboard will fail,
+ like heat-dashboard, as they do expect `roboto`:
  
- If I would try to `mv roboto Roboto` - then some dashboard will fail, like heat-dashboard, as they do expect `roboto`:
+ [06/Mar/2024:09:10:30.452] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/0/0 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff2 HTTP/2.0"
+ [06/Mar/2024:09:10:30.560] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/3/3 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff HTTP/2.0"
+ [06/Mar/2024:09:10:30.604] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/1/1 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.ttf HTTP/2.0"
  
- [06/Mar/2024:09:10:30.452] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/0/0 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://94.101.116.61/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff2 HTTP/2.0"
- [06/Mar/2024:09:10:30.560] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/3/3 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://94.101.116.61/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff HTTP/2.0"
- [06/Mar/2024:09:10:30.604] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/1/1 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://94.101.116.61/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.ttf HTTP/2.0"
- 
- 
- The /roboto directory is being populated automatically during `horizon-manage.py collectstatic --noinput` execution.
+ The /roboto directory is being populated automatically during `horizon-
+ manage.py collectstatic --noinput` execution.

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/2056300

Title:
  Some Roboto fonts are looked in the wrong location

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  I do have a basic OpenStack-Ansible All-in-One deployment of the
  current master branch.

  Horizon SHA: a77818d745f25ed1e5b576760d3481f0f62ce042

  Deployment was done following way:
  1. git clone https://opendev.org/openstack/openstack-ansible
  2. cd openstack-ansible
  3. ./scripts/gate-check-commit.sh aio_lxc

  Once it's done, horizon is working properly. However, from time to
  time I do catch "429 Too many requests" which is potentially legit
  behavior by LB configuration, that tries to implement bot protection:

  http-request deny deny_status 429 if { sc_http_err_rate(0) gt 20 }:
  https://opendev.org/openstack/openstack-ansible/src/commit/e72984ca956d44d8056ca4ea8ea7e263bc3c8881/inventory/group_vars/horizon_all/haproxy_service.yml#L24

  Violation of this rule is triggered by invalid path to roboto fontface
  which returns quite some 404 per each request:

  [06/Mar/2024:08:58:13.851] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/1/1/2 404 340 - - ---- 32/1/0/0/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Regular.woff2 HTTP/2.0"
  [06/Mar/2024:08:58:13.856] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/1/1 404 340 - - ---- 32/1/0/0/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2 HTTP/2.0"

  On the horizon container this path is indeed not valid:
  root@aio1-horizon-container-f7cace3d:/# ls -l /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2ls: cannot access '/openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/Roboto/Roboto-Bold.woff2': No such file or directory
  root@aio1-horizon-container-f7cace3d:/#

  However, expected path is slightly different:
  root@aio1-horizon-container-f7cace3d:/# ls -l /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Bold.woff2
  -rwxr-xr-x 1 root root 63596 Mar  6 08:37 /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-packages/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Bold.woff2
  root@aio1-horizon-container-f7cace3d:/#

  So doing smth like `cp -r
  /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-
  packages/static/horizon/lib/roboto_fontface/fonts/roboto/
  /openstack/venvs/horizon-28.1.0.dev67/lib/python3.10/site-
  packages/static/horizon/lib/roboto_fontface/fonts/Roboto/` does the
  trick.

  And the issue is basically in `roboto` vs `Roboto` in path.

  If I would try to `mv roboto Roboto` - then some dashboard will fail,
  like heat-dashboard, as they do expect `roboto`:

  [06/Mar/2024:09:10:30.452] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/0/0 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff2 HTTP/2.0"
  [06/Mar/2024:09:10:30.560] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/3/3 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.woff HTTP/2.0"
  [06/Mar/2024:09:10:30.604] base-front-1~ horizon-back/aio1_horizon_container-f7cace3d 0/0/0/1/1 404 340 - - ---- 38/1/2/2/0 0/0 "GET https://ip.add.re.ss/static/horizon/lib/roboto_fontface/fonts/roboto/Roboto-Regular.ttf HTTP/2.0"

  The /roboto directory is being populated automatically during
  `horizon-manage.py collectstatic --noinput` execution.

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/2056300/+subscriptions