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

Movie backdrop causes app crash #1883

Closed
ozcrn opened this issue Jul 23, 2022 · 5 comments · Fixed by #2310
Closed

Movie backdrop causes app crash #1883

ozcrn opened this issue Jul 23, 2022 · 5 comments · Fixed by #2310
Labels
bug Something isn't working stale

Comments

@ozcrn
Copy link

ozcrn commented Jul 23, 2022

Describe the bug

Enabling "Show backdrops" causes app to hard crash when attempting to view movie. Does not impact TV shows.

Have tried different movies to see if crash was specific to a single backdrop file but appears to be the same behaviour across all.

Steps to replicate:

My Media - > Select Movie Library -> Select Movie -> App hangs for a while before crashing

Workaround:

Preference -> Customisation -> Show backdrops -> Disabled

Can replicate behaviour across multiple different client devices so doesn't appear to be specific to the device. Exception below is however only visible on Sony Bravia, Chromecast w/ Google TV crashes with no exceptions in logs.

Logs

07-23 14:22:36.306 16447 16553 D skia    : start to dlopen libJpgHwDecoder.so.
07-23 14:22:36.311 16447 16553 D skia    : dlopen ok.
07-23 14:22:36.311 16447 16553 D         : 00 image_width = 267, image_height = 400
07-23 14:22:36.311 16447 16553 D         : the colormode is not JCS_YV16, turn to sw decoder.
07-23 14:22:36.311 16447 16553 D skia    : jpg_init return 0.
07-23 14:22:36.955 16447 16457 I zygote  : NativeAllocBackground concurrent copying GC freed 20738(4MB) AllocSpace objects, 13(884KB) LOS objects, 49% free, 14MB/28MB, paused 55.649ms total 731.850ms
07-23 14:22:37.082 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.082 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.093 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.094 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.498 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.499 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.506 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.509 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.686 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.688 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.715 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.719 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.865 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.870 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.896 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:37.901 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.044 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.046 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.100 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.198 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.253 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.255 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.377 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.379 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.411 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.414 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.427 16447 16447 D FullDetailsActivity: Item type: Movie
07-23 14:22:38.589 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.591 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.733 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.738 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.779 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.783 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.792 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.794 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.810 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.812 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.834 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.840 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.845 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.860 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.877 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.878 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.895 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.897 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.918 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.920 16447 16560 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.938 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:38.945 16447 16561 E Bitmap  : OOM allocating Bitmap with dimensions 1920 x 1080
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: There was an error fetching the background image.
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.util.concurrent.ExecutionException: com.bumptech.glide.load.engine.GlideException: Failed to load resource
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: There were 2 root causes:
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables:  call GlideException#logRootCauses(String) for more detail
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at com.bumptech.glide.request.RequestFutureTarget.doGet(RequestFutureTarget.java:217)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at com.bumptech.glide.request.RequestFutureTarget.get(RequestFutureTarget.java:130)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at org.jellyfin.androidtv.data.service.BackgroundService$loadBackgrounds$1$backdropDrawables$2$1.invokeSuspend(BackgroundService.kt:195)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: Caused by: com.bumptech.glide.load.engine.GlideException: Failed to load resource
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: There were 2 root causes:
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16658 E BackgroundService$loadBackgrounds$1$backdropDrawables:  call GlideException#logRootCauses(String) for more detail
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: There was an error fetching the background image.
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.util.concurrent.ExecutionException: com.bumptech.glide.load.engine.GlideException: Failed to load resource
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: There were 11 root causes:
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables:  call GlideException#logRootCauses(String) for more detail
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at com.bumptech.glide.request.RequestFutureTarget.doGet(RequestFutureTarget.java:217)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at com.bumptech.glide.request.RequestFutureTarget.get(RequestFutureTarget.java:130)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at org.jellyfin.androidtv.data.service.BackgroundService$loadBackgrounds$1$backdropDrawables$2$1.invokeSuspend(BackgroundService.kt:195)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: Caused by: com.bumptech.glide.load.engine.GlideException: Failed to load resource
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: There were 11 root causes:
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSourceCallback failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables: java.lang.OutOfMemoryError(null)
07-23 14:22:39.289 16447 16610 E BackgroundService$loadBackgrounds$1$backdropDrawables:  call GlideException#logRootCauses(String) for more detail

Application version

0.13.7

Where did you install the app from?

Google Play

Device information

Sony Bravia 4K 2015, Chromecast w/ Google TV

Android version

Android 8.0.0, Android 10

Jellyfin server version

10.8.1

@ozcrn ozcrn added the bug Something isn't working label Jul 23, 2022
@nielsvanvelzen
Copy link
Member

It looks like the app crashes because it goes our of memory. This is probably because the backdrop is too big. Can you re-try this with the latest release (0.14.0-beta.1 right now) and post new logs of the issue persists?

@ozcrn
Copy link
Author

ozcrn commented Jul 23, 2022

Similar issues with 0.14.0-beta.1. I no longer see OOMs in the logs but the app still crashes and I get the following stack trace:

`Stack Trace:
log
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.jellyfin.androidtv/org.jellyfin.androidtv.ui.browsing.GenericGridActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.UUID org.jellyfin.sdk.model.api.UserDto.getId()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.UUID org.jellyfin.sdk.model.api.UserDto.getId()' on a null object reference
at org.jellyfin.androidtv.data.querying.StdItemQuery.(StdItemQuery.java:19)
at org.jellyfin.androidtv.ui.browsing.BrowseGridFragment.setupQueries(BrowseGridFragment.java:17)
at org.jellyfin.androidtv.ui.browsing.StdGridFragment.onCreate(StdGridFragment.java:132)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:3090)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:475)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:257)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:113)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1424)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2968)
at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:2875)
at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:252)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:220)
at org.jellyfin.androidtv.ui.browsing.GenericGridActivity.onCreate(GenericGridActivity.kt:8)
at android.app.Activity.performCreate(Activity.java:6975)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
... 9 more

`

Same workaround, if i disable "Show backdrops" everything is happy.

@nielsvanvelzen
Copy link
Member

With the beta version the app should've send a complete log file to your server (under dashboard -> logs). Can you share that file?

@ozcrn
Copy link
Author

ozcrn commented Jul 23, 2022

@jellyfin-bot
Copy link
Contributor

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working stale
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants