[ https://issues.apache.org/jira/browse/XERCESC-2165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16747920#comment-16747920 ]
Roger Leigh commented on XERCESC-2165: -------------------------------------- If you aren't supposed to acquire a lock during DllMain, then isn't this a problem in the OpenDSS library due to how it's using Xerces-C++? I'm not sure why C++11 mutexes would be any different than the original Windows implementation, unless there's an implementation defect in VS2013's runtime. Both should end up calling Enter/LeaveCriticalSection. Is it possible to get a stack trace with the msvcr120d symbols? Are they installed as the appropriate PDB? Regarding the release notes, it was ticket XERCESC-2140 which should have been closed to include. I've done so now. This can certainly be documented as a known issue. It's certainly the case that the CI testing is currently only done for VS2015, with VS2013 and earlier left untested. And we should probably add VS2017. I would not be averse to testing more Visual Studio versions if someone is willing to support them, but I don't personally have the time to dedicate to it. Kind regards, Roger > StdMutexMgr not working properly on VS2013 / Windows 7 > ------------------------------------------------------ > > Key: XERCESC-2165 > URL: https://issues.apache.org/jira/browse/XERCESC-2165 > Project: Xerces-C++ > Issue Type: Bug > Components: Utilities > Affects Versions: 3.2.2 > Reporter: Andreas Kleber > Priority: Minor > Attachments: xerces-hang.png > > > I am building a dynamic library which statically links OpenDSS, which > statically links ACE which statically links xerces-c with Visual Studio 2013. > When I run my application on Windows 7 the loading of my dll hands during > static initialization in StdMutexManager::lock(). See attached screenshot. > On windows 10 the same binaries work as expected. > I am building xerces 3.2.2 with default parameters as static library with > VS2013. During my investigation I found that xerces 3.2.1 works as well as > specifying the WindowsMutexMgr during configure, because, well, StdMutexMgr > was introduced in 3.2.2. Btw, this introduction of a new default Mutex > Manager (at least default in my environment) is not mentioned in the release > notes. Whould have helped me a lot.... > In my environment all test pass on Windows 7 with StdMutexMgr. > Additional note: > [Microsoft|[https://docs.microsoft.com/en-us/windows/desktop/dlls/dynamic-link-library-best-practices]] > recommends not to acquire syncronization during dllmain. > As Windows 7 and VS 2013 are old and a workaround exists, this issue here is > intended as "known issue". -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org