larpon / QtFirebase

An effort to bring Google's Firebase C++ API to Qt + QML
MIT License
284 stars 83 forks source link

Firebase crash on ios, segmantation fault on thread_mutex_lock. #140

Open Katos opened 4 years ago

Katos commented 4 years ago

Hey, I had 4 cases of segmentation fault of qtFirebase. Looks like it is related to changing orientation of app, during that time qtfirebase is re-initialised and mutex is not correctly handled. Is it an issue with how qtirebase call init() or should i post it on Firebase project?

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [81193]
Triggered by Thread:  0

Thread 0 name:
Thread 0 Crashed:
0   libsystem_pthread.dylib         0x0000000190a693fc pthread_mutex_lock$VARIANT$mp + 0 (pthread_mutex.c:1491)
1   app                             0x00000001025fda80 std::__1::__tree_const_iterator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, flatbuffers::EnumVal*>, std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, flatbuffers::EnumVal*>, void*>*, long> std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, flatbuffers::EnumVal*>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, flatbuffers::EnumVal*>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, flatbuffers::EnumVal*> > >::find<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >+ 1694336 (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const + 12
2   app                             0x0000000102601110 std::__1::enable_if<(__is_forward_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::value) && (is_constructible<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::iterator_traits<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::reference>::value), void>::type std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assign<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>+ 1708304 (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 36
3   app                             0x00000001025fcc18 firebase::analytics::Initialize+ 1690648 (firebase::App const&) + 84
4   app                             0x000000010252bb9c QtFirebaseAnalytics::init() + 834460 (qtfirebaseanalytics.cpp:0)
5   app                             0x00000001034ca364 QQmlExpression::QQmlExpression+ 17212260 () + 2224
6   app                             0x000000010252ab5c QtFirebase::requestInit() + 830300 (qtfirebase.cpp:0)
7   app                             0x00000001034ca364 QQmlExpression::QQmlExpression+ 17212260 () + 2224
8   app                             0x00000001034cec90 QWindowSystemInterfacePrivate::GeometryChangeEvent::GeometryChangeEvent+ 17230992 (QWindow*, QRect const&) + 120
9   app                             0x00000001034c2e9c QObject::event+ 17182364 (QEvent*) + 80
10  app                             0x00000001034a26f8 QObject::userData+ 17049336 (unsigned int) const + 124
11  app                             0x00000001034a22cc QVector<QObjectUserData*>::resize+ 17048268 (int) + 204
12  app                             0x00000001034e7bc4 QEucJpCodec::QEucJpCodec+ 17333188 () + 932
13  app                             0x000000010353c9d8 QIPAddressUtils::parseIp4Internal+ 17680856 (unsigned int&, char const*, bool) + 620
14  CoreFoundation                  0x0000000190cd0e1c __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 (CFRunLoop.c:1766)
15  CoreFoundation                  0x0000000190cd0b58 __CFRunLoopDoTimer + 880 (CFRunLoop.c:2357)
16  CoreFoundation                  0x0000000190cd0228 __CFRunLoopDoTimers + 276 (CFRunLoop.c:2512)
17  CoreFoundation                  0x0000000190ccb364 __CFRunLoopRun + 1920 (CFRunLoop.c:0)
18  CoreFoundation                  0x0000000190cca8bc CFRunLoopRunSpecific + 464 (CFRunLoop.c:3192)
19  GraphicsServices                0x000000019ab36328 GSEventRunModal + 104 (GSEvent.c:2246)
20  UIKitCore                       0x0000000194d606d4 UIApplicationMain + 1936 (UIApplication.m:4753)
21  app                             0x0000000102606df0 qt_main_wrapper + 820
22  libdyld.dylib                   0x0000000190b55460 start + 4
larpon commented 4 years ago

Hi @Katos , I think it's worth a shot on reporting it to them. From what I can see in my notifications they have issues with the iOS version ATM

https://github.com/firebase/quickstart-cpp