https://bugs.winehq.org/show_bug.cgi?id=51086
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|winegstreamer hangs in |winegstreamer hangs in |gst_init_check() while |gst_init_check() while |registering libgstges.so |registering libgstges.so |(GStreamer Editing Services |(GStreamer Editing Services |plugin) |plugin); may manifest as | |hang during prefix creation | |and subsequent failure to | |load applications with | |"wine: could not load | |kernel32.dll, status | |c0000135"
--- Comment #17 from Zebediah Figura z.figura12@gmail.com --- (In reply to Alex S from comment #16)
(In reply to Zebediah Figura from comment #15)
This is a GStreamer bug; the plugin is hanging in its registration function.
Are you entirely sure? How exactly anything hanging could lead to the "could not load kernel32.dll" error message? Why would winecfg load gstreamer in the first place? (And as far FreeBSD's Wine is concerned, it's typically built without gstreamer support.)
Now, it's almost certain there is some kind of mixup, but in my opinion the actual bug report message should take priority over everything else.
When wineboot creates the prefix, it does several tasks, and one is registering a set of builtin DLLs. That includes winegstreamer. winegstreamer loads libgstreamer on load, which does a scan for plugins and attempts to register them all into the local cache.
Another task wineboot does is to copy system DLLs into the prefix. If a DLL isn't present in the prefix, it can't be subsequently loaded, and will return STATUS_DLL_NOT_FOUND (i.e. c0000135). That includes kernel32.
Granted, wine could be more robust at one or more of these steps. We could include a timeout when registering builtin DLLs. We don't actually need to load libgstreamer when registering it (and probably shouldn't anyway). But at the same time, this bug is going to happen whenever someone tries to load libgstreamer, so it's not like the bug report is actually going to go away. It's a sticky situation.