Closed oqsh closed 22 hours ago
Objective-C
2.1.9
iOS
Cocoapods
After upgrading from 2.0.1 to 2.1.9, met new Crash issue:
1 [WMMC] std::__1::__tree<std::__1::__value_type<unsigned int, std::__1::array<WCDB::HandlePool::ReferencedHandle, (unsigned long)10> >, std::__1::__map_value_compare<unsigned int, std::__1::__value_type<unsigned int, std::__1::array<WCDB::HandlePool::ReferencedHandle, (unsigned long)10> >, std::__1::less<unsigned int>, true>, std::__1::allocator<std::__1::__value_type<unsigned int, std::__1::array<WCDB::HandlePool::ReferencedHandle, (unsigned long)10> > > >::find<unsigned int>(unsigned int const&) (in WMMC) [inlined] __tree:2466 2 [WMMC] std::__1::map<unsigned int, std::__1::array<WCDB::HandlePool::ReferencedHandle, (unsigned long)10>, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::array<WCDB::HandlePool::ReferencedHandle, (unsigned long)10> > > >::find(unsigned int const&) (in WMMC) [inlined] map:1380 3 [WMMC] WCDB::ThreadLocal<std::__1::array<WCDB::HandlePool::ReferencedHandle, (unsigned long)10> >::getOrCreate() (in WMMC) ThreadLocal.hpp:74 4 [WMMC] WCDB::HandlePool::flowBack(WCDB::HandleType, std::__1::shared_ptr<WCDB::InnerHandle> const&) (in WMMC) HandlePool.cpp:265 5 [WMMC] std::__1::__function::__value_func<void (std::__1::shared_ptr<WCDB::InnerHandle>&)>::operator()(std::__1::shared_ptr<WCDB::InnerHandle>&) const (in WMMC) [inlined] functional:1885 6 [WMMC] std::__1::function<void (std::__1::shared_ptr<WCDB::InnerHandle>&)>::operator()(std::__1::shared_ptr<WCDB::InnerHandle>&) const (in WMMC) [inlined] functional:2560 7 [WMMC] WCDB::Recyclable<std::__1::shared_ptr<WCDB::InnerHandle> >::onUnreferenced() (in WMMC) Recyclable.hpp:124 8 [WMMC] WCDB::Recyclable<std::__1::shared_ptr<WCDB::InnerHandle> >::~Recyclable() (in WMMC) Recyclable.hpp:113 9 [WMMC] std::__1::pair<unsigned int const, WCDB::RecyclableHandle>::~pair() (in WMMC) [inlined] utility:297 10 [WMMC] std::__1::pair<unsigned int const, WCDB::RecyclableHandle>::~pair() (in WMMC) [inlined] utility:297 11 [WMMC] std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, void*> > >::destroy<std::__1::pair<unsigned int const, WCDB::RecyclableHandle>, void, void>(std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, void*> >&, std::__1::pair<unsigned int const, WCDB::RecyclableHandle>*) (in WMMC) [inlined] allocator_traits.h:317 12 [WMMC] std::__1::__tree<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, std::__1::__map_value_compare<unsigned int, std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, std::__1::less<unsigned int>, true>, std::__1::allocator<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle> > >::destroy(std::__1::__tree_node<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, void*>*) (in WMMC) __tree:1801 13 [WMMC] std::__1::__tree<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, std::__1::__map_value_compare<unsigned int, std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, std::__1::less<unsigned int>, true>, std::__1::allocator<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle> > >::~__tree() (in WMMC) [inlined] __tree:1789 14 [WMMC] std::__1::__tree<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, std::__1::__map_value_compare<unsigned int, std::__1::__value_type<unsigned int, WCDB::RecyclableHandle>, std::__1::less<unsigned int>, true>, std::__1::allocator<std::__1::__value_type<unsigned int, WCDB::RecyclableHandle> > >::~__tree() (in WMMC) [inlined] __tree:1786 15 [WMMC] std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > >::~map() (in WMMC) [inlined] map:1092 16 [WMMC] std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > >::~map() (in WMMC) [inlined] map:1090 17 [WMMC] std::__1::default_delete<std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > > >::operator()(std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > >*) const (in WMMC) [inlined] memory:1428 18 [WMMC] std::__1::unique_ptr<std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > >, std::__1::default_delete<std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > > > >::reset(std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > >*) (in WMMC) [inlined] memory:1689 19 [WMMC] std::__1::unique_ptr<std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > >, std::__1::default_delete<std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > > > >::~unique_ptr() (in WMMC) [inlined] memory:1643 20 [WMMC] std::__1::unique_ptr<std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > >, std::__1::default_delete<std::__1::map<unsigned int, WCDB::RecyclableHandle, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, WCDB::RecyclableHandle> > > > >::~unique_ptr() (in WMMC) memory:1643 21 [dyld] invocation function for block in dyld4::RuntimeState::_finalizeListTLV(void*) (in dyld) +52 27 [libsystem_pthread.dylib] _start_wqthread (in libsystem_pthread.dylib) +4```
The crash rate of it is pretty small in our application, I don't want to analyze it in short term.
The language of WCDB
Objective-C
The version of WCDB
2.1.9
The platform of WCDB
iOS
The installation of WCDB
Cocoapods
What's the issue?
After upgrading from 2.0.1 to 2.1.9, met new Crash issue: