Skip to content
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

Windows dependency on Microsoft Visual C++ Redistributable #23

Open
dovanbel opened this issue Nov 3, 2024 · 5 comments
Open

Windows dependency on Microsoft Visual C++ Redistributable #23

dovanbel opened this issue Nov 3, 2024 · 5 comments

Comments

@dovanbel
Copy link

dovanbel commented Nov 3, 2024

Hi @LucaScheller

In a previous issue I told you about the CachedResolver crashing Houdini with a segmentation fault. I resolved the issue by re-installing the MS Visual C++ redistributable. I had the same issue again today. I suspect installing an old version of Thinkbox Deadline corrupted the installation, but I'm not certain that this is the cause.

My (noob) question is, could the CachedResolver be compiled for Windows in such a way to avoid this kind of dependency ? We are slowly starting to use it in production and I'm afraid this issue will happen more often as it will be used on more workstations at our studio.

Regards

@LucaScheller
Copy link
Owner

Hey,
I can give it a shot again, but this, for me, is too a bit of an unfamiliar territory. The last time I tried it, there were hard to resolve issues due to boost /python.

Since the GitHub runners are also not VFX reference platform compliant, that might explain the .libs problems. Setting that up to be fully compliant is a bit out of the scope of this project, sorry.

You could also try self compiling it. The .bat files in this repo should make it very straight forward, all you need to do is download the MSVC compiler (installing Visual Studio with the C++ packages should do the trick, make sure to install the v142/143 compiler version based on your Houdini version) . If you have issues there, I'd be happy to walk you through it.

Cheers,
Luca

@dovanbel
Copy link
Author

dovanbel commented Nov 4, 2024

Hi,

I already successfully compiled it following the .bat instructions. I will ask around me if there's any way to get rid of that dependency.

Thanks

@LucaScheller
Copy link
Owner

I did some more research, according to stackoverflow (and chatgpt) statically linking from dynamically linked files (as that is what Houdini ships with), is not straight forward.

Could you share the error again that you are getting? I wonder what specifically is calling into standard clibs that is making it crash.

What happens when you run:

from pxr import Ar
from usdAssetResolver import CachedResolver

@dovanbel
Copy link
Author

dovanbel commented Nov 7, 2024

I have not yet managed to reproduce the crash, but here is the log of the crash from a few days ago, when I reported this issue :

Crash report from 800ccaaf; Houdini FX Version 20.5.332 [windows-x86_64-cl19.35]
Uptime 141 seconds
Tue Nov  5 09:23:38 2024
Caught signal 11

Traceback from 16536 ThreadId=0x00004274
CURRENT THREAD 17012
+0x7ff8af792f58 [Thrd_yield] C:\WINDOWS\SYSTEM32\MSVCP140.dll
+0x7ff8000e85f1 [CachedResolverContext::ResolveAndCachePair] \\VSERVER01\shotgun\donatdev2024\install\git\tk-framework-nozonusd.git\v0.1.2\VFX-UsdAssetResolver\CachedResolver_v0.7.3_houdini_20.5.332.py310\lib\cachedResolver.dll
+0x7ff8000e6676 [pxrInternal_v0_24__pxrReserved__::CachedResolver::_Resolve] \\VSERVER01\shotgun\donatdev2024\install\git\tk-framework-nozonusd.git\v0.1.2\VFX-UsdAssetResolver\CachedResolver_v0.7.3_houdini_20.5.332.py310\lib\cachedResolver.dll
+0x7ff89ba904d8 [pxrInternal_v0_24__pxrReserved__::ArResolver::~ArResolver] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_ar.dll
+0x7ff89ba8e0fe [pxrInternal_v0_24__pxrReserved__::ArSplitPackageRelativePathOuter] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_ar.dll
+0x7ff89ba98621 [pxrInternal_v0_24__pxrReserved__::ArResolver::_IsRepositoryPath] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_ar.dll
+0x7ff89ba91c7f [pxrInternal_v0_24__pxrReserved__::ArResolver::Resolve] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_ar.dll
+0x7ff80e40b188 [pxrInternal_v0_24__pxrReserved__::Sdf_ValueTypeNamesType::~Sdf_ValueTypeNamesType] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_sdf.dll
+0x7ff80e55df98 [pxrInternal_v0_24__pxrReserved__::SdfLayer::WriteDataFile] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_sdf.dll
+0x7ff80e551fc1 [pxrInternal_v0_24__pxrReserved__::SdfLayer::FindOrOpen] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_sdf.dll
+0x7ff879c150b4 [pxrInternal_v0_24__pxrReserved__::operator<<] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_pcp.dll
+0x7ff879c1ba91 [pxrInternal_v0_24__pxrReserved__::PcpIsTimeScalingForLayerTimeCodesPerSecondDisabled] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\libpxr_pcp.dll
+0x2d2ec273 [tbb::interface7::internal::task_arena_base::internal_max_concurrency] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\tbb.dll
+0x2d2eaf13 [tbb::interface7::internal::task_arena_base::internal_max_concurrency] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\tbb.dll
+0x2d2e51a4 [tbb::task_scheduler_init::default_num_threads] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\tbb.dll
+0x2d2e476e [tbb::task_scheduler_init::default_num_threads] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\tbb.dll
+0x2d2df7b8 [tbb::internal::thread_sleep_v3] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\tbb.dll
+0x2d2df73b [tbb::internal::thread_sleep_v3] C:\Program Files\Side Effects Software\Houdini 20.5.332\bin\tbb.dll
+0x7ff8b5a51bb2 [configthreadlocale] C:\WINDOWS\System32\ucrtbase.dll
+0x7ff8b6227374 [BaseThreadInitThunk] C:\WINDOWS\System32\KERNEL32.DLL
+0x7ff8b823cc91 [RtlUserThreadStart] C:\WINDOWS\SYSTEM32\ntdll.dll

@dovanbel
Copy link
Author

dovanbel commented Nov 7, 2024

I uninstalled every MS Visual C++ redistributable I had on my pc, rebooted and the CachedResolver is still working (Houdini doesn't crash). So I'm a bit puzzled.
Anyway I was raising this issue in case it would be 'trivial' to remove such dependency. But as you say this isn't, then let it be. Lots of other programs are installing those redistributables anyway

Cheers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants