-
Notifications
You must be signed in to change notification settings - Fork 202
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
Update xattr.py to not throw hard errors on some Linux systems. #784
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
xattr does not work in some Linux file systems, or in Linux running under WSL, or in some docker containers in general. This will make the failures of xattr no longer hard errors in these cases. Use of xattr for storing etag data is not ideal in the first place and is already solved in URLDownloaderPython by using a json metadata file instead, but this will help with compatibility in general for older methods. This will have the drawback of not detecting that the already downloaded file is the same correctly due to lack of metadata for any recipe currently relying on xattr. That said, redownloading the file seems better than throwing hard errors.
This should prevent hard errors in the case of "attempting to store extended attributes on files on NFS mounts is known to still fail": #778 |
minor tweak, want to see if this kicks off unittesting
nmcspadden
reviewed
Apr 15, 2022
Code/autopkglib/xattr.py
Outdated
Comment on lines
89
to
90
print("WARNING: xattr.getxattr threw OSError.") | ||
print(e) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could combine this:
print(f"WARNING: xattr.getxattr threw OSError: {e}")
EDIT: I'm going clinically insane |
combine error messaging
combine error messages
combined xatter error messaging as requested @nmcspadden |
nmcspadden
pushed a commit
that referenced
this pull request
Sep 24, 2022
* Update xattr.py xattr does not work in some Linux file systems, or in Linux running under WSL, or in some docker containers in general. This will make the failures of xattr no longer hard errors in these cases. Use of xattr for storing etag data is not ideal in the first place and is already solved in URLDownloaderPython by using a json metadata file instead, but this will help with compatibility in general for older methods. This will have the drawback of not detecting that the already downloaded file is the same correctly due to lack of metadata for any recipe currently relying on xattr. That said, redownloading the file seems better than throwing hard errors. * Update xattr.py minor tweak, want to see if this kicks off unittesting * Update xattr.py combine error messaging * Update xattr.py combine error messages
nmcspadden
pushed a commit
that referenced
this pull request
Jul 24, 2023
* Update xattr.py xattr does not work in some Linux file systems, or in Linux running under WSL, or in some docker containers in general. This will make the failures of xattr no longer hard errors in these cases. Use of xattr for storing etag data is not ideal in the first place and is already solved in URLDownloaderPython by using a json metadata file instead, but this will help with compatibility in general for older methods. This will have the drawback of not detecting that the already downloaded file is the same correctly due to lack of metadata for any recipe currently relying on xattr. That said, redownloading the file seems better than throwing hard errors. * Update xattr.py minor tweak, want to see if this kicks off unittesting * Update xattr.py combine error messaging * Update xattr.py combine error messages
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
xattr does not work in some Linux file systems, or in Linux running under WSL, or in some docker containers in general. This will make the failures of xattr no longer hard errors in these cases.
Use of xattr for storing etag data is not ideal in the first place and is already solved in URLDownloaderPython by using a json metadata file instead, but this will help with compatibility in general for older methods. This will have the drawback of not detecting that the already downloaded file is the same correctly due to lack of metadata for any recipe currently relying on xattr. That said, redownloading the file seems better than throwing hard errors.
I believe the behavior should be similar to how these older methods work on Windows today since on Windows xattr is no-op within autopkg.