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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android transactions lasting for days, TTID halfway in, all spans at the very end. #3329

Open
realkosty opened this issue Apr 5, 2024 · 4 comments
Assignees
Labels
Platform: Android Sync: Jira apply to auto-create a Jira shadow ticket Type: Bug Something isn't working

Comments

@realkosty
Copy link

realkosty commented Apr 5, 2024

Integration

sentry-android

Build System

Gradle

AGP Version

unknown

Proguard

Enabled

Version

7.2.0

Steps to Reproduce

Customer is observing transactions lasting for multiple days where (馃憠 see linked Jira issue for examples)

About 60-70% of all transactions over 1 hour (about 1% of total transactions) exhibit this pattern:

  • 2 days until TTID,
  • (sometimes) then another day of no spans
  • and finally normal spans at the end culminating in transaction being finished
3day-transaction

(this is the main pattern and the one that I we don't have explanation for, there鈥檚 also a second, less common, pattern among extra-long transactions where all spans happen early on, except for one long file.read that delays TTID - this is out of scope of this report, please ignore those).

Below is customer's configuration:

Settings set during application oncreate via dagger/anvil DI

override fun configure(options: SentryAndroidOptions) {
        dsnValidator.ensureDsnIsValid(sentryOptions.dsn)
        options.dsn = sentryOptions.dsn
        options.isAttachScreenshot = false
        options.isAnrEnabled = sentryFeatureGates.get().isAnrEnabled()
        options.tracesSampleRate = sentryFeatureGates.get().getTracesSampleRate()
        options.isAttachAnrThreadDump = true
        options.environment = buildInfo.getBuildChannel().name.lowercase()
        options.setBeforeSend { event, _ ->
            tagDecorators.forEach {
                event.setTag(it.key, it.value.get())
            }
            event
        }

        options.addInAppInclude("com.redactedcompanyname")

        // Remove the Timber integration so that we can use our own
        options.integrations.removeIf { it is SentryTimberIntegration }

        if (sentryFeatureGates.get().isFragmentsEnabled()) {
            options.addIntegration(
                FragmentLifecycleIntegration(
                    context.applicationContext as Application,
                    enableFragmentLifecycleBreadcrumbs = true,
                    enableAutoFragmentLifecycleTracing = true,
                ),
            )
            options.isEnableUserInteractionTracing = true
            options.isEnableUserInteractionBreadcrumbs = true
        }

// MANIFEST
    <application>
        <provider
            android:name="io.sentry.android.core.SentryInitProvider"
            android:authorities="${applicationId}.SentryInitProvider"
            tools:node="remove" />

        <provider
            android:name="io.sentry.android.core.SentryPerformanceProvider"
            android:authorities="${applicationId}.SentryPerformanceProvider"
            tools:node="remove" />
    </application>

Gradle Plugin

   includeProguardMapping.set(true)
                includeDependenciesReport.set(true)
                includeNativeSources.set(true)
                includeSourceContext.set(true)

                tracingInstrumentation.enabled.set(true)
                autoInstallation.enabled.set(true)

Expected Result

Transaction start coincides with start timestamp of the first span.

Actual Result

Start timestamp of the first span lags days behind start of transaction.

鈹咺ssue is synchronized with this Jira Improvement by Unito

@realkosty realkosty added Type: Bug Something isn't working Platform: Android labels Apr 5, 2024
@realkosty realkosty added the Sync: Jira apply to auto-create a Jira shadow ticket label Apr 5, 2024
@realkosty
Copy link
Author

realkosty commented Apr 6, 2024

Same customer also experiencing #3145 FWIW

@realkosty
Copy link
Author

@stefanosiano theorized that this could be something related to content providers and also noticed that there are several starting points (and app start transactions) for the app in which it was reported (see linked Jira).

@kahest
Copy link
Member

kahest commented Apr 29, 2024

@stefanosiano @markushi were you able to reproduce this? in any case, let's prio this next

@realkosty
Copy link
Author

Please note, if this is relevant, multiple http requests in this transaction, all showing deadline_exceeded for the body, but headers were ok.

I've added conversation with customer to linked Jira issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Platform: Android Sync: Jira apply to auto-create a Jira shadow ticket Type: Bug Something isn't working
Projects
Status: No status
Status: Needs Investigation
Development

No branches or pull requests

3 participants