Skip to content

Crash in Functions on MacOS when using authentication #51

Open
@OpenJeDi

Description

@OpenJeDi

Please fill in the following fields:

Pre-built SDK from the website
Firebase C++ SDK version: 6.12.0
Firebase plugins in use (Auth, Database, etc.): Auth, Firestore, Functions, Storage
Additional SDKs you are using (Facebook, AdMob, etc.): Qt 5.14.1 clang 64bit
Platform you are using the C++ SDK on (Mac, Windows, or Linux): Mac
Platform you are targeting (iOS, Android, and/or desktop): desktop

Please describe the issue here:

My application crashes when trying to call a Firebase callable function in combination with authentication:

auto pFireBaseApp = firebase::App::Create();
// No crash when I comment out the following line
auto pAuth = firebase::auth::Auth::GetAuth(pFireBaseApp);
auto pFunctions = functions::Functions::GetInstance(pFireBaseApp);

auto ref = pFunctions->GetHttpsCallable("testFunction");
auto future = ref.Call();
future.OnCompletion([](const Future<functions::HttpsCallableResult> &result) {
    // Crash before this is reached but not when commenting out pAuth code
});

It does not crash, and behaves as expected, when not initializing Auth. Note that this behaves the same with a function that doesn't use authentication: testFunction is a very simple function that returns a fixed object.

This is the call stack of the crashed thread:

1 firebase::rest::BackgroundTransportCurl::PerformBackground(firebase::rest::Request *)                                                                       (x86_64) /Users/jdierckx/work/Bioracer Motion/Bioracer Aero/build-BioracerAero-Desktop_Qt_5_14_1_clang_64bit-Debug/build-output/BRMApplicationTest.app/Contents/Frameworks/libBRMData.1.dylib  0x10038143b    
2 firebase::rest::CurlThread::ProcessRequests()                                                                                                               (x86_64) /Users/jdierckx/work/Bioracer Motion/Bioracer Aero/build-BioracerAero-Desktop_Qt_5_14_1_clang_64bit-Debug/build-output/BRMApplicationTest.app/Contents/Frameworks/libBRMData.1.dylib  0x10038318e    
3 void * std::__thread_proxy<std::tuple<std::unique_ptr<std::__thread_struct, std::default_delete<std::__thread_struct>>, void ( *)(void *), void *>>(void *) (x86_64) /Users/jdierckx/work/Bioracer Motion/Bioracer Aero/build-BioracerAero-Desktop_Qt_5_14_1_clang_64bit-Debug/build-output/BRMApplicationTest.app/Contents/Frameworks/libBRMData.1.dylib  0x1003a0cec    
4 _pthread_start                                                                                                                                              (x86_64) /usr/lib/system/libsystem_pthread.dylib                                                                                                                                               0x7fff64a29e65 
5 thread_start                                                                                                                                                (x86_64) /usr/lib/system/libsystem_pthread.dylib                                                                                                                                               0x7fff64a2583b 

Please answer the following, if applicable:

Have you been able to reproduce this issue with just the Firebase C++ quickstarts ? Did not try (the quickstart example doesn't use Auth)

What's the issue repro rate? (eg 100%, 1/5 etc) 100%

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions