msfjarvis/viscerion

[Bug] Viscerion crashes on entering preferences

Atrate opened this issue · 12 comments

After the newest update, Viscerion hangs on entering the preferences and crashes.

It also overflows my log buffer so I can't capture a log.

Device info:
Rooted Android 9
Kernel backend
Viscerion integrated to /system/priv-app

I can't reproduce this on my devices :( Does it happen every time? Was root granted to the app?

Every time, with root access granted. I'll try to reinstall the app without integrating it to /system

It didn't help, but I've managed to catch another exception's log. This one occurs when trying to edit an existing tunnel's preferences:

10-13 10:21:25.930 D/AndroidRuntime(15258): Shutting down VM
10-13 10:21:25.931 E/AndroidRuntime(15258): FATAL EXCEPTION: main
10-13 10:21:25.931 E/AndroidRuntime(15258): Process: me.msfjarvis.viscerion, PID: 15258
10-13 10:21:25.931 E/AndroidRuntime(15258): androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.wireguard.android.fragment.TunnelDetailFragment: could not find Fragment constructor
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at androidx.fragment.app.Fragment.instantiate(Fragment.java:7)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:1)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at androidx.fragment.app.BackStackRecord.createFragment$androidx$fragment$app$FragmentTransaction(BackStackRecord.java:6)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at androidx.fragment.app.BackStackRecord.createFragment(Unknown Source:0)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at com.wireguard.android.activity.MainActivity.onSelectedTunnelChanged(MainActivity.kt:8)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at com.wireguard.android.activity.BaseActivity.setSelectedTunnel(BaseActivity.kt:4)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at com.wireguard.android.fragment.BaseFragment.setSelectedTunnel(BaseFragment.kt:1)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at com.wireguard.android.fragment.TunnelListFragment$onViewStateRestored$2$onConfigureRow$1.onClick(TunnelListFragment.kt:3)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.view.View.performClick(View.java:6617)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.view.View.performClickInternal(View.java:6594)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.view.View.access$3100(View.java:778)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.view.View$PerformClick.run(View.java:25910)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.os.Handler.handleCallback(Handler.java:873)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.os.Handler.dispatchMessage(Handler.java:99)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.os.Looper.loop(Looper.java:193)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at android.app.ActivityThread.main(ActivityThread.java:6739)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at java.lang.reflect.Method.invoke(Native Method)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:859)
10-13 10:21:25.931 E/AndroidRuntime(15258): Caused by: java.lang.NoSuchMethodException: <init> []
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at java.lang.Class.getConstructor0(Class.java:2327)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at java.lang.Class.getConstructor(Class.java:1725)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	at androidx.fragment.app.Fragment.instantiate(Fragment.java:3)
10-13 10:21:25.931 E/AndroidRuntime(15258): 	... 18 more
10-13 10:21:25.935 W/ActivityManager(1564):   Force finishing activity me.msfjarvis.viscerion/com.wireguard.android.activity.MainActivity

Yeah, the tunnel view one is fixed.

After increasing the log buffer tenfold, I have managed to catch the exception when entering settings:

10-13 12:58:11.682 I/ActivityManager(1564): START u0 {cmp=me.msfjarvis.viscerion/com.wireguard.android.activity.SettingsActivity} from uid 10416
10-13 12:58:11.687 E/QCOM PowerHAL(539): Failed to perform launch boost
10-13 12:58:11.725 W/ActivityThread(9888): handleWindowVisibility: no activity for token android.os.BinderProxy@9357ccb
10-13 12:58:11.775 I/ViewRootImpl(9888): CPU Rendering VSync enable = false
10-13 12:58:12.176 D/AndroidRuntime(9888): Shutting down VM
10-13 12:58:12.382 I/arvis.viscerio(9888): Background concurrent copying GC freed 200021(8MB) AllocSpace objects, 53(1140KB) LOS objects, 39% free, 36MB/60MB, paused 166us total 380.349ms
10-13 12:58:12.646 I/arvis.viscerio(9888): Background concurrent copying GC freed 319668(43MB) AllocSpace objects, 1(876KB) LOS objects, 32% free, 49MB/73MB, paused 146us total 155.641ms
10-13 12:58:12.692 V/chatty  (1564): uid=1000(system) PowerManagerSer expire 1 line
--------- beginning of crash
10-13 12:58:12.702 E/AndroidRuntime(9888): 	at androidx.preference.PreferenceRecyclerViewAccessibilityDelegate$1.onInitializeAccessibilityNodeInfo(PreferenceRecyclerViewAccessibilityDelegate.java:1)
10-13 12:58:12.702 E/AndroidRuntime(9888): 	at androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate$ItemDelegate.onInitializeAccessibilityNodeInfo(RecyclerViewAccessibilityDelegate.java:6)
10-13 12:58:12.702 E/AndroidRuntime(9888): 	at androidx.preference.PreferenceRecyclerViewAccessibilityDelegate$1.onInitializeAccessibilityNodeInfo(PreferenceRecyclerViewAccessibilityDelegate.java:1)

The recyclerview error repeats itself for thousands of lines and then:

10-13 12:58:12.710 E/AndroidRuntime(9888): 	at androidx.preference.PreferenceRecyclerViewAccessibilityDelegate$1.onInitializeAccessibilityNodeInfo(PreferenceRecyclerViewAccessibilityDelegate.java:1)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate$ItemDelegate.onInitializeAccessibilityNodeInfo(RecyclerViewAccessibilityDelegate.java:6)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at androidx.preference.PreferenceRecyclerViewAccessibilityDelegate$1.onInitializeAccessibilityNodeInfo(PreferenceRecyclerViewAccessibilityDelegate.java:1)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompat.java:17)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.View.onInitializeAccessibilityNodeInfo(View.java:7717)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.View.createAccessibilityNodeInfoInternal(View.java:7678)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.View$AccessibilityDelegate.createAccessibilityNodeInfo(View.java:27250)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.View.createAccessibilityNodeInfo(View.java:7661)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1147)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1170)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:972)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:336)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.AccessibilityInteractionController.access$400(AccessibilityInteractionController.java:67)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:1324)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.os.Handler.dispatchMessage(Handler.java:106)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.os.Looper.loop(Looper.java:193)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at android.app.ActivityThread.main(ActivityThread.java:6739)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at java.lang.reflect.Method.invoke(Native Method)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
10-13 12:58:12.710 E/AndroidRuntime(9888): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:859)
10-13 12:58:12.838 I/arvis.viscerio(9888): Background concurrent copying GC freed 344643(54MB) AllocSpace objects, 7(1656KB) LOS objects, 32% free, 49MB/73MB, paused 119us total 109.526ms
10-13 12:58:13.002 I/arvis.viscerio(9888): Background concurrent copying GC freed 222000(34MB) AllocSpace objects, 3(11MB) LOS objects, 22% free, 81MB/105MB, paused 130us total 125.620ms
10-13 12:58:13.097 W/ActivityManager(1564):   Force finishing activity me.msfjarvis.viscerion/com.wireguard.android.activity.SettingsActivity
10-13 12:58:13.106 W/ActivityManager(1564):   Force finishing activity me.msfjarvis.viscerion/com.wireguard.android.activity.MainActivity
10-13 12:58:13.116 W/ContextImpl(1564): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1005 com.android.server.am.AppErrors.crashApplicationInner:469 com.android.server.am.AppErrors.crashApplication:392 com.android.server.am.ActivityManagerService.handleApplicationCrashInner:15784 com.android.server.am.ActivityManagerService.handleApplicationCrash:15750 
10-13 12:58:13.118 I/ActivityManager(1564): Showing crash dialog for package me.msfjarvis.viscerion u0
10-13 12:58:13.131 I/ViewRootImpl(1564): CPU Rendering VSync enable = false
10-13 12:58:13.155 I/OpenGLRenderer(1564): Initialized EGL, version 1.4
10-13 12:58:13.156 D/OpenGLRenderer(1564): Swap behavior 1
10-13 12:58:13.192 I/arvis.viscerio(9888): Background concurrent copying GC freed 274405(42MB) AllocSpace objects, 1(12MB) LOS objects, 26% free, 66MB/90MB, paused 15.944ms total 145.173ms
10-13 12:58:13.242 W/System  (4463): A resource failed to call release. 
10-13 12:58:13.600 W/ActivityManager(1564): Activity pause timeout for ActivityRecord{7f929b0 u0 me.msfjarvis.viscerion/com.wireguard.android.activity.SettingsActivity t301 f}
10-13 12:58:13.242 W/System  (4463): A resource failed to call release. 
10-13 12:58:13.636 E/FA      (19415): Unable to use remote or local measurement implementation. Please register the AppMeasurementService service in the app manifest
10-13 12:58:13.650 I/Adreno  (19415): QUALCOMM build                   : 2df12b3, I07da2d9908
10-13 12:58:13.650 I/Adreno  (19415): Build Date                       : 10/04/18
10-13 12:58:13.650 I/Adreno  (19415): OpenGL ES Shader Compiler Version: EV031.25.03.01
10-13 12:58:13.650 I/Adreno  (19415): Local Branch                     : 
10-13 12:58:13.650 I/Adreno  (19415): Remote Branch                    : 
10-13 12:58:13.650 I/Adreno  (19415): Remote Branch                    : 
10-13 12:58:13.650 I/Adreno  (19415): Reconstruct Branch               : 
10-13 12:58:13.650 I/Adreno  (19415): Build Config                     : S L 6.0.7 AArch64
10-13 12:58:13.656 D/vndksupport(19415): Loading /vendor/lib64/hw/gralloc.msm8996.so from current namespace instead of sphal namespace.
10-13 12:58:13.661 I/Adreno  (19415): PFP: 0x005ff087, ME: 0x005ff063
10-13 12:58:13.663 I/ConfigStore(19415): android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
10-13 12:58:13.663 I/ConfigStore(19415): android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
10-13 12:58:13.667 I/OpenGLRenderer(19415): Initialized EGL, version 1.4
10-13 12:58:13.667 D/OpenGLRenderer(19415): Swap behavior 1
10-13 12:58:13.743 W/WebSocketConnection(7420): Sending keep alive...
10-13 12:58:13.746 W/RealtimeSleepTimer(7420): Setting alarm to wake up in 55000ms.
10-13 12:58:13.917 I/system_server(1564): NativeAlloc concurrent copying GC freed 31103(1981KB) AllocSpace objects, 20(784KB) LOS objects, 42% free, 17MB/31MB, paused 176us total 115.829ms
10-13 12:58:14.166 E/LightsService(1564): Light requested not available on this device. 2
10-13 12:58:14.167 W/ActivityManager(1564):   Force finishing activity me.msfjarvis.viscerion/com.wireguard.android.activity.SettingsActivity
10-13 12:58:14.168 W/ActivityManager(1564):   Force finishing activity me.msfjarvis.viscerion/com.wireguard.android.activity.MainActivity
10-13 12:58:14.183 W/SurfaceFlinger(631): Attempting to destroy on removed layer: 22c6512 me.msfjarvis.viscerion/com.wireguard.android.activity.SettingsActivity#0
10-13 12:58:14.210 I/ActivityManager(1564): Killing 9888:me.msfjarvis.viscerion/u0a416 (adj 900): crash

Which device is this?

LG G6 international (H870) running HavocOS Pie, without Xposed

LG G6 international (H870) running HavocOS Pie, without Xposed

Ugh, Havoc. I'm sorry, I can't debug anything on devices running that atrocious ROM. If you ever find yourself on a different ROM and able to reproduce this bug, please let me know. Closing for now as wontfix.

I felt nice and looked up some things. Try this release build and see if it fixes your problems.

It does work! Thanks for taking your time.

atrocious ROM

Why?

I just received the version update to 5.2.1. When trying to install the command-line tools, the app crashes. Please find attached the logcat.
I'm running LineageOS 16.0 with Magisk 20.0 and integrated kernel module.
viscerion-crash.txt

The above provided version 5.2.1-4-g03937d4f4800 also works here.

Release 5.2.2 with the fix for this has been pushed to the Play Store.