-
Notifications
You must be signed in to change notification settings - Fork 21
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
Missing XMP data causes library to hang indefinitely #95
Comments
Is it actually hanging at The terminate timeout doesn't affect Linux typically, though there was that Windows hanging bug that is still semi-fixed in Python 3.12 I'd have to set up a Linux environment to test your exact case with files... if it hangs on select, it's likely there's either something weird about the metadata in the file, or pyexiftool is trying to read an empty file descriptor, which causes the block |
This is what I get with debug logging enabled:
Full repro code in case I'm using the library wrong: https://gist.github.com/ninas/79cd2fdd476d64b468145aedbf69dbc0 Using trusty print statements in the library code, I can see that it gets stuck here: pyexiftool/exiftool/exiftool.py Line 132 in e54f96c
Let me know if there's anything extra you'd like me to try. It does work fine when using |
Hi there,
I've attached the gif I noticed this behavior on:
I'm running this on Arch Linux, with Exiftool 12.93
This is the line that gets hung:
pyexiftool/exiftool/exiftool.py
Line 132 in e54f96c
Quick repro:
This then hangs until manually interrupted.
When running the same using
exiftool
directly, it returns without issue:When requesting a tag that doesn't exist directly using
exiftool
, some warnings are printed, but otherwise everything works as expected:Interestingly enough, when requesting all metadata fields, rather than specific tags, then the library works as expected:
By loosely looking through the code, I could see that there's a 30 second timeout once terminate has been called. It would be great to have a general user-specified timeout option for the whole command so that this can be adjusted to match a user's usecase.
The text was updated successfully, but these errors were encountered: