firebase-cpp-sdk: [Bug] Refresh token

[REQUIRED] Please fill in the following fields:

  • Pre-built SDK open-source from this repo
  • Firebase C++ SDK version: 8.3.0
  • Problematic Firebase Component: Auth
  • Other Firebase Components in use: App, Firestore
  • Platform you are using the C++ SDK on: Mac
  • Platform you are targeting: desktop

[REQUIRED] Please describe the issue here:

App start normally. User is logged in and watching his collections. After few hours some users had crash on refresh token.


Application Specific Information:
Fatal Error: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS

Thread 18606 Crashed:
0   mInstaller                      0x105439db5         bool
1   mInstaller                      0x105439c54         firebase::auth::AuthResponse::error_code
2   mInstaller                      0x1054033c9         firebase::auth::(anonymous namespace)::EnsureFreshToken
3   mInstaller                      0x1054030d6         firebase::auth::(anonymous namespace)::EnsureFreshToken
4   mInstaller                      0x105402fc4         firebase::auth::User::GetTokenInternal::lambda::operator()
5   mInstaller                      0x105402f94         firebase::auth::User::GetTokenInternal::lambda::__invoke
6   mInstaller                      0x10541c706         firebase::auth::CallAsync<T>::lambda::operator()
7   mInstaller                      0x10541c6b4         firebase::auth::CallAsync<T>::lambda::__invoke
8   mInstaller                      0x10541cc76         firebase::callback::CallbackVariadic<T>::RunInternal<T>
9   mInstaller                      0x10541cb34         firebase::callback::CallbackVariadic<T>::Run
10  mInstaller                      0x10528a6b7         firebase::scheduler::Scheduler::TriggerCallback
11  mInstaller                      0x10528a20a         firebase::scheduler::Scheduler::WorkerThreadRoutine
12  mInstaller                      0x10528e621         std::__1::__invoke<T>
13  mInstaller                      0x10528e56d         std::__1::__thread_execute<T>
14  mInstaller                      0x10528dd7a         std::__1::__thread_proxy<T>
15  libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
16  libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 17239
0   libsystem_kernel.dylib          0x7fff203902ba      mach_msg_trap
1   libsystem_kernel.dylib          0x7fff2039062b      mach_msg
2   CoreFoundation                  0x7fff204beb2e      __CFRunLoopServiceMachPort
3   CoreFoundation                  0x7fff204bd20e      __CFRunLoopRun
4   CoreFoundation                  0x7fff204bc61b      CFRunLoopRunSpecific
5   HIToolbox                       0x7fff28702a82      RunCurrentEventLoopInMode
6   HIToolbox                       0x7fff287027e4      ReceiveNextEventCommon
7   HIToolbox                       0x7fff28702582      _BlockUntilNextEventMatchingListInModeWithFilter
8   AppKit                          0x7fff22cc4171      _DPSNextEvent
9   AppKit                          0x7fff22cc2944      -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
10  AppKit                          0x7fff22cb4c68      -[NSApplication run]
11  libqcocoa.dylib                 0x109194160         qt_plugin_instance
12  QtCore                          0x1089475c5         QEventLoop::exec
13  QtCore                          0x10893fba1         QCoreApplication::exec
14  mInstaller                      0x1051644c8         main (main.cpp:241)
15  libdyld.dylib                   0x7fff203e0f3c      start

Thread 17568
0   libsystem_kernel.dylib          0x7fff203969ca      poll
1   QtCore                          0x108ab3b1d         qt_safe_poll
2   QtCore                          0x108ab5243         QEventDispatcherUNIX::processEvents
3   QtCore                          0x1089475c5         QEventLoop::exec
4   QtCore                          0x108a37230         QThread::exec
5   QtQml                           0x1083f00e6         QHashedStringRef::toString
6   QtCore                          0x108ab9630         QTimerInfoList::activateTimers
7   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
8   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 17575
0   libsystem_kernel.dylib          0x7fff20392cde      __psynch_cvwait
1   libsystem_pthread.dylib         0x7fff203c5e48      _pthread_cond_wait
2   libsentry.dylib                 0x106d4db34         worker_thread
3   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
4   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 17592
0   libsystem_kernel.dylib          0x7fff203902ba      mach_msg_trap
1   libsystem_kernel.dylib          0x7fff2039062b      mach_msg
2   libsentry.dylib                 0x106d6406a         crashpad::MachMessageWithDeadline
3   libsentry.dylib                 0x106d645db         crashpad::MachMessageServer::Run
4   libsentry.dylib                 0x106d5d6a7         crashpad::(anonymous namespace)::HandlerStarter::RestartThreadMain
5   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
6   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 17750
0   libsystem_kernel.dylib          0x7fff203902ba      mach_msg_trap
1   libsystem_kernel.dylib          0x7fff2039062b      mach_msg
2   CoreFoundation                  0x7fff204beb2e      __CFRunLoopServiceMachPort
3   CoreFoundation                  0x7fff204bd20e      __CFRunLoopRun
4   CoreFoundation                  0x7fff204bc61b      CFRunLoopRunSpecific
5   AppKit                          0x7fff22e4a239      _NSEventThread
6   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
7   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 18405
0   libsystem_kernel.dylib          0x7fff203969ca      poll
1   mInstaller                      0x1054cb7da         pollset_work
2   mInstaller                      0x1054cf07f         pollset_work
3   mInstaller                      0x1054d415c         grpc_pollset_work
4   mInstaller                      0x10551511f         cq_next
5   mInstaller                      0x105514433         grpc_completion_queue_next
6   mInstaller                      0x105772ece         grpc_impl::CompletionQueue::AsyncNextInternal
7   mInstaller                      0x105b6f79b         grpc_impl::CompletionQueue::Next
8   mInstaller                      0x105b6f68a         firebase::firestore::remote::Datastore::PollGrpcQueue
9   mInstaller                      0x105b75b37         firebase::firestore::remote::Datastore::Start::lambda::operator()
10  mInstaller                      0x105b75afc         std::__1::__invoke<T>
11  mInstaller                      0x105b75aac         std::__1::__invoke_void_return_wrapper<T>::__call<T>
12  mInstaller                      0x105b75a7c         std::__1::__function::__alloc_func<T>::operator()
13  mInstaller                      0x105b746ed         std::__1::__function::__func<T>::operator()
14  mInstaller                      0x105332524         std::__1::__function::__value_func<T>::operator()
15  mInstaller                      0x1053324e4         std::__1::function<T>::operator()
16  mInstaller                      0x105c6c4c4         firebase::firestore::util::Task::ExecuteAndRelease
17  mInstaller                      0x105c7758c         firebase::firestore::util::ExecutorLibdispatch::InvokeAsync
18  libdispatch.dylib               0x7fff2021b805      _dispatch_client_callout
19  libdispatch.dylib               0x7fff202215e9      _dispatch_lane_serial_drain
20  libdispatch.dylib               0x7fff202220ac      _dispatch_lane_invoke
21  libdispatch.dylib               0x7fff2022bc0c      _dispatch_workloop_worker_thread
22  libsystem_pthread.dylib         0x7fff203c245c      _pthread_wqthread
23  libsystem_pthread.dylib         0x7fff203c142e      start_wqthread
24  <unknown>                       0x700007173b70      <unknown>
25  libsystem_pthread.dylib         0x7fff203c142e      start_wqthread

Thread 18414
0   libsystem_kernel.dylib          0x7fff20398656      __select
1   CoreFoundation                  0x7fff204e5092      __CFSocketManager
2   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
3   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 18602
0   libsystem_kernel.dylib          0x7fff203b368e      sem_wait
1   mInstaller                      0x1053c2b17         firebase::Semaphore::Wait
2   mInstaller                      0x105d939c0         firebase::rest::CurlThread::GetNextAction
3   mInstaller                      0x105d94292         firebase::rest::CurlThread::ProcessRequests
4   mInstaller                      0x105d92b17         firebase::rest::CurlThread::ProcessRequests
5   mInstaller                      0x10528e621         std::__1::__invoke<T>
6   mInstaller                      0x10528e56d         std::__1::__thread_execute<T>
7   mInstaller                      0x10528dd7a         std::__1::__thread_proxy<T>
8   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
9   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 18604
0   libsystem_kernel.dylib          0x7fff203b368e      sem_wait
1   mInstaller                      0x1053c2b17         firebase::Semaphore::Wait
2   mInstaller                      0x10528a169         firebase::scheduler::Scheduler::WorkerThreadRoutine
3   mInstaller                      0x10528e621         std::__1::__invoke<T>
4   mInstaller                      0x10528e56d         std::__1::__thread_execute<T>
5   mInstaller                      0x10528dd7a         std::__1::__thread_proxy<T>
6   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
7   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 18605
0   libsystem_kernel.dylib          0x7fff203b368e      sem_wait
1   mInstaller                      0x1053c2b17         firebase::Semaphore::Wait
2   mInstaller                      0x1053c32a0         firebase::auth::IdTokenRefreshThread::Initialize::lambda::operator()
3   mInstaller                      0x1053c2f14         firebase::auth::IdTokenRefreshThread::Initialize::lambda::__invoke
4   mInstaller                      0x1053d5701         std::__1::__invoke<T>
5   mInstaller                      0x1053d564d         std::__1::__thread_execute<T>
6   mInstaller                      0x1053d4de5         std::__1::__thread_proxy<T>
7   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
8   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 18616
0   libsystem_kernel.dylib          0x7fff203969ca      poll
1   QtCore                          0x108ab3b1d         qt_safe_poll
2   QtCore                          0x108ab5243         QEventDispatcherUNIX::processEvents
3   QtCore                          0x1089475c5         QEventLoop::exec
4   QtCore                          0x108a37230         QThread::exec
5   QtQuick                         0x106fc9380         QQuickImageProvider::qt_metacall
6   QtCore                          0x108ab9630         QTimerInfoList::activateTimers
7   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
8   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 19465
0   libsystem_kernel.dylib          0x7fff20392cde      __psynch_cvwait
1   libsystem_pthread.dylib         0x7fff203c5e48      _pthread_cond_wait
2   libc++.1.dylib                  0x7fff2032ed71      std::__1::condition_variable::wait
3   mInstaller                      0x10601459d         leveldb::port::CondVar::Wait
4   mInstaller                      0x106068c66         leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadMain
5   mInstaller                      0x106068b64         leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadEntryPoint
6   mInstaller                      0x106069e01         std::__1::__invoke<T>
7   mInstaller                      0x106069d4d         std::__1::__thread_execute<T>
8   mInstaller                      0x10606957a         std::__1::__thread_proxy<T>
9   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
10  libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 19466
0   libsystem_kernel.dylib          0x7fff20392cde      __psynch_cvwait
1   libsystem_pthread.dylib         0x7fff203c5e48      _pthread_cond_wait
2   mInstaller                      0x10574ae5c         gpr_cv_wait
3   mInstaller                      0x1054d12cd         grpc_core::Executor::ThreadMain
4   mInstaller                      0x10575016e         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::operator()
5   mInstaller                      0x105750064         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::__invoke
6   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
7   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 19467
0   libsystem_kernel.dylib          0x7fff20392cde      __psynch_cvwait
1   libsystem_pthread.dylib         0x7fff203c5e48      _pthread_cond_wait
2   mInstaller                      0x10574ae5c         gpr_cv_wait
3   mInstaller                      0x1054d12cd         grpc_core::Executor::ThreadMain
4   mInstaller                      0x10575016e         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::operator()
5   mInstaller                      0x105750064         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::__invoke
6   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
7   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 19468
0   libsystem_kernel.dylib          0x7fff20392cde      __psynch_cvwait
1   libsystem_pthread.dylib         0x7fff203c5e48      _pthread_cond_wait
2   mInstaller                      0x10574aebf         gpr_cv_wait
3   mInstaller                      0x1054ef721         wait_until
4   mInstaller                      0x1054ef2f8         timer_main_loop
5   mInstaller                      0x1054ef1fe         timer_thread
6   mInstaller                      0x10575016e         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::operator()
7   mInstaller                      0x105750064         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::__invoke
8   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
9   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Thread 19557
0   libsystem_kernel.dylib          0x7fff20392cde      __psynch_cvwait
1   libsystem_pthread.dylib         0x7fff203c5e48      _pthread_cond_wait
2   mInstaller                      0x10574ae5c         gpr_cv_wait
3   mInstaller                      0x1054ef721         wait_until
4   mInstaller                      0x1054ef2f8         timer_main_loop
5   mInstaller                      0x1054ef1fe         timer_thread
6   mInstaller                      0x10575016e         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::operator()
7   mInstaller                      0x105750064         grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix::lambda::__invoke
8   libsystem_pthread.dylib         0x7fff203c58fb      _pthread_start
9   libsystem_pthread.dylib         0x7fff203c1442      thread_start

Steps to reproduce:

Have you been able to reproduce this issue with just the Firebase C++ quickstarts ? No

What happened? How can we make the problem occur? This could be a description, log/console output, etc.

Application stuck/freeze.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 30 (16 by maintainers)

Most upvoted comments

Thank you for the detailed investigation! I’m continuing to investigate on our end because application_data_ should never be an “empty” unique_ptr.