-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Service Arch
-
Fully Compatible
-
ALL
-
Service Arch 2023-07-24
When finding an unknown decoration type while scanning through the service context's decorations, the GDB pretty printer halts printing and shows the "No type named" error.
A possible way to solve this would be to add the equivalent try/except logic that is here in this point too.
(Thanks max.hirschhorn@mongodb.com)
Example from a recent core dump:
(gdb) mongodb-service-context $1 = { <mongo::Decorable<mongo::ServiceContext>> = Decorable<mongo::ServiceContext> with 166 elems = { [0:0xaaaaf1f23008:mongo::PeriodicThreadToAbortExpiredTransactions] = { _mutex = { <std::__mutex_base> = { _M_mutex = { __data = { __lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = { __prev = 0x0, __next = 0x0 } }, __size = '\000' <repeats 47 times>, __align = 0 } }, <No data fields>}, _anchor = std::shared_ptr<mongo::PeriodicJobAnchor> (use count 2, weak count 0) = { get() = 0xaaaaf7274090 } }, [1:0xaaaaf1f23048:mongo::ClusterServerParameterInitializer] = { <mongo::ReplicaSetAwareService<mongo::ClusterServerParameterInitializer>> = { <mongo::ReplicaSetAwareInterface> = { _vptr.ReplicaSetAwareInterface = 0xaaaaede354b0 <vtable for mongo::ClusterServerParameterInitializer+16> }, <No data fields>}, <No data fields>}, [2:0xaaaaf1f23050:mongo::DiskSpaceMonitor] = { _job = { _handle = std::shared_ptr<mongo::PeriodicRunner::ControllableJob> (empty) = { get() = 0x0 } }, _mutex = { <std::__mutex_base> = { _M_mutex = { __data = { __lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = { __prev = 0x0, __next = 0x0 } }, __size = '\000' <repeats 47 times>, __align = 0 } }, <No data fields>}, _actions = std::vector of length 1, capacity 1 = {std::unique_ptr<mongo::DiskSpaceMonitor::Action> = { get() = 0xaaaaf1fe9980 }} }Traceback (most recent call last): File "buildscripts/gdb/mongo_printers.py", line 356, in children type_t = gdb.lookup_type(type_name) gdb.error: No type named std::unique_ptr<mongo::(anonymous namespace)::ChangeStreamExpiredPreImagesRemover>. ... },
- depends on
-
SERVER-78390 Decorable subsystem refactoring
- Closed
- related to
-
SERVER-59856 Hang analyzer gdb script raises gdb.error
- Backlog