You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey @jacob-roldan! 👋 I'm here to help you with any bugs, questions, or becoming a contributor. Let's squash those bugs together!
I found a similar open issue that might be related to the problem you're experiencing: Upon download as PDF, charts on a long dashboard render as loading image. This issue suggests that the problem might be due to the virtualization feature, which off-loads charts that are away from the viewport. A workaround is to disable the virtualization feature by updating the Superset configuration:
@jacob-roldan I ran this on an instance I have and it looks like I do see that message for a bit (maybe a minute or two) but eventually the dashboard does download. How long did you wait until moving away from the dashboard?
@michael-s-molina@jacob-roldan are there any logs? We've actually been running this code on prod for a bit and haven't gotten this issue. Trying to debug this but can't seem to repro it on our end.
@sadpandajoe@geido@eschutho I was able to pinpoint the problem. The reason for the failure is because the screenshot generation on 4.1.0 RC3 caches the screenshots using the THUMBNAIL_CACHE_CONFIG which is a NullCache by default. A NullCache is a cache that does not cache anything, and that's why the frontend cannot find the screenshots and enters in a loop. The fix for this would be to make the default configuration of THUMBNAIL_CACHE_CONFIG similar to what we do with the Explore form data and save the thumbnails in the database using the SupersetMetastoreCache:
THUMBNAIL_CACHE_CONFIG = {
"CACHE_TYPE": "SupersetMetastoreCache",
"CACHE_DEFAULT_TIMEOUT": // set a value
# Should the timeout be reset when retrieving a cached value?
"REFRESH_TIMEOUT_ON_RETRIEVAL": True,
# The following parameter only applies to `MetastoreCache`:
# How should entries be serialized/deserialized?
"CODEC": // define the appropriate codec
}
Talking to @villebro about this issue, he raised a good point where previously Celery workers were not a hard requirement to install Superset but more of an optional feature. If the screenshot generation always requires Celery workers from now on, that could constitute a breaking change. Let me know your thoughts.
@sadpandajoe@geido@eschutho I was able to pinpoint the problem. The reason for the failure is because the screenshot generation on 4.1.0 RC3 caches the screenshots using the THUMBNAIL_CACHE_CONFIG which is a NullCache by default. A NullCache is a cache that does not cache anything, and that's why the frontend cannot find the screenshots and enters in a loop. The fix for this would be to make the default configuration of THUMBNAIL_CACHE_CONFIG similar to what we do with the Explore form data and save the thumbnails in the database using the SupersetMetastoreCache:
THUMBNAIL_CACHE_CONFIG = {
"CACHE_TYPE": "SupersetMetastoreCache",
"CACHE_DEFAULT_TIMEOUT": // set a value
# Should the timeout be reset when retrieving a cached value?
"REFRESH_TIMEOUT_ON_RETRIEVAL": True,
# The following parameter only applies to `MetastoreCache`:
# How should entries be serialized/deserialized?
"CODEC": // define the appropriate codec
}
Talking to @villebro about this issue, he raised a good point where previously Celery workers were not a hard requirement to install Superset but more of an optional feature. If the screenshot generation always requires Celery workers from now on, that could constitute a breaking change. Let me know your thoughts.
Thanks @michael-s-molina we are currently discussing what the next steps should be for having Celery optional and the cache.
Activity
dosubot commentedon Oct 17, 2024
Hey @jacob-roldan! 👋 I'm here to help you with any bugs, questions, or becoming a contributor. Let's squash those bugs together!
I found a similar open issue that might be related to the problem you're experiencing: Upon download as PDF, charts on a long dashboard render as loading image. This issue suggests that the problem might be due to the virtualization feature, which off-loads charts that are away from the viewport. A workaround is to disable the virtualization feature by updating the Superset configuration:
Open the
superset_config_docker.pyfile.Update the
FEATURE_FLAGSvariable as follows:This change ensures that the dashboard loads all charts at once, preventing loading spinners from appearing in the downloaded PDF or image [1].
To continue talking to Dosu, mention @dosu.
[-][4.0.1.rc3] Error to download PDF or Image[/-][+][4.1.0.rc3] Error to download PDF or Image[/+]sadpandajoe commentedon Oct 17, 2024
@geido i can't remember if i should have spun this up with a feature flag or not.
sadpandajoe commentedon Oct 17, 2024
@jacob-roldan I ran this on an instance I have and it looks like I do see that message for a bit (maybe a minute or two) but eventually the dashboard does download. How long did you wait until moving away from the dashboard?
michael-s-molina commentedon Oct 17, 2024
@sadpandajoe I can also confirm this problem using our internal test environment.
4.0.2
Screen.Recording.2024-10-17.at.16.25.03.mov
4.1.0rc3
Screen.Recording.2024-10-17.at.16.24.08.mov
michael-s-molina commentedon Oct 17, 2024
Is there any configuration change between 4.0.2 and 4.1.0rc3 that is needed to generate the screenshots?
sadpandajoe commentedon Oct 18, 2024
@michael-s-molina @jacob-roldan are there any logs? We've actually been running this code on prod for a bit and haven't gotten this issue. Trying to debug this but can't seem to repro it on our end.
michael-s-molina commentedon Oct 18, 2024
@sadpandajoe @geido @eschutho I was able to pinpoint the problem. The reason for the failure is because the screenshot generation on 4.1.0 RC3 caches the screenshots using the
THUMBNAIL_CACHE_CONFIGwhich is a NullCache by default. ANullCacheis a cache that does not cache anything, and that's why the frontend cannot find the screenshots and enters in a loop. The fix for this would be to make the default configuration ofTHUMBNAIL_CACHE_CONFIGsimilar to what we do with the Explore form data and save the thumbnails in the database using theSupersetMetastoreCache:Talking to @villebro about this issue, he raised a good point where previously Celery workers were not a hard requirement to install Superset but more of an optional feature. If the screenshot generation always requires Celery workers from now on, that could constitute a breaking change. Let me know your thoughts.
geido commentedon Oct 22, 2024
Thanks @michael-s-molina we are currently discussing what the next steps should be for having Celery optional and the cache.