Skip to content

[Bug] Crash due to assertion in firebase::rest::RequestJson<T>::UpdatePostFields #869

@triplef

Description

@triplef

[REQUIRED] Please fill in the following fields:

  • Pre-built SDK from the website or open-source from this repo: self-built
  • Firebase C++ SDK version: 8.8.0
  • Problematic Firebase Component: Remote Config
  • Other Firebase Components in use: Auth
  • Platform you are using the C++ SDK on: Windows
  • Platform you are targeting: desktop

[REQUIRED] Please describe the issue here:

We have one user for whom the app crashes on launch due to the assertion in request_json.h:68 here:

// Generate JSON string.
std::string json;
bool generate_status =
GenerateText(*parser_, builder.GetBufferPointer(), &json);
FIREBASE_ASSERT_RETURN_VOID(generate_status);

Following is the full stack trace:

OS Version: Windows 10.0.19044 (1586)
Report Version: 104

Crashed Thread: 11440

Application Specific Information:
Fatal Error: 0x40000015 / 0x00000001

Thread 11440 Crashed:
0   Redacted.exe                    0x7ff732b7fcb6      std::vector<T>::_Tidy
1   ucrtbase.dll                    0x7fff01171880      raise
2   ucrtbase.dll                    0x7fff01172850      abort
3   Redacted.exe                    0x7ff732af9e01      firebase::DefaultLogCallback (log.cc:81)
4   Redacted.exe                    0x7ff732af9fbb      firebase::LogMessageWithCallbackV (log.cc:145)
5   Redacted.exe                    0x7ff732af9ee9      firebase::LogAssert (log.cc:196)
6   Redacted.exe                    0x7ff732c21c98      firebase::rest::RequestJson<T>::UpdatePostFields (request_json.h:68)
7   Redacted.exe                    0x7ff732b9c408      [inlined] firebase::remote_config::internal::RemoteConfigRequest::UpdatePost (remote_config_request.h:90)
8   Redacted.exe                    0x7ff732b9c408      firebase::remote_config::internal::RemoteConfigREST::SetupRestRequest (rest.cc:141)
9   Redacted.exe                    0x7ff732b9bb1a      firebase::remote_config::internal::RemoteConfigREST::Fetch (rest.cc:71)
10  Redacted.exe                    0x7ff732b38fc8      firebase::remote_config::internal::RemoteConfigInternal::FetchInternal (remote_config_desktop.cc:587)
11  Redacted.exe                    0x7ff732b39425      <lambda>::<T> (remote_config_desktop.cc:174)
12  Redacted.exe                    0x7ff732b3a121      firebase::callback::CallbackVariadic<T>::RunInternal (callback.h:341)
13  Redacted.exe                    0x7ff732b2c84d      firebase::scheduler::Scheduler::TriggerCallback (scheduler.cc:189)
14  Redacted.exe                    0x7ff732b2c5e3      [inlined] bool (shared_ptr.h:128)
15  Redacted.exe                    0x7ff732b2c5e3      firebase::scheduler::Scheduler::WorkerThreadRoutine (scheduler.cc:169)
16  Redacted.exe                    0x7ff732b3460e      [inlined] std::invoke (type_traits:1488)
17  Redacted.exe                    0x7ff732b3460e      std::thread::_Invoke<T> (thread:55)
18  ucrtbase.dll                    0x7fff01121bb1      thread_start<T>
19  KERNEL32.DLL                    0x7fff02397033      BaseThreadInitThunk
20  ntdll.dll                       0x7fff033a2650      RtlUserThreadStart

It seems like some flatbuffer structure is invalid, causing GenerateText() and thereby the assertion to fail. I’d appreciate any input on how to debug this further.

Steps to reproduce:

  1. Set system language to French:
    • Open Windows 10 settings
    • Select "Time & language" section
    • Click "Add Language" and select "Français (France)" / "French (France)"
    • Make French the primary language by moving it to the top of the list of preferred languages
    • Reboot
  2. Initialize Firebase Remote Config

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions