[SERVER-85359] Build failure in vendored Abseil hash set under toolchain GCC shared/dynamic Created: 17/Jan/24  Updated: 07/Feb/24  Resolved: 07/Feb/24

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 8.0.0-rc0

Type: Bug Priority: Major - P3
Reporter: Jess Balint Assignee: Blake Oler
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-81801 Recover cached SBE plans Closed
Assigned Teams:
Service Arch
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Service Arch 2024-02-19, QO 2024-02-05
Participants:

 Description   

We're experiencing the following build failure.

[2024/01/10 16:05:42.598] oom_auto_retry.py captured error:
[2024/01/10 16:05:42.598] In file included from src/third_party/abseil-cpp/dist/absl/container/internal/raw_hash_map.h:24,
[2024/01/10 16:05:42.598]                  from src/third_party/abseil-cpp/dist/absl/container/node_hash_map.h:48,
[2024/01/10 16:05:42.598]                  from src/mongo/bson/bson_comparator_interface_base.h:32,
[2024/01/10 16:05:42.598]                  from src/mongo/bson/bsonobj.h:58,
[2024/01/10 16:05:42.598]                  from src/mongo/db/query/cqf_get_executor.h:39,
[2024/01/10 16:05:42.598]                  from src/mongo/db/query/cqf_get_executor.cpp:30:
[2024/01/10 16:05:42.598] In function 'bool absl::lts_20230802::container_internal::operator==(const absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::NodeHashMapPolicy<mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > >, mongo::HashImprover<mongo::sbe::PlanCacheKeyHasher, mongo::sbe::PlanCacheKey>, std::equal_to<mongo::sbe::PlanCacheKey>, std::allocator<std::pair<const mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > > > >::iterator&, const absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::NodeHashMapPolicy<mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > >, mongo::HashImprover<mongo::sbe::PlanCacheKeyHasher, mongo::sbe::PlanCacheKey>, std::equal_to<mongo::sbe::PlanCacheKey>, std::allocator<std::pair<const mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > > > >::iterator&)',
[2024/01/10 16:05:42.598]     inlined from 'bool absl::lts_20230802::container_internal::operator==(const absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::NodeHashMapPolicy<mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > >, mongo::HashImprover<mongo::sbe::PlanCacheKeyHasher, mongo::sbe::PlanCacheKey>, std::equal_to<mongo::sbe::PlanCacheKey>, std::allocator<std::pair<const mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > > > >::const_iterator&, const absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::NodeHashMapPolicy<mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > >, mongo::HashImprover<mongo::sbe::PlanCacheKeyHasher, mongo::sbe::PlanCacheKey>, std::equal_to<mongo::sbe::PlanCacheKey>, std::allocator<std::pair<const mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > > > >::const_iterator&)' at src/third_party/abseil-cpp/dist/absl/container/internal/raw_hash_set.h:1689:23,
[2024/01/10 16:05:42.598]     inlined from 'mongo::StatusWith<typename std::__cxx11::list<std::pair<const K*, V> >::iterator> mongo::LRUKeyValue<K, V, KeyValueBudgetEstimator, InsertionEvictionListener, KeyHasher, Eq>::get(const K&) const [with K = mongo::sbe::PlanCacheKey; V = std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> >; KeyValueBudgetEstimator = mongo::sbe::BudgetEstimator; InsertionEvictionListener = mongo::NoopInsertionEvictionListener; KeyHasher = mongo::sbe::PlanCacheKeyHasher; Eq = std::equal_to<mongo::sbe::PlanCacheKey>]' at src/mongo/db/query/lru_key_value.h:198:15:
[2024/01/10 16:05:42.598] src/third_party/abseil-cpp/dist/absl/container/internal/raw_hash_set.h:1620:56: error: '<unnamed>.absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::NodeHashMapPolicy<mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > >, mongo::HashImprover<mongo::sbe::PlanCacheKeyHasher, mongo::sbe::PlanCacheKey>, std::equal_to<mongo::sbe::PlanCacheKey>, std::allocator<std::pair<const mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > > > >::const_iterator::inner_.absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::NodeHashMapPolicy<mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > >, mongo::HashImprover<mongo::sbe::PlanCacheKeyHasher, mongo::sbe::PlanCacheKey>, std::equal_to<mongo::sbe::PlanCacheKey>, std::allocator<std::pair<const mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > > > >::iterator::<anonymous>.absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::NodeHashMapPolicy<mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > >, mongo::HashImprover<mongo::sbe::PlanCacheKeyHasher, mongo::sbe::PlanCacheKey>, std::equal_to<mongo::sbe::PlanCacheKey>, std::allocator<std::pair<const mongo::sbe::PlanCacheKey, std::_List_iterator<std::pair<const mongo::sbe::PlanCacheKey*, std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> > > > > > >::iterator::<unnamed union>::slot_' is used uninitialized [-Werror=uninitialized]
[2024/01/10 16:05:42.598]  1620 |       AssertSameContainer(a.ctrl_, b.ctrl_, a.slot_, b.slot_,
[2024/01/10 16:05:42.598]       |                                                      ~~^~~~~
[2024/01/10 16:05:42.598] In file included from src/mongo/db/query/partitioned_cache.h:34,
[2024/01/10 16:05:42.598]                  from src/mongo/db/query/query_stats/query_stats_on_parameter_change.h:38,
[2024/01/10 16:05:42.598]                  from build/cached/mongo/db/query/query_knobs_gen.h:29,
[2024/01/10 16:05:42.598]                  from src/mongo/db/query/query_settings/query_framework_serialization.h:35,
[2024/01/10 16:05:42.598]                  from build/cached/mongo/db/query/find_command_gen.h:44,
[2024/01/10 16:05:42.598]                  from src/mongo/db/query/find_command.h:32,
[2024/01/10 16:05:42.598]                  from src/mongo/client/dbclient_cursor.h:49,
[2024/01/10 16:05:42.598]                  from src/mongo/db/pipeline/expression_context.h:49,
[2024/01/10 16:05:42.598]                  from src/mongo/db/matcher/expression_with_placeholder.h:45,
[2024/01/10 16:05:42.598]                  from src/mongo/db/matcher/expression_parser.h:47,
[2024/01/10 16:05:42.598]                  from src/mongo/db/catalog/collection.h:61,
[2024/01/10 16:05:42.598]                  from src/mongo/db/query/cqf_get_executor.h:40,
[2024/01/10 16:05:42.598]                  from src/mongo/db/query/cqf_get_executor.cpp:30:
[2024/01/10 16:05:42.598] src/mongo/db/query/lru_key_value.h: In member function 'mongo::StatusWith<typename std::__cxx11::list<std::pair<const K*, V> >::iterator> mongo::LRUKeyValue<K, V, KeyValueBudgetEstimator, InsertionEvictionListener, KeyHasher, Eq>::get(const K&) const [with K = mongo::sbe::PlanCacheKey; V = std::shared_ptr<const mongo::PlanCacheEntryBase<mongo::sbe::CachedSbePlan, mongo::plan_cache_debug_info::DebugInfoSBE> >; KeyValueBudgetEstimator = mongo::sbe::BudgetEstimator; InsertionEvictionListener = mongo::NoopInsertionEvictionListener; KeyHasher = mongo::sbe::PlanCacheKeyHasher; Eq = std::equal_to<mongo::sbe::PlanCacheKey>]':
[2024/01/10 16:05:42.598] src/mongo/db/query/lru_key_value.h:198:15: note: '<anonymous>' declared here
[2024/01/10 16:05:42.598]   198 |         if (i == _kvMap.end()) {
[2024/01/10 16:05:42.598]       |             ~~^~~~~~~~~~~~~~~
[2024/01/10 16:05:42.598] cc1plus: all warnings being treated as errors

This came up in the past https://github.com/abseil/abseil-cpp/pull/237

But was fixed here https://github.com/abseil/abseil-cpp/commit/b16aeb6756bdab08cdf12d40baab5b51f7d15b16#diff-947f270c4850330dd0a5720001fee9e6817c87c1203469ca213b47c7f58ebfe1R790



 Comments   
Comment by Githook User [ 06/Feb/24 ]

Author:

{'name': 'Blake Oler', 'email': 'blake.oler@mongodb.com', 'username': 'BlakeIsBlake'}

Message: SERVER-85359 Change abseil branch to reflect Mongo-local change (#18712)

GitOrigin-RevId: 3c7195fc92e0d7b78a1f24423e0da5a828ea2ae7
Branch: master
https://github.com/mongodb/mongo/commit/f6339ef02ba3aeff935ba6715c9b543e26289310

Comment by Blake Oler [ 05/Feb/24 ]

Didn't realize abseil was vendored into mongodb-forks. I'll need to do some extra work to ensure this change is reflected on that repo.

Comment by Githook User [ 03/Feb/24 ]

Author:

{'name': 'Jess Balint', 'email': 'jbalint@gmail.com', 'username': 'jbalint'}

Message: SERVER-85359 Build failure in vendored Abseil hash set under toolchai… (#18658)

GitOrigin-RevId: 8aee21a654536b8072d0495878608a3606295ec8
Branch: master
https://github.com/mongodb/mongo/commit/983c47dcc55fd7cd6c11df659a165db3808e54c9

Comment by Phoebe Du [ 23/Jan/24 ]

Look to patch our own fork at mongodb-forks/abseil-cpp or see if there's a new version could fix this

Generated at Thu Feb 08 06:57:32 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.