-
Notifications
You must be signed in to change notification settings - Fork 26
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
Images failing to load in live builds #234
Comments
Latest failing build log is here: https://readthedocs.org/api/v2/build/14089116.txt |
It seems to me that this part of the log may be relevant:
Note: This may also be a red herring because the checkout of the objects themselves seems to have succeeded: On that, see also further down:
As far as I can tell, the warning count refers to: |
@gonzalo-bulnes Pretty sure it's the LFS setup failing; note how images like https://docs.securedrop.org/en/stable/_images/journalist-delete_source_account.png resolve to LFS pointers:
This from the build log
suggests to me that the installation of Lines 21 to 27 in 3877932
Restarting the build makes no difference; this is a persistent failure that started about 2 days ago. I don't see any changes in this repo that are clearly correlated. It's possible that RTD's build environment has changed. I'll see if I can reproduce the issue in a fork as a first step. |
Tested a bit more. Findings so far:
I did get exactly one successful build with images in my fork, just after making the change to Note how it does not include the One additional mystery: I am seeing both the One thing I didn't get to try yet is to replace the direct |
Wow, that's a super clear recap! I'll try to reproduce it tomorrow as well, and take a look at the Python
Disclaimer: I haven't looked. Are the builds actually failing (being marked as failed)? Or might there be an issue with serving the images vs retrieving them / putting them in the right place? I guess what I'm asking is if the git-lfs errors could be non-fatal and something else started failing downstream? |
Somewhere in the build process LFS content is being reverted to pointers, even if we do get images reified in the working tree at the beginning of the build, via I tried using the RTD configuration file to install I also used the configuration file to ensure RTD was using our requirements file. That made no difference. None of the Sphinx or RTD code I've looked at so far seems to be doing anything more than simple copies of the images, so I don't know what's happening to them. |
Filed upstream issue (though LFS is not officially supported, perhaps they can give some pointers): readthedocs/readthedocs.org#8288 |
👋 @eloquence @rmol Concretely, I could go through the docs today and open a PR to improve the sections that suffer the most when images are missing if that seems useful. To illustrate what I'm thinking: a couple of days ago, I noticed that the section Set Up the Network Firewall relies on two screenshots to describe the firewall rules. There is a description of abstract rules further down, but arguably those could be made more visible, and there could also be more precise content complementing or replacing the missing image. (One of the |
Hello, @gonzalo-bulnes! Thanks for offering to help out. You're right, troubleshooting this problem without direct commit access is likely to be a frustrating problem. =/ I took a brief look just now, and I'm sorry to say I don't have anything to add to @rmol's analysis earlier today. Here's the latest info:
As @rmol observed, the images are indeed valid PNGs, but then they're rather bizarrely reverted to pointers again at some later step in the build prep. Perhaps inspecting the sphinx build logic in more detail would let us inject steps in various parts of the run. It doesn't appear that RTD will let us run any cleanup tasks after the sphinx build command has run. So, unfortunately, it appears the images in the docs will remain broken over the weekend, but will pick this back up on Monday and try again. |
👌 I'll take a closer look at what the docs look like without images, and see what I can propose to make that better. If it ends up there is some immediate value to it, that will be an available option, and if not it will anyway be a step towards making the docs more resilient in the future. (I like to think of accessibility in broad terms as a problem of content availability in varied circumstances.) |
The plan of record is to investigate this a bit further today/tomorrow (upstream has also weighed in), and to potentially disable LFS on this repo if we can't resolve. Longer term, we are considering self-hosting as an option, which would give us more control over the build architecture (this is no criticism of RTD, which is a great service, but SecureDrop may have outgrown it a while ago). |
Two cents comment: I notice that some images in the docs could easily be optimized significantly. (Proof of concept, running If disabling LFS, it may be worth adding a step (with an automated check or not) to optimize the images. (Since images would be optimized by the time they are integrated into |
Appears LFS-related, see journalist guide for example:
https://docs.securedrop.org/en/stable/journalist.html
Example image URL: https://docs.securedrop.org/en/stable/_images/journalist-delete_submissions.png
The actual file contents are an LFS pointer, so something appears to be going wrong with the LFS setup in
conf.py
The text was updated successfully, but these errors were encountered: