fast4x / RiMusic

A multilingual Android application for streaming music from YouTube Music.
https://rimusic.xyz
GNU General Public License v3.0
1.26k stars 71 forks source link

Generic Issue with Crashlog #2315

Open twistios opened 2 weeks ago

twistios commented 2 weeks ago

Steps to reproduce the bug

I don't know what causes the crash, I just want to send the crash-log.

Expected behavior

No Crashes happening

Actual behavior

Crashes happen.

Screenshots/Screen recordings

No response

Logs

2024-06-12T22:49:21.517: java.lang.IllegalStateException: Recording currently in progress - missing #endRecording() call? android.graphics.RenderNode.beginRecording(RenderNode.java:446) android.graphics.RenderNode.beginRecording(RenderNode.java:465) m0.f.a(SourceFile:1) m0.g.t(SourceFile:5) m0.b.e(SourceFile:55) B0.K0.i(SourceFile:138) B0.z.dispatchDraw(SourceFile:102) android.view.View.draw(View.java:25180) android.view.View.updateDisplayListIfDirty(View.java:24036) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) android.view.View.updateDisplayListIfDirty(View.java:24022) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) android.view.View.updateDisplayListIfDirty(View.java:24022) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) android.view.View.updateDisplayListIfDirty(View.java:24022) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) com.android.internal.policy.DecorView.dispatchDraw(DecorView.java:1179) android.view.View.draw(View.java:25180) com.android.internal.policy.DecorView.draw(DecorView.java:1161) android.view.View.updateDisplayListIfDirty(View.java:24036) android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:768) android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:774) android.view.ThreadedRenderer.draw(ThreadedRenderer.java:872) android.view.ViewRootImpl.draw(ViewRootImpl.java:6051) android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5706) android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4795) android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3288) android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11344) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1689) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1698) android.view.Choreographer.doCallbacks(Choreographer.java:1153) android.view.Choreographer.doFrame(Choreographer.java:1079) android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1646) android.os.Handler.handleCallback(Handler.java:958) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loopOnce(Looper.java:230) android.os.Looper.loop(Looper.java:319) android.app.ActivityThread.main(ActivityThread.java:8919) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

2024-06-15T18:22:10.666: java.lang.IllegalStateException: Recording currently in progress - missing #endRecording() call? android.graphics.RenderNode.beginRecording(RenderNode.java:446) android.graphics.RenderNode.beginRecording(RenderNode.java:465) l2.D.b(SourceFile:1) n0.g.E(SourceFile:5) n0.b.e(SourceFile:55) C0.H0.j(SourceFile:138) C0.z.dispatchDraw(SourceFile:102) android.view.View.draw(View.java:25180) android.view.View.updateDisplayListIfDirty(View.java:24036) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) android.view.View.updateDisplayListIfDirty(View.java:24022) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) android.view.View.updateDisplayListIfDirty(View.java:24022) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) android.view.View.updateDisplayListIfDirty(View.java:24022) android.view.View.draw(View.java:24907) android.view.ViewGroup.drawChild(ViewGroup.java:4780) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4538) com.android.internal.policy.DecorView.dispatchDraw(DecorView.java:1179) android.view.View.draw(View.java:25180) com.android.internal.policy.DecorView.draw(DecorView.java:1161) android.view.View.updateDisplayListIfDirty(View.java:24036) android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:768) android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:774) android.view.ThreadedRenderer.draw(ThreadedRenderer.java:872) android.view.ViewRootImpl.draw(ViewRootImpl.java:6051) android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5706) android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4795) android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3288) android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11344) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1689) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1698) android.view.Choreographer.doCallbacks(Choreographer.java:1153) android.view.Choreographer.doFrame(Choreographer.java:1079) android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1646) android.os.Handler.handleCallback(Handler.java:958) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loopOnce(Looper.java:230) android.os.Looper.loop(Looper.java:319) android.app.ActivityThread.main(ActivityThread.java:8919) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

2024-06-15T19:10:18.581: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference n0.l.a(SourceFile:125) k0.f.onPreDraw(SourceFile:32) android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1204) android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4723) android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3288) android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11344) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1689) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1698) android.view.Choreographer.doCallbacks(Choreographer.java:1153) android.view.Choreographer.doFrame(Choreographer.java:1079) android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1646) android.os.Handler.handleCallback(Handler.java:958) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loopOnce(Looper.java:230) android.os.Looper.loop(Looper.java:319) android.app.ActivityThread.main(ActivityThread.java:8919) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

2024-06-15T19:29:42.511: T4.i j2.H.V(SourceFile:63) X6.r.Q1(SourceFile:38) io.ktor.client.engine.cio.e.e(SourceFile:136) u.G.a(SourceFile:14) u.G.c(SourceFile:12) w.s1.u(SourceFile:320) J6.a.l(SourceFile:9) Q7.e.I(SourceFile:79) b7.h.p(SourceFile:100) b7.h.E(SourceFile:33) b7.h.l(SourceFile:17) w0.M.A0(SourceFile:51) w0.M.T(SourceFile:31) u.j.T(SourceFile:112) w0.i.f(SourceFile:157) w0.i.f(SourceFile:136) w0.i.f(SourceFile:136) w0.i.f(SourceFile:136) w0.e.b(SourceFile:30) w0.x.a(SourceFile:126) C0.z.I(SourceFile:79) C0.z.m(SourceFile:373) C0.z.dispatchTouchEvent(SourceFile:76) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:776) com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1967) android.app.Activity.dispatchTouchEvent(Activity.java:4548) i.E.dispatchTouchEvent(SourceFile:3) com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:734) android.view.View.dispatchPointerEvent(View.java:16489) android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:8602) android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:8353) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7682) android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7739) android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7705) android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7908) android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7713) android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7965) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7686) android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7739) android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7705) android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7713) android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7686) android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:11250) android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:11119) android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:11075) android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:11384) android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:337) android.os.MessageQueue.nativePollOnce(Native Method) android.os.MessageQueue.next(MessageQueue.java:335) android.os.Looper.loopOnce(Looper.java:187) android.os.Looper.loop(Looper.java:319) android.app.ActivityThread.main(ActivityThread.java:8919) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

RiMusic version

0.6.39

Android version

14

Additional information

I am posting this because a crash that was around this timestamp: 2024-06-15T19:29:42 It might be that some early part of the log is still from 0.6.38.

fast4x commented 2 weeks ago

Thanks for log, this crash occur when?

twistios commented 2 weeks ago

I don't remember anything specific, I think I clicked on a song in the list of songs, might be related to #2313 but I don't know. Also I think there where serval reasons and it did not crash at the same spot every time.

twistios commented 2 weeks ago

I just tested about #2313 and I also got Crashes serval times but I tried with the same song. When I just now retried with a song from the end of the Playlist (500) it did not crash.

twistios commented 2 weeks ago

It looks like I get Crashes in non-cached songs. The song on which it not crashed was cached.

fast4x commented 2 weeks ago

Do you remember if song had the cover visible?

twistios commented 2 weeks ago

I just now again tested with another song which is also not cached that crashes and it had the cover loaded. I was curious and I tried a song that I never listened to and this one did not crash. So my current idea is that it happens on songs imported from ViMusic that are not yet cached.

twistios commented 2 weeks ago

Ok I think this problem could actually be the same as the "closes at song 500" #2277 . The Total list of songs is >1000. I imported it from ViMusic. When I click on Song 500, the playlist contains songs 1-500. When I click on the song 501 (song after 500) the app closes/crashes. The reason I found this our for me was that it now also crashes/closes on a cashed song.

twistios commented 2 weeks ago

I just tested what happens if maximal playlist size is increased to 1000 for example. Then the songs can be played as expected. I guess it then fails for 1001.

fast4x commented 2 weeks ago

So in settings set max song in queue to 500. You can have 30000 songs but in queue will be added max 500. This is a memory full with up to 500 songs and your device crash.

twistios commented 2 weeks ago

But it does not crash with a queue size of 1000. Also why would it not be possible to automatically create a queue containing 500 songs that also includes the song to be played?

twistios commented 2 weeks ago

I am not 100% sure but I think that this was working in 0.6.38 or some earlier version (and definitely with ViMusic).

fast4x commented 2 weeks ago

Because basically the user is free to choose the maximum length of the play queue.

twistios commented 2 weeks ago

But I can not be a memory issue if it is working with queue size 1000 and not with queue size 500.

twistios commented 2 weeks ago

And if queue size is set to 50 then it crashes/closes at song 51.

twistios commented 2 weeks ago

I am not talking about reaching the end of the playlist, it is about just starting of playing songs at Position >50/.../500/1000/...

twistios commented 2 weeks ago

This is a video with a queue length of 50.

https://github.com/fast4x/RiMusic/assets/54811436/5ed54c7f-00ff-4243-8b8e-106d613c15e0