-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Security
-
None
-
ALL
-
-
Security 2019-12-16, Dev Platform 2019-12-30, Dev Platform 2020-02-10
We have recently been doing experiments with building with VS2019, because it comes with a much faster linker. It can save us close to an hour of build time, the majority of which comes from faster linking of unit tests.
However, we are encountering an interesting crash inside the AuthorizationManagerImpl class.
Here are links to two recent instances out of a patch build:
- https://logkeeper.mongodb.org/lobster/build/811e628114f6eea47927a9e77363082c/test/5df01255c2ab682b49b2e63f#bookmarks=0%2C192&l=1
- https://logkeeper.mongodb.org/lobster/build/dcbf52fc875c3145ffa5ff6a828f7606/test/5df01059be07c47abc4e9230#bookmarks=0%2C3508&l=1
The bottom of the crash always looks like:
[js_test:auth1] 2019-12-10T21:47:03.474+0000 d21770| Assertion failed: it != end(), file C:\data\mci\df6020d8f98282b32443f3e0ae575514\src\src\third_party\abseil-cpp-master\abseil-cpp\absl/container/internal/raw_hash_set.h, line 1269 [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| 2019-12-10T21:47:03.687+0000 F - [conn1] Got signal: 22 (SIGABRT). [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| mongod.exe ...\src\mongo\util\stacktrace_windows.cpp(353) mongo::printStackTrace+0x4f [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| mongod.exe ...\src\mongo\util\signal_handlers_synchronous.cpp(242) mongo::`anonymous namespace'::abruptQuit+0xc3 [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| ucrtbased.dll raise+0x441 [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| ucrtbased.dll abort+0x39 [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| ucrtbased.dll get_wide_winmain_command_line+0x211f [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| ucrtbased.dll get_wide_winmain_command_line+0x118 [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| ucrtbased.dll wassert+0x2f [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| mongod.exe ...\src\third_party\abseil-cpp-master\abseil-cpp\absl\container\internal\raw_hash_set.h(1270) absl::container_internal::raw_hash_set<absl::container_internal::NodeHashMapPolicy<mongo::UserName,std::weak_ptr<mongo::User> >,absl::hash_internal::Hash<mongo::UserName>,std::equal_to<mongo::UserName>,std::allocator<std::pair<mongo::UserName const ,std::weak_ptr<mongo::User> > > >::erase+0x3e [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| mongod.exe ...\src\mongo\util\invalidating_lru_cache.h(277) mongo::InvalidatingLRUCache<mongo::UserName,mongo::User,mongo::AuthorizationManagerImpl::UserCacheInvalidator>::_invalidateKey+0x228 [js_test:auth1] 2019-12-10T21:47:03.687+0000 d21770| mongod.exe ...\src\mongo\db\auth\authorization_manager_impl.cpp(746) mongo::AuthorizationManagerImpl::invalidateUserByName+0x194
So this might really be an issue with the InvalidingLRUCache, or with abseil, or it could be a VS2019 issue.
CC shreyas.kalyan and jbreams.
- duplicates
-
SERVER-43721 Make AuthorizationManager use DistCache
- Closed
- is related to
-
SERVER-45341 InvalidatingLRUCache should remove active generation
- Closed
-
SERVER-43721 Make AuthorizationManager use DistCache
- Closed
- links to