-
Notifications
You must be signed in to change notification settings - Fork 612
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
[BUG] OpenImageIO crashes without error on some Windows systems #4641
Comments
Hey, two out of four systems is better than zero out of four, right? :) Thanks for creating this issue -- it's been tricky for us to assess and diagnose Windows-related bugs, because apparently very few of us are familiar with / have access to Windows! On Slack, we recently discovered that the Windows wheels are building and linking a dynamic TIFF library instead of static, which was causing the OIIO bindings to get confused with other shared TIFF libs found at runtime, in certain contexts. (e.g., they'd work with one version of Nuke's interpreter, but not another). So that's something we'll definitely look into. Aside from that, there is an environment variable you can set that might coerce the bindings / oiiotool into behaving properly. Would you try setting If that causes OIIO to suddenly start working where it had previously failed, that will help us pinpoint what we need to do to get our Windows wheels working reliably. It's very frustrating that the crashes you're experiencing do not produce error messages. We've seen this before with Windows, and it's not clear to me how to force a more verbose output. Is there anything you can tell us about the similarities among / differences between the two system + runtime enviornments + python interpreter versions where the OIIO wheels did work vs where it did not work? |
Unfortunately, setting OPENIMAGEIO_PYTHON_LOAD_DLLS_FROM_PATH did not help—there's still no error message or any effect. The system is Windows 10 with the latest updates, and Python and OpenImageIO are the same on all systems. The only difference could be in the additional software installed on these systems. |
This might be due to the MSVC Redist (c runtime et al) package being installed on the 2 machines that work. If you look at the list of installed programs, do you see something like "Microsoft Visual C++ 2015-2022 Redistributable (x64) ..." on the 2 machines that work but not on the machines that don't work? |
I compared this, and the same versions were installed on both system versions. I didn't find any differences in this regard. |
Thank you for checking the LOAD_DLLS_FROM_PATH environment variable thing, that crosses one issue off the list... I don't suppose I could get you to install Three tests I'd like to try:
|
This does smell like a VC Runtime version difference between the build and runtime environments... We recently ran into issues with OCIO crashing at initialization time due to runtime ABI differences. These turned out to be due to changes to the ABI that made the More detailed breakdown: actions/runner-images#10004 (comment) So, the first question I would probably ask is: what version of the VC runtime is installed on the runner that produces the OIIO build that's bundled in the Python wheel? |
I installed the latest Python 3.13.2 on Windows 10 and OpenImageIO using pip3 install OpenImageIO v3.0.3.1.
On one system, it works correctly, but on another similar system, it crashes when running the same commands on identical files:
oiio.ImageBuf(file)
I also tested the following:
oiiotool.exe -v --info file
However, it also crashes without displaying any error. Out of four Windows 10 systems, it works on two and fails on the other two.
Does the OpenImageIO installation require any additional dependencies or configurations on the system?
The text was updated successfully, but these errors were encountered: