apognu / otter

Music player for Funkwhale
MIT License
215 stars 21 forks source link

App Crashes on Connection to Instance running Funkwhale 1.0-rc1 #72

Closed dregin closed 4 years ago

dregin commented 4 years ago

Describe the bug

I've upgraded my instance to Funkwhale 1.0-rc1 and Otter is now crashing on login.

I've tried both anonymous auth and regular auth. I've tried cleartext traffic and not.

How to reproduce

  1. Clear otter app data
  2. Add the URL playitfaster.com
  3. Enable Anonymous Authentication
  4. Click Log In

Expected behavior

I'd get to the regular landing screen.

Environment details

Logs

Logcat sees the following NPE on the device:

<<< log_count = 14 >>>
[08-24 21:58:06.800 1114:22518 E/ANDR-RAMBOOST_SERVER]
ramboost cmd_len = 101 cmd: iop_start -1 com.github.apognu.otter /data/app/com.github.apognu.otter-pM2osRqCF2RnSW6b7-Do4A== false

[08-24 21:58:06.804 1114:22520 E/ANDR-RAMBOOST_SERVER]
ramboost cmd_len = 104 cmd: iop_start 22489 com.github.apognu.otter /data/app/com.github.apognu.otter-pM2osRqCF2RnSW6b7-Do4A== false

[08-24 21:58:06.805 1543:3036 E/ScreenModeService]
getAppToken AppWindowToken{6bc70da token=Token{9f24a85 ActivityRecord{39423fc u0 com.github.apognu.otter/.activities.SplashActivity t22273}}}

[08-24 21:58:06.805 1543:3036 E/ScreenModeService]
setRefreshRate token AppWindowToken{6bc70da token=Token{9f24a85 ActivityRecord{39423fc u0 com.github.apognu.otter/.activities.SplashActivity t22273}}} rate 0

[08-24 21:58:06.844 22489:22526 E/Perf]
Fail to get file list com.github.apognu.otter

[08-24 21:58:06.844 22489:22526 E/Perf]
Fail to get file list com.github.apognu.otter

[08-24 21:58:06.942 1543:5326 E/ScreenModeService]
getAppToken AppWindowToken{a771059 token=Token{7c3cca0 ActivityRecord{92e41a3 u0 com.github.apognu.otter/.activities.MainActivity t22274}}}

[08-24 21:58:06.942 1543:5326 E/ScreenModeService]
setRefreshRate token AppWindowToken{a771059 token=Token{7c3cca0 ActivityRecord{92e41a3 u0 com.github.apognu.otter/.activities.MainActivity t22274}}} rate 0

[08-24 21:58:07.158 22489:22489 E/AndroidRuntime]
FATAL EXCEPTION: main
Process: com.github.apognu.otter, PID: 22489
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.github.apognu.otter.utils.Covers.getOriginal()' on a null object reference
    at com.github.apognu.otter.adapters.AlbumsGridAdapter.onBindViewHolder(Unknown Source:26)
    at com.github.apognu.otter.adapters.AlbumsGridAdapter.onBindViewHolder(Unknown Source:2)
    at androidx.recyclerview.widget.RecyclerView$g.onBindViewHolder(Unknown Source:0)
    at androidx.recyclerview.widget.RecyclerView$g.bindViewHolder(Unknown Source:29)
    at androidx.recyclerview.widget.RecyclerView$v.k(:48)
    at androidx.recyclerview.widget.LinearLayoutManager$c.c(:3)
    at androidx.recyclerview.widget.GridLayoutManager.v1(Unknown Source:94)
    at androidx.recyclerview.widget.LinearLayoutManager.g1(:2)
    at androidx.recyclerview.widget.LinearLayoutManager.u0(:22)
    at androidx.recyclerview.widget.GridLayoutManager.u0(:7)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(Unknown Source:38)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayout(Unknown Source:37)
    at androidx.recyclerview.widget.RecyclerView.onLayout(Unknown Source:5)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(Unknown Source:58)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at c.c.a.b.n.i.C(:6)
    at c.c.a.b.n.j.k(Unknown Source:0)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(:2)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at androidx.viewpager.widget.ViewPager.onLayout(Unknown Source:256)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.q(:17)
    at c.c.a.b.n.i.C(:7)
    at c.c.a.b.n.j.k(Unknown Source:0)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(:2)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
    at android.view.View.layout(View.java:22105)
    at android.view.ViewGroup.layout(ViewGroup.java:6290)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at com.android.internal.policy.DecorView.onLayout(DecorView.java:786)
    at android.view.View.layout(View.java:22105)

[08-24 21:58:07.223 1543:2075 E/InputDispatcher]
channel 'd48e9fb com.github.apognu.otter/com.github.apognu.otter.activities.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

[08-24 21:58:07.233 1543:2075 E/InputDispatcher]
channel '1b54bda com.github.apognu.otter/com.github.apognu.otter.activities.SplashActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

[08-24 21:58:08.319 22594:22619 E/Perf]
Fail to get file list com.github.apognu.otter

[08-24 21:58:08.320 22594:22619 E/Perf]
Fail to get file list com.github.apognu.otter

[08-24 21:58:16.806 1114:22668 E/ANDR-RAMBOOST_SERVER]
ramboost cmd_len = 34 cmd: iop_record com.github.apognu.otter

The docker logs from the server see this:

nginx_1         | X.X.X.X - - [24/Aug/2020:20:58:07 +0000] "GET /api/v1/albums/?playable=true&page_size=50&page=1&scope=all HTTP/1.1" 499 0 "-" "Dalvik/2.1.0 (Linux; U; Android 10; HD1913 Build/QKQ1.190716.003)" "95.44.229.91"
nginx_1         | X.X.X.X - - [24/Aug/2020:20:58:07 +0000] "GET /api/v1/playlists/?playable=true&page_size=50&page=1&scope=all HTTP/1.1" 499 0 "-" "Dalvik/2.1.0 (Linux; U; Android 10; HD1913 Build/QKQ1.190716.003)" "95.44.229.91"
nginx_1         | X.X.X.X - - [24/Aug/2020:20:58:07 +0000] "GET /api/v1/artists/?playable=true&page_size=50&page=1&scope=all HTTP/1.1" 499 0 "-" "Dalvik/2.1.0 (Linux; U; Android 10; HD1913 Build/QKQ1.190716.003)" "95.44.229.91"
nginx_1         | X.X.X.X - - [24/Aug/2020:20:58:07 +0000] "GET /api/v1/radios/radios/?page_size=50&page=1&scope=all HTTP/1.1" 499 0 "-" "Dalvik/2.1.0 (Linux; U; Android 10; HD1913 Build/QKQ1.190716.003)" "95.44.229.91"
nginx_1         | X.X.X.X - - [24/Aug/2020:20:58:07 +0000] "GET /api/v1/users/users/me/ HTTP/1.1" 499 0 "-" "Dalvik/2.1.0 (Linux; U; Android 10; HD1913 Build/QKQ1.190716.003)" "95.44.229.91"
api_1           | 2020-08-24 20:58:07,482 django.request WARNING  Unauthorized: /api/v1/users/users/me/
AMoonRabbit commented 4 years ago

I think this may have been related to the issues I experienced connecting to tanukitunes instance before 1.0rc1 was released. Could be related to #64

dregin commented 4 years ago

I think this may have been related to the issues I experienced connecting to tanukitunes instance before 1.0rc1 was released. Could be related to #64

Yep! Foxed in the debug build. Will close this now. Thanks!