futo-org / grayjay-android

Read-only mirror of Grayjay repo for issue tracking
https://gitlab.futo.org/videostreaming/grayjay
Other
784 stars 49 forks source link

Crash on plugin update while feed is refreshing #1479

Open AtmosphericIgnition opened 1 week ago

AtmosphericIgnition commented 1 week ago

What happened?

While Grayjay was refreshing my subscription feed, a prompt to update the YouTube plugin to version 211 popped up. I hit the update button while the feed was still refreshing, and when the plugin updated, Grayjay crashed with a segmentation fault. When I reopen the app after the crash, everything works as expected, and the YT plugin seems to have updated successfully. I haven't had an opportunity to confirm if the crash also occurs with other plugins. My device has Developer Options enabled, the only setting I have changed there is disabling "WiFi Scan Throttling". I'm using the latest stable GrapheneOS on a Pixel 8 Pro.

Grayjay Version

264

What plugins are you seeing the problem on?

Youtube

Plugin Version

211

When do you experience the issue?

Relevant log output

type: crash
flags: dev options enabled
package: com.futo.platformplayer:264, targetSdk 34
osVersion: google/husky/husky:15/AP3A.241105.007/2024110700:user/release-keys
uid: 10230 (u:r:untrusted_app:s0:c230,c256,c512,c768)
cmdline: com.futo.platformplayer
processUptime: 9s

signal: 11 (SIGSEGV), code 9 (SEGV_MTESERR), faultAddr c00cf304c72dec0
threadName: ForkJoinPool-1-
MTE: enabled

backtrace:
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/base.apk!libjavet-v8-android.v.3.0.2.so (Java_com_caoccao_javet_interop_V8Native_objectGet+264, pc e9bd68)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (art_jni_trampoline+128, pc 2c3b4c0)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.caoccao.javet.interop.V8Runtime.objectGet+168, pc 2c43a98)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex ([DEDUPED] ?.get+224, pc 3096300)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.api.media.platforms.js.models.JSPager.<init>+268, pc 2ca6c7c)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.api.media.platforms.js.JSClient$getChannelContents$1.invoke+3996, pc 2fd30ec)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.api.media.platforms.js.JSClient$getChannelContents$1.invoke+36, pc 2fd3404)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.api.media.platforms.js.JSClient.isBusyWith+136, pc 2c73588)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.api.media.platforms.js.JSClient.getChannelContents+228, pc 2c752f4)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.states.StatePlatform.getChannelContent+456, pc 3288598)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.subscription.SubscriptionsTaskFetchAlgorithm.executeSubscriptionTasks$lambda$31+3860, pc 3831314)
    /data/app/~~hu0Q8Ay06i0IBCiAikkUCQ==/com.futo.platformplayer-WNktwj6GFVust80tOponYg==/oat/arm64/base.odex (com.futo.platformplayer.subscription.SubscriptionsTaskFetchAlgorithm$$ExternalSyntheticLambda0.call+120, pc 32f3648)
    /apex/com.android.art/lib64/libart.so (nterp_helper+7636, pc 7a8c44)
    /apex/com.android.art/javalib/core-oj.jar (java.util.concurrent.ForkJoinTask$AdaptedCallable.exec+4, pc 2497e8)
    /apex/com.android.art/lib64/libart.so (nterp_helper+3924, pc 7a7dc4)
    /apex/com.android.art/javalib/core-oj.jar (java.util.concurrent.ForkJoinTask.doExec+10, pc 24a3a2)
    /apex/com.android.art/lib64/libart.so (nterp_helper+3924, pc 7a7dc4)
    /apex/com.android.art/javalib/core-oj.jar (java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec+10, pc 2469b2)
    /apex/com.android.art/lib64/libart.so (nterp_helper+3924, pc 7a7dc4)
    /apex/com.android.art/javalib/core-oj.jar (java.util.concurrent.ForkJoinPool.scan+190, pc 247e72)
    /apex/com.android.art/lib64/libart.so (nterp_helper+3924, pc 7a7dc4)
    /apex/com.android.art/javalib/core-oj.jar (java.util.concurrent.ForkJoinPool.runWorker+50, pc 249632)
    /apex/com.android.art/lib64/libart.so (nterp_helper+3924, pc 7a7dc4)
    /apex/com.android.art/javalib/core-oj.jar (java.util.concurrent.ForkJoinWorkerThread.run+30, pc 24b3aa)
    /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612, pc 38d374)
    /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136, pc 378668)
    /apex/com.android.art/lib64/libart.so (art::detail::ShortyTraits<(char)86>::Type art::ArtMethod::InvokeInstance<(char)86>(art::Thread*, art::ObjPtr<art::mirror::Object>, art::detail::ShortyTraits<>::Type...)+64, pc 981270)
    /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1352, pc 642a08)
    /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+12, pc 6424ac)
    /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+200, pc 7bac8)
    /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68, pc 6b6d4)
Zvonimir-FUTO commented 4 days ago

@AtmosphericIgnition did you managed to update to 213 without crashing?

AtmosphericIgnition commented 4 days ago

The update went fine, but the feed wasn't refreshing while I updated the plugin this time, which I suspect was the reason for the crash. I'll try and replicate it when the next plugin update comes.

Zvonimir-FUTO commented 4 days ago

You can reinstall the plugin if you have F-Droid or side-loaded version installed by going into plugin settings and at the bottom there should be "Reinstall" button which will put you on the lower version of plugin. Then reopen the app and update Youtube and check again.