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

feat: android mark sessions as crashed #347

Merged
merged 5 commits into from
Sep 29, 2021

Conversation

bruno-garcia
Copy link
Member

@bruno-garcia bruno-garcia commented Sep 28, 2021

After sample "Crash in C":

image

This PR depends on the following changes:

  1. sentry-dotnet
  2. sentry-java

Description before commit: fbbd75e (#347) which now Pauses instead of Closes session on OnQuitting:

With ThrowKotlinOnBackground, sometimes it actually ends up with a graceful shutdown from the .NET point of view:

 Sentry: (Info) Ended session (SID: 671e7991231a42f6a319f75530816cf0; DID: 474bc867-1fe0-492f-8ee7-0eaaec51dafd) with status 'Exited'.

And on restart there's no session open on disk to check if it crashed on the last run.

It is also possible that the .NET layer doesn't shutdown and on restart closes the old session while consulting the Android callback. In that case it works as expected:

Sentry: (Debug) Native Android SDK reported: 'crashedLastRun': 'True'

Logs for the case where it doesn't work as expected:

09-28 18:16:17.056 13009 13641 I Sentry  : Uncaught exception received.
09-28 18:16:17.058 13009 13641 D Sentry  : Capturing event: 6fc97bc74e1a4539aa836ed7122f6536
09-28 18:16:17.066 13009 13641 I Sentry  : No permission (ACCESS_NETWORK_STATE) to check network status.
09-28 18:16:17.075 13009 13641 I Sentry  : Not possible to read external files directory
09-28 18:16:17.075 13009 13641 I Sentry  : No permission (ACCESS_NETWORK_STATE) to check network status.
09-28 18:16:17.077 13009 13641 I Sentry  : Session is null on scope.withSession
09-28 18:16:17.081 13009 13642 W Sentry  : Current envelope doesn't exist.
09-28 18:16:17.081 13009 13642 D Sentry  : Adding Envelope to offline storage: /data/user/0/io.sentry.samples.unityofbugs/cache/sentry/6fc97bc74e1a4539aa836ed7122f6536.envelope
09-28 18:16:17.162 13009 13642 D Sentry  : Serializing object: {"exception":{"values":[{"module":"java.lang","stacktrace":{"frames":[{"native":false,"filename":"Thread.kt","function":"run","in_app":false,"lineno":30,"module":"kotlin.concurrent.ThreadsKt$thread$thread$1"},{"native":false,"filename":"KotlinPlugin.kt","function":"invoke","in_app":false,"lineno":6,"module":"unity.of.bugs.KotlinPlugin$throwOnBackgroundThread$1"},{"native":false,"filename":"KotlinPlugin.kt","function":"invoke","in_app":false,"lineno":18,"module":"unity.of.bugs.KotlinPlugin$throwOnBackgroundThread$1"}]},"thread_id":2436,"type":"Exception","value":"Kotlin 🐛 from a background thread."},{"mechanism":{"handled":false,"type":"UncaughtExceptionHandler"},"module":"java.lang","thread_id":2436,"type":"Error","value":"FATAL EXCEPTION [Thread-6]\nUnity version     : 2019.4.21f1\nDevice model      : motorola moto g(7) plus\nDevice fingerprint: motorola/lake_n/lake_n:10/QPWS30.61-21-18-7/fac4a:user/release-keys\n"}]},"level":"fatal","timestamp":"2021-09-28T22:16:17.058Z","breadcrumbs":[{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"created"},"level":"info","timestamp":"2021-09-28T22:05:37.413Z","type":"navigation"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"started"},"level":"info","timestamp":"2021-09-28T22:05:37.501Z","type":"navigation"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"resumed"},"level":"info","timestamp":"2021-09-28T22:05:37.507Z","type":"navigation"},{"category":"unity.logger","level":"info","message":"Sentry: (Debug) Registering integration: 'UnityBeforeSceneLoadIntegration'. ","timestamp":"2021-09-28T22:05:40.984Z"},{"category":"scene.beforeload","level":"info","message":"BeforeSceneLoad","timestamp":"2021-09-28T22:05:40.990Z"},{"category":"scene.changed","level":"info","message":"Changed active scene to '1_BugfarmScene'","timestamp":"2021-09-28T22:05:41.006Z"},{"category":"scene.loaded","level":"info","message":"Scene '1_BugfarmScene' was loaded","timestamp":"2021-09-28T22:05:41.008Z"},{"category":"unity.logger","level":"warning","message":"Here come the bugs 🐞🦋🐛🐜🕷!","timestamp":"2021-09-28T22:05:41.044Z"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"paused"},"level":"info","timestamp":"2021-09-28T22:06:41.601Z","type":"navigation"},{"category":"unity.logger","level":"info","message":"Sentry: (Debug) Pausing session. ","timestamp":"2021-09-28T22:06:41.898Z"},{"category":"device.event","data":{"action":"DREAMING_STARTED"},"level":"info","timestamp":"2021-09-28T22:06:41.973Z","type":"system"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"stopped"},"level":"info","timestamp":"2021-09-28T22:06:42.014Z","type":"navigation"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"saveInstanceState"},"level":"info","timestamp":"2021-09-28T22:06:42.018Z","type":"navigation"},{"category":"device.event","data":{"action":"SCREEN_OFF"},"level":"info","timestamp":"2021-09-28T22:06:42.276Z","type":"system"},{"category":"device.event","data":{"action":"DREAMING_STOPPED"},"level":"info","timestamp":"2021-09-28T22:10:04.519Z","type":"system"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"started"},"level":"info","timestamp":"2021-09-28T22:10:04.657Z","type":"navigation"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"resumed"},"level":"info","timestamp":"2021-09-28T22:10:04.676Z","type":"navigation"},{"category":"unity.logger","level":"info","message":"Sentry: (Debug) Resuming session. ","timestamp":"2021-09-28T22:10:04.774Z"},{"category":"device.event","data":{"action":"SCREEN_ON"},"level":"info","timestamp":"2021-09-28T22:10:04.869Z","type":"system"},{"category":"ui.lifecycle","data":{"screen":"UnityPlayerActivity","state":"paused"},"level":"info","timestamp":"2021-09-28T22:12:04.731Z","type":"navigation"},{"category":"unity.logger","level":"info","message":"Sentry: (Debug) Pausing session. ","timestamp":"2021-09-28T22
09-28 18:16:17.191 13009 13642 D Sentry  : Disk flush envelope fired
09-28 18:16:17.192 13009 13641 I Sentry  : Invoking inner uncaught exception handler.
09-28 18:16:17.192 13009 13642 I Sentry  : No permission (ACCESS_NETWORK_STATE) to check network status.
09-28 18:16:17.210 13009 13009 I Unity   : onPause
09-28 18:16:17.232 13009 13146 I Unity   : Sentry: (Info) Ended session (SID: c39ddda06c7f47a693d34d6b8f5bc016; DID: 474bc867-1fe0-492f-8ee7-0eaaec51dafd) with status 'Exited'.
09-28 18:16:17.235 13009 13146 I Unity   : Sentry: (Debug) Deleting persisted session file.
09-28 18:16:17.241 13009 13146 I Unity   : Sentry: (Debug) Deleting persisted session file with contents: {"update":{"sid":"c39ddda06c7f47a693d34d6b8f5bc016","did":"474bc867-1fe0-492f-8ee7-0eaaec51dafd","init":true,"started":"2021-09-28T18:16:04.171537-04:00","timestamp":"2021-09-28T22:16:04.171951+00:00","seq":0,"duration":0,"errors":0,"attrs":{"release":"unity-of-bugs@0.1","environment":"production"}}}

The times where the .NET session exits are those where OnQuitting gets called:

@github-actions
Copy link
Contributor

github-actions bot commented Sep 28, 2021

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 549c8de

@marandaneto
Copy link
Contributor

what should we do about:

Logs for the case where it doesn't work as expected:

@bruno-garcia
Copy link
Member Author

what should we do about:

Logs for the case where it doesn't work as expected:

Nothing. Thst was happening before I changed the onQuitting.

@bruno-garcia bruno-garcia merged commit 719392c into main Sep 29, 2021
@bruno-garcia bruno-garcia deleted the feat/android-crashed-last-run branch September 29, 2021 15:24
@bruno-garcia
Copy link
Member Author

We'll take other changes in and do a final submodule update before we release (to take the tags)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants