-
-
Notifications
You must be signed in to change notification settings - Fork 134
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
Full cache reload after 3.5.0 crashes #810
Comments
Hi! I'm getting the same error & log after updating 3.4.3 to 3.5.0. Rolled back to 3.4.3 and all 15680 songs loaded successfully. Can you reproduce @OxygenCobalt or do i offer some samples? |
Please use this debug APK and report the updated stack trace @denny466 @JRDetwiler, I need it to determine the exact location of the error |
@OxygenCobalt Music loading failed
|
Okay, that turned out not to be enough. I need to do another patch that provides finer detail stack traces, will try to do that later this evening @denny466. |
Can you guys get the stack trace from this build @denny466 @JRDetwiler? |
java.lang.Exception: DeviceLibrary creation failed: java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:903)
at java.util.TimSort.mergeAt(TimSort.java:520)
at java.util.TimSort.mergeCollapse(TimSort.java:448)
at java.util.TimSort.sort(TimSort.java:245)
at java.util.Arrays.sort(Arrays.java:1344)
at java.util.ArrayList.sort(ArrayList.java:1738)
at java.util.Collections.sort(Collections.java:210)
at kotlin.collections.CollectionsKt__MutableCollectionsJVMKt.sortWith(MutableCollectionsJVM.kt:42)
at org.oxycblt.auxio.list.sort.Sort.songsInPlace(Sort.kt:105)
at org.oxycblt.auxio.list.sort.Sort.songs(Sort.kt:51)
at org.oxycblt.auxio.image.extractor.Cover$Companion.order(Cover.kt:51)
at org.oxycblt.auxio.image.extractor.ParentCover$Companion.from(Cover.kt:64)
at org.oxycblt.auxio.music.device.ArtistImpl.<init>(DeviceMusicImpl.kt:479)
at org.oxycblt.auxio.music.device.DeviceLibraryFactoryImpl.create(DeviceLibrary.kt:261)
at org.oxycblt.auxio.music.device.DeviceLibraryFactoryImpl$create$1.invokeSuspend(Unknown Source:18)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
at org.oxycblt.auxio.music.MusicRepositoryImpl$indexImpl$deviceLibraryJob$1.invokeSuspend(MusicRepository.kt:476)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
|
Cool @JRDetwiler @denny466, can you try this APK to see if it works? More or less, I was abusing certain functionality to do sorting (in this case cover sorting) which crashed w/certain inputs. It's been in Auxio for several versions now, but since I sort album cover orderings during music loading now it was finally triggered on your end. I got rid of that stuff and it should work now, hopefully. |
@OxygenCobalt It works. Thanks! 🫶 |
It's a debug build, so it's going to be a lot slower. The 3.5.1 patch (and 3.5.0) are much faster. Anyway, thanks, will close this now. |
Hey @OxygenCobalt I'm afraid the issue came back to haunt me on 3.5.1 java.lang.Exception: DeviceLibrary creation failed: java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:903)
at java.util.TimSort.mergeAt(TimSort.java:520)
at java.util.TimSort.mergeForceCollapse(TimSort.java:461)
at java.util.TimSort.sort(TimSort.java:254)
at java.util.Arrays.sort(Arrays.java:1344)
at java.util.ArrayList.sort(ArrayList.java:1738)
at java.util.Collections.sort(Collections.java:210)
at kotlin.collections.CollectionsKt__MutableCollectionsJVMKt.sortWith(Unknown Source:12)
at org.oxycblt.auxio.list.sort.Sort$Mode$ByAlbum.sortSongs(SourceFile:76)
at org.oxycblt.auxio.list.sort.Sort.songs(SourceFile:14)
at org.oxycblt.auxio.image.extractor.Cover$Companion.order(SourceFile:8)
at org.oxycblt.auxio.music.device.ArtistImpl.<init>(SourceFile:381)
at okio.Path$Companion.create(SourceFile:13)
at org.oxycblt.auxio.music.device.DeviceLibraryFactoryImpl$create$1.invokeSuspend(Unknown Source:16)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:8)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Unknown Source:6)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(SourceFile:23)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:31)
at kotlinx.coroutines.DispatchedTask.run(Unknown Source:94)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:92)
at org.oxycblt.auxio.music.MusicRepositoryImpl$indexImpl$deviceLibraryJob$1.invokeSuspend(SourceFile:88)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:8)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Unknown Source:6)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(SourceFile:23)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:31)
at kotlinx.coroutines.DispatchedTask.run(Unknown Source:94)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:92) |
The fix apparently made the bug worse. I absolutely hate this OS. Report the error from this @denny466 @JRDetwiler |
Here you go @OxygenCobalt java.lang.Exception: DeviceLibrary creation failed: java.lang.Exception: Album asc sort error: java.lang.IllegalArgumentException: Comparison method violates its general contract!
at org.oxycblt.auxio.list.sort.Sort$Mode$ByAlbum.sortSongs(SourceFile:148)
at org.oxycblt.auxio.list.sort.Sort.songs(SourceFile:14)
at org.oxycblt.auxio.image.extractor.Cover$Companion.order(SourceFile:8)
at org.oxycblt.auxio.music.device.ArtistImpl.<init>(SourceFile:381)
at okio.Path$Companion.create(SourceFile:13)
at org.oxycblt.auxio.music.device.DeviceLibraryFactoryImpl$create$1.invokeSuspend(Unknown Source:16)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:8)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Unknown Source:6)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(SourceFile:23)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:31)
at kotlinx.coroutines.DispatchedTask.run(Unknown Source:94)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:92)
at org.oxycblt.auxio.music.MusicRepositoryImpl$indexImpl$deviceLibraryJob$1.invokeSuspend(SourceFile:88)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:8)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Unknown Source:6)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(SourceFile:23)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:31)
at kotlinx.coroutines.DispatchedTask.run(Unknown Source:94)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:92) |
Alright, so it's an issue with name comparison. Can you see if disabling Settings -> Content -> Intelligent sorting does anything @denny466? |
Disabling Intelligent sorting did the trick on both the APK you provided and F-droid release. Listening to music just fine now. Thanks @OxygenCobalt |
Can you try out this new APK really quick (clear storage so you were in the same situation when you reported the bug) @denny466 |
This APK successfully loaded my library with intelligent sorting enabled! Nice going @OxygenCobalt |
Thanks pushed 3.5.2 @denny466 |
So sorry I haven't been able to test until now, the latest fix works for me too. Thank you so much! |
It tried to fully reload my library and I got
The text was updated successfully, but these errors were encountered: