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
Superset app loads infinitely or throws unexpected error occasionally. Ver. 3.1.2 #28259
Comments
It's not able to load a chunk of the javascript built by webpack. I'm not sure how you're deploying, but is |
Yep, @rusackas |
This is pointing towards a backend/frontend being out of sync. The backend is made aware of a manifest at /static/assets/manifest.json , and there many reasons why this can/could get out of sync (though it's not common AFAIK). But normally if you're on a clean I'm unclear what happens if the client (browser is out of sync) as it may ask for an old/expired asset while hot-loading (?). I'm guessing at Preset we may persist the older build chunks on the CDN or have some other way to tell the client to refresh its manifest In your case does a client force-refresh fix the issue? Could you have zombie pods serving an older version of the app? |
Hey @mistercrunch and @rusackas . I think I've found the solution for my case.
Can be done as PR by myself if needed. |
Looks like a band-aid. It makes me wonder how Superset manages a new manifest and hot loading of obsolete assets (?) If we don't do this already it seems we should generally look for a manifest version and force a refresh of the manifest/assets when the client is behind. I'm wondering if there's anything like that in the code base (?) @Sabutobi do you only see this on new deploys? |
If it is the client caching pointers to chunks that no longer exist on the server, it does seem like we might have a few options
This feels like there should be a best practice, and we're reinventing a wheel here. I'll try to do some digging. |
Health check seems would be best and could handle a variety of things:
|
Thanks for the fresh ideas. I'll try to implement that somehow... |
Are we sure this is a hot-loading issue (where js bundles are loaded dynamically)? If so it could just be we need better error handling on hot-load and that's it. Like if we get a 404 on hot-load, then you could check the manifest version and pop something to the user "The frontend has gone out of sync from the backend, refresh? Refresh / Cancel" |
Just chiming into say that we are getting reports and screenshots of this exact same error (we are on 3.0.2). I have nothing constructive to add here, other than validation that @Sabutobi is not the only one! Possibly relevant to the questions posed above:
|
Hey y'all.
I've added this code snippet into the |
It's better than nothin'! I guess if it doesn't resolve the problem (like the chunk is really not there) then you're stuck in a loop... but that's an edge case to an edge case, and it's kinda busted either way then. |
Hi @rusackas , @mistercrunch will the solution be part of a future release? |
Yup open a PR and we can see what it'd take to push this through. Some things that would be nice:
|
Bug description
This is the 3.1.2 iteration of the this issue
While using the superset app, I sometimes face two issues which might be related:
How to reproduce the bug
Host the latest version of the superset app deployed using docker, in an EC2 instance.
Connect the superset with a database and create multiple dashboards.
Use it continuously for a while. In our case this issue can be raised after the redeployment process.
Screenshots/recordings
SQL Lab example:
Dashboards tab example:
Superset version
3.1.2
Python version
3.9
Node version
16
Browser
Chrome
Additional context
No response
Checklist
The text was updated successfully, but these errors were encountered: