Details
-
Bug
-
Resolution: Invalid
-
P1: Critical
-
None
-
6.8.2
-
None
-
Windows 11 MSVC
-
-
Foundation Sprint 127
Description
Summary of the Strava Connect Test Application
This test application demonstrates a crash in Qt's OAuth implementation when connecting to Strava. The root issue occurs in the setModifyParametersFunction callback, where a pointer to a parameter map is provided but becomes inaccessible in a deterministic manner.
The Core Problem
The crash specifically happens because:
- When setting up the OAuth flow, we provide a lambda function via setModifyParametersFunction that receives a QMultiMap<QString, QVariant> *parameters pointer.
- During the OAuth authorization process, this lambda is called with what appears to be a valid parameters pointer (non-null), but attempting to access or modify its contents causes a crash.
- This failure occurs consistently (deterministically) when working with Strava's OAuth implementation, suggesting either:
-
- A timing/threading issue in Qt's OAuth implementation
- A conflict with Strava's specific OAuth requirements
- Memory management problems when processing OAuth parameters
Key Components
The application isolates this issue by implementing a minimal reproduction case focusing solely on the Strava authentication process:
- A standalone implementation of strava_connect() that creates the OAuth flow
- The exact parameter modification function that causes the crash
- A complete OAuth callback handling setup
This minimal test case allows the Qt team to observe and debug the exact conditions under which the pointer becomes inaccessible, leading to the crash.