New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rook 1.0.3 throws 500 errors in the ceph dashboard #3424
Comments
I'm also seeing this while not using istio. |
Please provide the operator and mgr pod logs |
@mabushey thanks. a couple things.
|
|
do you see multiple manager pods running? it does appear that there is some sort of caching occurring. for example, in the v13 anv v14 containers that contain the code for the clients and for the server, we can see that the string 'stay_signed_in' doesn't actually appear in newer versions.
|
was this an upgrade, or a fresh cluster setup? |
I had 0.9.3 installed previously, however I blew it all away, including the namespace and all CRD's, then ran: |
It seems that starting with 14.1.0 (with JWT authentication) that param was removed (see https://github.com/ceph/ceph/pull/22833/files#diff-9ab52cedf031887d0bae2595e5175486R18) from the back-end as well as from the front-end (https://github.com/ceph/ceph/pull/22833/files?file-filters%5B%5D=.html#diff-38f6be359ad26179bb4a6e823b9687fbL59). So yes, it seems to be some kind of caching, the question is where from. I don't think it's in dashboard's, as I just checked and CherryPy server is handling |
maybe related to #3106 |
@mabushey would it be possible for you to load the dashboard through port forwarding directly into the mgr pod? rook should not be performing any caching, so searching for where this cached data is being served from is the most important next step. |
@epuertat thanks for looking at this. does the dashboard server do any sort of cache invalidation, either by adding expirations to the headers or maybe even better serving the static assets with unique names specific to the version? |
@noahdesu currently ceph-dashboard doesn't have any HTTP server-side caching in place. Nevertheless, I just checked with my Chrome and saw that for main JS files (where all the front-end logic lies) the Network Inspector (CTRL+SHIFT+i) shows However it should be easily invalidated with a browser hard refresh. |
@epuertat i didn't mean server side caching, i was referring to server side mechanisms for controlling caching at intermediate levels (e.g. proxies), which even browser cache invalidation won't fix. for example index.html -> includes |
Yeah, those headers I mention (but not present in Dashboard static files) might influence intermediate HTTP caching. Cherrypy by default provides
However RFC7234 states:
So I'm afraid this is kind of |
Ceph Tracker#40754: mgr/dashboard: configure HTTP caching for static files (JS/Angular) |
Also seeing this issue in Openshift 3.11. I guess the best way to handle this is to just use ceph:v13 until this issue is resolved? |
If you are seeing this as well it'd be great to identify where the caching is occurring, whether it is in the browser or in some intermediate location like a proxy or cdn. clearing the cache at that level is the workaround. @allen13 are you able to verify this? |
I cleared browser cache so the only other place it could be is in the Openshift controlled Haproxy routes. We are running on baremetal so there isn't anything else that could interfere. |
DId you try a different browser? Can you verify if it is being cached in
the proxy? The other thing I've noticed is that if I view the source for
the page, click on the javascript assets link, then refresh, it sometimes
breaks loose something and starts using the latest version.
…On Fri, Jul 12, 2019 at 9:03 AM allen13 ***@***.***> wrote:
I cleared browser cache so the only other place it could be is in the
Openshift controlled Haproxy routes. We are running on baremetal so there
isn't anything else that could interfere.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#3424?email_source=notifications&email_token=AAB3F4KQ5MF5N3C7A432IVTP7CTONA5CNFSM4H7KLLWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ2FVRY#issuecomment-510941895>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAB3F4ODJYVW5VFIK265ULLP7CTONANCNFSM4H7KLLWA>
.
|
The check I was hoping someone would do is to serve the dashboard directly
via port forwarding into the mgr pod. One could also GET the pages using
curl or something like that to rule out browser caching.
On Fri, Jul 12, 2019 at 9:11 AM Noah Watkins <notifications@github.com>
wrote:
… DId you try a different browser? Can you verify if it is being cached in
the proxy? The other thing I've noticed is that if I view the source for
the page, click on the javascript assets link, then refresh, it sometimes
breaks loose something and starts using the latest version.
On Fri, Jul 12, 2019 at 9:03 AM allen13 ***@***.***> wrote:
> I cleared browser cache so the only other place it could be is in the
> Openshift controlled Haproxy routes. We are running on baremetal so there
> isn't anything else that could interfere.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <
#3424?email_source=notifications&email_token=AAB3F4KQ5MF5N3C7A432IVTP7CTONA5CNFSM4H7KLLWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ2FVRY#issuecomment-510941895
>,
> or mute the thread
> <
https://github.com/notifications/unsubscribe-auth/AAB3F4ODJYVW5VFIK265ULLP7CTONANCNFSM4H7KLLWA
>
> .
>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#3424?email_source=notifications&email_token=AAB3F4LKFVYGBFCUC3P776DP7CUJNA5CNFSM4H7KLLWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ2GHVY#issuecomment-510944215>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAB3F4I5X22UJ226MBYTY2TP7CUJNANCNFSM4H7KLLWA>
.
|
Doesn't using a browser on a different computer that has never pulled up the dashboard before meet this criteria? |
yeh, it should. it won't rule out the proxy caching. |
After reviewing this with other ceph-dashboard folks (@ricardoasmarques), it seems that the JS files have per-build unique names (hence no way to be cached across versions). So only |
One idea is that there are multiple unrelated issues causing those internal server errors. So, having a mgr log would make things more clear. there is a bug that is going to be fixed in 14.2.2 |
@sebastian-philipp did you see #3424 (comment) ? it looks as though the 500 error is caused by a browser client submitted requests from an older version than the server that is running. |
thanks @epuertat. could be an intermediate layer just ignoring caching directives. @mabushey @jordanfowler @allen13 if anyone is able to run a few more exploratory experiments that'd be great. |
you're right, of course. But I've seen too many different bugs in this tracker merged together in different issues called "Dashboard throws 500 error" |
thanks @mabushey can you confirm that with port-forwarding the manager is logging the same instance of the error, and that it isn't a separate 500 issue? |
|
Yes, that workaround worked. Thank you. |
Is this a bug report or feature request?
Deviation from expected behavior:
In 0.9.3, the dashboard worked correctly. In 1.0.3, it comes up and somewhat works, but throws 500 errors in the application:
Expected behavior:
No red 500 error boxes
How to reproduce it (minimal and precise):
common.yaml and operator.yaml from the stock examples in 1.0.3:
cluster.yaml:
Istio ingress:
kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}') bash
bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory
[root@ip-10-132-3-211 /]# ceph health
HEALTH_WARN mons a,b are low on available space
The text was updated successfully, but these errors were encountered: