-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[service] Unpredictable init_once_begin_initialize link errors in Visual Studio 16 agent #4826
Comments
Maybe related, I am getting some unexpected I found the following piece of information https://developercommunity.visualstudio.com/t/-dyn-tls-on-demand-init-and-tls-guard-related-weir/1010557 which indicates that there could be a mismatch beween the compiler and library ? |
Yes, it's exactly the issue we have I think. And
|
Yeah, there was an ABI break in 16.5, see: https://docs.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-160#tls-guard-changes and since Conan only considers major MSVC versions this becomes a bit fragile. There is a longer discussion that touches upon this here: conan-io/conan#3311 |
Here's a workaround and here's some background information. The TLDR
|
Hi! I think the best thing we can do is to ensure that all windows servers are using exactly the same VS version (first be deterministic, then the rest). Now I can see that two versions are reported for VS 2017 (and VS 2019):
vs
The only sustainable policy can be to "install latest update" and I think it is what we should commit to. Whenever we provision a new Windows server we need to either update all of them or provision all instances and decommission previous ones. Of course there is still an underlying issue, if that last bit is not included in the packageID (given we are using compiler Does it sound good? |
@jgsogo sounds good to me. |
It's been working like this for a while now. Whenever we deploy a new server... we recreate all of them. |
Visual Studio 16 agent randomly fails to link symbols like init_once_begin_initialize (should live in kernel32: https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-initoncebegininitialize). We have to close/open PR until it works.
Affected PR:
#4810
#4798
#4752 (/cc @mathbunnyru)
The text was updated successfully, but these errors were encountered: