Bug #62735
determining SSL port for RGW dashboard by splitting frontend config
0%
Description
I just upgraded to 18.2.0. The new dashboard home screen is a regrettable step backward. Do something constructive with all the wasted space on the top status tile. That is not the topic of this issue, so forgive me for saying it, but the shock is still rather fresh. The objects and PG Status gauges on the previous dashboard were very useful.
My issue is that this is the third consecutive major release of Ceph that has broken my RGW dashboard for completely stupid and avoidable reasons.
The upgrade itself went reasonably well, and upon completion I start testing the components and start getting a 500 error on the Object Gateway tab of the mgr dashboard.
The mgr log is giving throwing this when I try to make a request on a RGW page:
bash[32475]: Internal Server Error bash[32475]: Traceback (most recent call last): bash[32475]: File "/usr/share/ceph/mgr/dashboard/services/exception.py", line 47, in dashboard_exception_handler bash[32475]: return handler(*args, **kwargs) bash[32475]: File "/lib/python3.6/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__ bash[32475]: return self.callable(*self.args, **self.kwargs) bash[32475]: File "/usr/share/ceph/mgr/dashboard/controllers/_base_controller.py", line 263, in inner bash[32475]: ret = func(*args, **kwargs) bash[32475]: File "/usr/share/ceph/mgr/dashboard/controllers/_rest_controller.py", line 191, in wrapper bash[32475]: return func(*vpath, **params) bash[32475]: File "/usr/share/ceph/mgr/dashboard/controllers/rgw.py", line 108, in list bash[32475]: 'port': int(metadata['frontend_config#0'].split('port=')[1]) bash[32475]: ValueError: invalid literal for int() with base 10: '443 ssl_certificate=config://rgw/cert/rgw.NBDFSv2.NBDFS.C3' bash[32475]: [::ffff:10.3.34.90:32990] [GET] [500] [0.004s] [nbadmin] [513.0B] /api/rgw/daemon bash[32475]: [b'{"status": "500 Internal Server Error", "detail": "The server encountered an unexpected condition which prevented it from fulfilling the request.", "request_id": "ba61646e-eb89-43eb-89d0-156ec3ffc2b7"}
For AGES, since mimic or perhaps earlier, my rgw_frontends looked like this:
beast port=80 ssl_port=443 ssl_certificate=config:/blah/blah/blah
And the various mgrs have been able to parse the port numbers no problem. Now in reef you are splitting on 'port='? It never occurred to anyone that more config data might come afterward? You don't even want to do a second split on a non-numeric char on the first split result just in case?
Not everyone puts the port at the end. If that is now the requirement then put it in the documentation along with an example of a valid rgw_frontends!
You have a big key value store so I don't know why rgw_frontends has to try to jam everything into 1 key in the first place, creating opportunities for mistakes like this.
Related issues
History
#1 Updated by Nizamudeen A 3 months ago
Hey Alex,
Thanks for raising the issue. It was a mistake that I did recently. I raised a PR to fix it and added some tests there. https://github.com/ceph/ceph/pull/53323
Also regarding the landing page, we are still improving it. That will go on. If you want you can switch to the old Dashboard by switching the feature toggle in the dashboard. `ceph dashboard feature disable dashboard` will bring back the old dashboard. I know the naming is a bit weird but this is a temporary thing that's going to stay for shorter period. Once we have the new dashboard page improved we will completely remove the older one.
Sorry for the inconvenience.
#2 Updated by Nizamudeen A 3 months ago
- Project changed from mgr to Dashboard
- Category changed from ceph-mgr to Component - RGW
- Status changed from New to Fix Under Review
- Assignee set to Nizamudeen A
- Backport set to reef
- Pull request ID set to 53323
#3 Updated by Nizamudeen A 3 months ago
- Status changed from Fix Under Review to Pending Backport
#4 Updated by Backport Bot 3 months ago
- Copied to Backport #62792: reef: determining SSL port for RGW dashboard by splitting frontend config added
#5 Updated by Backport Bot 3 months ago
- Tags set to backport_processed
#6 Updated by Nizamudeen A 3 months ago
- Status changed from Pending Backport to Resolved
#7 Updated by Alex Yarbrough about 1 month ago
Is there an update I can install to fix this? Every time I ceph orch apply a new RGW config, this issue returns.
#8 Updated by Nizamudeen A about 1 month ago
The ETA for the next reef release (18.2.1) is still unknown. The next quincy (17.2.7) is getting prepared meanwhile. Once it is done, the next focus might be the minor release for reef!
#9 Updated by Nizamudeen A about 1 month ago
- Status changed from Resolved to Pending Backport
- Tags deleted (
backport_processed) - Backport changed from reef to reef, quincy
#10 Updated by Backport Bot about 1 month ago
- Copied to Backport #63309: quincy: determining SSL port for RGW dashboard by splitting frontend config added
#11 Updated by Backport Bot about 1 month ago
- Tags set to backport_processed