Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements to the CrashlyticsWorker #6143

Merged
merged 4 commits into from
Aug 1, 2024
Merged

Improvements to the CrashlyticsWorker #6143

merged 4 commits into from
Aug 1, 2024

Conversation

mrober
Copy link
Contributor

@mrober mrober commented Jul 31, 2024

Added a method to submit a task followed by a continuation to the worker. This is useful for making a continuation happen right after the submitted task, even if other tasks were submitted to the worker in the meantime. This will be useful for fetching settings from a network executor, then continuing on the common worker to parse the settings json.

Also added a method to race two tasks on the worker. This is useful for things like waiting for an for explicit data collection enable call, or automatic data collection being enabled.

Both methods have their behaviour fully documented in the javadoc and tested in unit tests.

Copy link
Contributor

github-actions bot commented Jul 31, 2024

Release note changes

No release note changes were detected. If you made changes that should be
present in the next release, ensure you've added an entry in the appropriate
CHANGELOG.md file(s).

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 31, 2024

Coverage Report 1

Affected Products

  • firebase-crashlytics

    Overall coverage changed from ? (d0fea0e) to 11.14% (05d223b) by ?.

    130 individual files with coverage change

    FilenameBase (d0fea0e)Merge (05d223b)Diff
    AnalyticsDeferredProxy.java?0.00%?
    AnalyticsEventLogger.java?0.00%?
    AnalyticsEventReceiver.java?0.00%?
    AppData.java?50.00%?
    AutoCrashlyticsReportEncoder.java?57.80%?
    AutoRolloutAssignmentEncoder.java?0.00%?
    AutoValue_CrashlyticsReport.java?0.00%?
    AutoValue_CrashlyticsReportWithSessionId.java?0.00%?
    AutoValue_CrashlyticsReport_ApplicationExitInfo.java?58.42%?
    AutoValue_CrashlyticsReport_ApplicationExitInfo_BuildIdMappingForArch.java?0.00%?
    AutoValue_CrashlyticsReport_CustomAttribute.java?0.00%?
    AutoValue_CrashlyticsReport_FilesPayload.java?0.00%?
    AutoValue_CrashlyticsReport_FilesPayload_File.java?0.00%?
    AutoValue_CrashlyticsReport_Session.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Application.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Application_Organization.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Device.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_BinaryImage.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Exception.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Signal.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread_Frame.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_ProcessDetails.java?40.35%?
    AutoValue_CrashlyticsReport_Session_Event_Device.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Log.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_RolloutAssignment.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_RolloutAssignment_RolloutVariant.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_RolloutsState.java?0.00%?
    AutoValue_CrashlyticsReport_Session_OperatingSystem.java?0.00%?
    AutoValue_CrashlyticsReport_Session_User.java?0.00%?
    AutoValue_InstallIdProvider_InstallIds.java?0.00%?
    AutoValue_RolloutAssignment.java?0.00%?
    AutoValue_StaticSessionData.java?0.00%?
    AutoValue_StaticSessionData_AppData.java?0.00%?
    AutoValue_StaticSessionData_DeviceData.java?0.00%?
    AutoValue_StaticSessionData_OsData.java?0.00%?
    BackgroundPriorityRunnable.java?0.00%?
    BatteryState.java?0.00%?
    BlockingAnalyticsEventLogger.java?0.00%?
    BreadcrumbAnalyticsEventReceiver.java?0.00%?
    BreadcrumbHandler.java?0.00%?
    BreadcrumbSource.java?0.00%?
    BuildIdInfo.java?62.50%?
    BytesBackedNativeSessionFile.java?0.00%?
    CachedSettingsIo.java?0.00%?
    CLSUUID.java?0.00%?
    CommonUtils.java?1.09%?
    CrashlyticsAnalyticsListener.java?0.00%?
    CrashlyticsAppQualitySessionsStore.java?0.00%?
    CrashlyticsAppQualitySessionsSubscriber.java?0.00%?
    CrashlyticsBackgroundWorker.java?0.00%?
    CrashlyticsController.java?16.58%?
    CrashlyticsCore.java?0.61%?
    CrashlyticsFileMarker.java?30.77%?
    CrashlyticsNativeComponent.java?0.00%?
    CrashlyticsNativeComponentDeferredProxy.java?25.00%?
    CrashlyticsOriginAnalyticsEventLogger.java?0.00%?
    CrashlyticsPreconditions.kt?0.00%?
    CrashlyticsRegistrar.java?0.00%?
    CrashlyticsRemoteConfigListener.kt?0.00%?
    CrashlyticsReport.java?4.65%?
    CrashlyticsReportDataCapture.java?3.33%?
    CrashlyticsReportJsonTransform.java?1.01%?
    CrashlyticsReportPersistence.java?3.06%?
    CrashlyticsReportWithSessionId.java?0.00%?
    CrashlyticsUncaughtExceptionHandler.java?0.00%?
    CrashlyticsWorker.java?21.28%?
    CurrentTimeProvider.java?0.00%?
    CustomKeysAndValues.java?0.00%?
    DataCollectionArbiter.java?83.33%?
    DataTransportCrashlyticsReportSender.java?48.28%?
    DefaultSettingsJsonTransform.java?0.00%?
    DefaultSettingsSpiCall.java?0.00%?
    DeliveryMechanism.java?0.00%?
    DevelopmentPlatformProvider.java?0.00%?
    DisabledBreadcrumbSource.java?0.00%?
    ExecutorUtils.java?0.00%?
    FileBackedNativeSessionFile.java?0.00%?
    FileLogStore.java?0.00%?
    FileStore.java?29.85%?
    FirebaseCrashlytics.java?0.00%?
    FirebaseCrashlytics.kt?0.00%?
    FirebaseInstallationId.kt?0.00%?
    HttpGetRequest.java?0.00%?
    HttpRequestFactory.java?0.00%?
    HttpResponse.java?0.00%?
    IdManager.java?2.74%?
    InstallerPackageNameProvider.java?0.00%?
    InstallIdProvider.java?0.00%?
    KeysMap.java?24.32%?
    KeyValueBuilder.kt?0.00%?
    LogFileManager.java?60.71%?
    Logger.java?40.54%?
    MetaDataStore.java?17.83%?
    MiddleOutFallbackStrategy.java?0.00%?
    MiddleOutStrategy.java?0.00%?
    NativeSessionFile.java?0.00%?
    NativeSessionFileGzipper.java?0.00%?
    NativeSessionFileProvider.java?0.00%?
    OnDemandCounter.java?0.00%?
    ProcessDetailsProvider.kt?70.59%?
    QueueFile.java?0.00%?
    QueueFileLogStore.java?7.58%?
    RemoteConfigDeferredProxy.java?0.00%?
    RemoveRepeatsStrategy.java?0.00%?
    ReportQueue.java?0.00%?
    ResponseParser.java?0.00%?
    RolloutAssignment.java?0.00%?
    RolloutAssignmentList.java?44.44%?
    SessionReportingCoordinator.java?42.44%?
    Settings.java?95.00%?
    SettingsCacheBehavior.java?0.00%?
    SettingsController.java?0.00%?
    SettingsJsonConstants.java?0.00%?
    SettingsJsonParser.java?0.00%?
    SettingsJsonTransform.java?0.00%?
    SettingsProvider.java?0.00%?
    SettingsRequest.java?0.00%?
    SettingsSpiCall.java?0.00%?
    SettingsV3JsonTransform.java?0.00%?
    StackTraceTrimmingStrategy.java?0.00%?
    StaticSessionData.java?0.00%?
    SystemCurrentTimeProvider.java?0.00%?
    TrimmedThrowableData.java?0.00%?
    UnavailableAnalyticsEventLogger.java?0.00%?
    UserMetadata.java?22.33%?
    Utils.java?0.00%?

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/4AHeWcbiMi.html

Copy link
Contributor

github-actions bot commented Jul 31, 2024

Unit Test Results

  8 files  ±0    8 suites  ±0   28s ⏱️ +3s
22 tests ±0  22 ✔️ ±0  0 💤 ±0  0 ±0 
44 runs  ±0  44 ✔️ ±0  0 💤 ±0  0 ±0 

Results for commit a9ab00e. ± Comparison against base commit 10fe142.

♻️ This comment has been updated with latest results.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 31, 2024

Size Report 1

Affected Products

  • firebase-crashlytics

    TypeBase (d0fea0e)Merge (05d223b)Diff
    aar415 kB416 kB+961 B (+0.2%)
    apk (release)5.85 MB5.85 MB+1.14 kB (+0.0%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/fmoVGDhmve.html

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 31, 2024

Startup Time Report 1

Note: Layout is sometimes suboptimal due to limited formatting support on GitHub. Please check this report on GCS.

Startup time comparison between the CI merge commit (05d223b) and the base commit (d0fea0e) are not available.

No macrobenchmark data found for the base commit (d0fea0e). Analysis for the CI merge commit (05d223b) can be found at:

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/Xc7cDTU1JO/index.html

@mrober mrober requested a review from themiswang July 31, 2024 18:55
@mrober mrober marked this pull request as ready for review July 31, 2024 18:56
@mrober mrober merged commit 8b832df into main Aug 1, 2024
42 checks passed
@mrober mrober deleted the crashlytics-worker-cont branch August 1, 2024 16:44
@mrober
Copy link
Contributor Author

mrober commented Aug 1, 2024

#4345

mrober added a commit that referenced this pull request Aug 19, 2024
@firebase firebase locked and limited conversation to collaborators Sep 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants