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

PlayStore test failing for custom app (Tunisie) #3638

Closed
kelson42 opened this issue Dec 27, 2023 · 4 comments
Closed

PlayStore test failing for custom app (Tunisie) #3638

kelson42 opened this issue Dec 27, 2023 · 4 comments
Assignees
Labels
Milestone

Comments

@kelson42
Copy link
Collaborator

kelson42 commented Dec 27, 2023

image

Logs provided by google

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/sdk_goog3_x86/generic_x86:9/PSR1.180720.092/5326075:userdebug/test-keys'
Revision: '0'
ABI: 'x86'
pid: 7630, tid: 7938, name: RxCachedThreadS  >>> org.kiwix.kiwixcustomtunisie <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Cause: null pointer dereference
    eax 00000000  ebx d3bb4cb8  ecx cc63eeaa  edx c0c77d10
    edi d00b6900  esi c0c77d0c
    ebp c0c77cd8  esp c0c77c70  eip d3b95847

Video of crash provided by Google

video.mp4

Second crash logs

backtrace:
  #00  pc 0x000000000000d847  /data/app/org.kiwix.kiwixcustomtunisie-zpYpvD5NN5TIY8saQ90pwA==/split_config.x86.apk (Java_org_kiwix_libzim_Archive_getEntryByPath__Ljava_lang_String_2+119)
  #01  pc 0x00000000005f6b97  /system/lib/libart.so (art_quick_generic_jni_trampoline+71)
  #02  pc 0x00000000005f0b82  /system/lib/libart.so (art_quick_invoke_stub+338)
  #03  pc 0x00000000000a30ce  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+222)
  #04  pc 0x000000000029bca2  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+338)
  #05  pc 0x0000000000293e48  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1048)
  #06  pc 0x00000000005bc493  /system/lib/libart.so (MterpInvokeVirtual+691)
  #07  pc 0x00000000005e2d21  /system/lib/libart.so (ExecuteMterpImpl+14241)
  #08  pc 0x0000000000205188  /data/app/org.kiwix.kiwixcustomtunisie-zpYpvD5NN5TIY8saQ90pwA==/base.apk (org.kiwix.kiwixmobile.core.reader.ZimFileReader.getItem+84)
  #09  pc 0x0000000000266216  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.2093054539)+598)
  #10  pc 0x000000000026c79c  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220)
  #11  pc 0x0000000000293e2b  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019)
  #12  pc 0x00000000005bc493  /system/lib/libart.so (MterpInvokeVirtual+691)
  #13  pc 0x00000000005e2d21  /system/lib/libart.so (ExecuteMterpImpl+14241)
  #14  pc 0x0000000000204afc  /data/app/org.kiwix.kiwixcustomtunisie-zpYpvD5NN5TIY8saQ90pwA==/base.apk (org.kiwix.kiwixmobile.core.reader.ZimFileReader$$ExternalSyntheticLambda0.run+96)
  #15  pc 0x0000000000266216  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.2093054539)+598)
  #16  pc 0x000000000026c79c  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220)
  #17  pc 0x0000000000293e2b  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019)
  #18  pc 0x00000000005bd574  /system/lib/libart.so (MterpInvokeInterface+1444)
  #19  pc 0x00000000005e2f21  /system/lib/libart.so (ExecuteMterpImpl+14753)
  #20  pc 0x000000000019afd8  /data/app/org.kiwix.kiwixcustomtunisie-zpYpvD5NN5TIY8saQ90pwA==/base.apk (io.reactivex.internal.operators.completable.CompletableFromAction.subscribeActual+24)
  #21  pc 0x0000000000266216  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.2093054539)+598)
  #22  pc 0x000000000026c79c  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220)

Device specifications

  • Model name = Pixel 2 (virtual)
  • Manufacturer = Google
  • Android version = Android 9 (SDK 28)
  • Locale = ar_EG
  • Screen size = 1080 x 1920
  • Screen density (DPI) = 420
  • RAM (total memory) -
  • OpenGL ES version -
  • ABI = x86
  • CPU -
@kelson42 kelson42 added the bug label Dec 27, 2023
@kelson42 kelson42 added this to the 3.10.0 milestone Dec 27, 2023
@MohitMaliFtechiz
Copy link
Collaborator

MohitMaliFtechiz commented Dec 29, 2023

@gouri-panda, @kelson42 I have tried to reproduce the error with many scenarios in the same configuration of the emulator which is provided by the pre-launched report. Unfortunately, I am not able to reproduce this error on my local machine. The logs provided by the pre-launched report are related to the getEntryByPath and getItem methods, these methods are already in the try-catch block so the crash is occurring inside the lib, and we can not handle this in Android since these methods are already inside the try-catch block.

I saw this report is generated by the Firebase Test lab. so I have tested our APK with the Firebase test lab. However, I have not seen this crash in the Firebase test lab report, so it probably hardly occurs. Might be @mgautierfr can better understand the error by the provided logs.

Apart from this, the Firebase test lab report provides a bug report in our application. This is a genuine error, our application is crashing below Api level 29, when we switch to external storage and it has less storage in it.

Error reported by the Firebase Test Lab report
Screenshot from 2023-12-29 15-10-21

I confirm this bug exists.
Screenshot from 2023-12-29 15-08-37

Logs

Process: org.kiwix.kiwixmobile, PID: 15852
                                                                                                    io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.NoSuchMethodError: No direct method <init>(Ljava/io/File;I)V in class Landroid/os/FileObserver; or its super classes (declaration of 'android.os.FileObserver' appears in /system/framework/framework.jar)
                                                                                                    	at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
                                                                                                    	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
                                                                                                    	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
                                                                                                    	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                                    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                                                                    	at java.lang.Thread.run(Thread.java:761)
                                                                                                    Caused by: java.lang.NoSuchMethodError: No direct method <init>(Ljava/io/File;I)V in class Landroid/os/FileObserver; or its super classes (declaration of 'android.os.FileObserver' appears in /system/framework/framework.jar)
                                                                                                    	at org.kiwix.kiwixmobile.zimManager.Fat32Checker$fileObserver$1.<init>(Fat32Checker.kt:66)
                                                                                                    	at org.kiwix.kiwixmobile.zimManager.Fat32Checker.fileObserver(Fat32Checker.kt:66)
                                                                                                    	at org.kiwix.kiwixmobile.zimManager.Fat32Checker._init_$lambda-2(Fat32Checker.kt:59)
                                                                                                    	at org.kiwix.kiwixmobile.zimManager.Fat32Checker.$r8$lambda$qFAKoPi7GWGXdtHXd4q0qCUOpJg(Fat32Checker.kt)
                                                                                                    	at org.kiwix.kiwixmobile.zimManager.Fat32Checker$$ExternalSyntheticLambda2.accept(D8$$SyntheticClass)
                                                                                                    	at io.reactivex.internal.subscribers.LambdaSubscriber.onNext(LambdaSubscriber.java:65)
                                                                                                    	at io.reactivex.internal.operators.flowable.FlowableSubscribeOn$SubscribeOnSubscriber.onNext(FlowableSubscribeOn.java:97)
                                                                                                    	at io.reactivex.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:407)
                                                                                                    	at io.reactivex.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:176)
                                                                                                    	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)

@kelson42
Copy link
Collaborator Author

@MohitMaliFtechiz Thank you for the analysis. I guess without the devug symbols of libkiwix it will be difficult to do more.
@mgautierfr Please complete kiwix/java-libkiwix#79 so we avoid in the future to end-up in such situations.

@MohitMaliFtechiz
Copy link
Collaborator

@kelson42 For the second issue i have placed a fix in #3642

@kelson42
Copy link
Collaborator Author

I guess here there is nothing much more we can do. Closing.

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

No branches or pull requests

2 participants