Opened 7 months ago
#22224 new defect
Regression: pfnClientInitialize() fails if called from a different thread
Reported by: | michalprivoznik | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox-7.1.4 |
Keywords: | Cc: | michalprivoznik | |
Guest type: | other | Host type: | Linux |
Description
In libvirt, we have a main thread, that initializes hypervisor drivers. In terms of VBox driver this means, it loads
VBoxXPCOMC.so
at runtime (via dlsym()
) and then tries to get version ->pfnGetVersion()
. After this a pool of worker threads is spawned which then execute individual APIs. The very first thread to execute an API against VBox driver then calls ->pfnClientInitialize()
. Now, with 7.0.x this worked flawlessly (and even with older 6.x.x releases), but with 7.1.0 we're seeing the function returning an error.
I wrote a small reproducer even that mimics what libvirt is doing. BTW: I've even added ->pfnClientThreadInitialize()
call to the other threads but to no help.
vbox_repro.c