zhanghai / zhanghai/MaterialFiles

Browsing WebDAV mount is slow since 1.4.0

Open
#711 18 comments 1 reaction 1 assignee View on GitHub

@zhanghai is already working on this.

Since Mar 18, 2022.

bug
Dominant language
Kotlin
Stars
9k
Forks
736
PR merge metrics
No merged PRs in 30d

Description

Using the google play version.

Android version: 10 (Patch level: February 2022)

WebDAV is Nextcloud and sync adapter is DAVx⁵.

Output:

$ adb logcat --pid=`adb shell pidof -s me.zhanghai.android.files`

--------- beginning of main
03-18 11:30:24.983 20181 20181 E i.android.file: Not starting debugger since process cannot load the jdwp agent.
03-18 11:30:25.053 20181 20181 I FirebaseApp: Device unlocked: initializing all Firebase APIs for app [DEFAULT]
03-18 11:30:25.058 20181 20181 I FirebaseCrashlytics: Initializing Firebase Crashlytics 18.2.6 for me.zhanghai.android.files
03-18 11:30:25.116 20181 20203 I DynamiteModule: Considering local module com.google.android.gms.measurement.dynamite:55 and remote module com.google.android.gms.measurement.dynamite:67
03-18 11:30:25.116 20181 20203 I DynamiteModule: Selected remote version of com.google.android.gms.measurement.dynamite, version >= 67
03-18 11:30:25.117 20181 20203 V DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils
03-18 11:30:25.128 20181 20206 D NetworkSecurityConfig: No Network Security Config specified, using platform default
03-18 11:30:25.132 20181 20181 I FirebaseInitProvider: FirebaseApp initialization successful
03-18 11:30:25.138 20181 20210 D TransportRuntime.JobInfoScheduler: Upload for context TransportContext(cct, HIGHEST, MSRodHRwczovL2NyYXNobHl0aWNzcmVwb3J0cy1wYS5nb29nbGVhcGlzLmNvbS92MS9maXJlbG9nL2xlZ2FjeS9iYXRjaGxvZ1xBSXphU3lCcnBTWVQ0RkZMMDlyZUhKaTZIOUZZZGVpU25VVE92Mk0=) is already scheduled. Returning...
03-18 11:30:25.146 20181 20204 D libcrashlytics: Initializing libcrashlytics version 3.2.0
03-18 11:30:25.149 20181 20204 D libcrashlytics: Initializing native crash handling successful.
03-18 11:30:25.271 20181 20216 W i.android.file: Class ya.e failed lock verification and will run slower.
03-18 11:30:25.271 20181 20216 W i.android.file: Common causes for lock verification issues are non-optimized dex code
03-18 11:30:25.271 20181 20216 W i.android.file: and incorrect proguard optimizations.
03-18 11:30:25.287 20181 20181 W CheckTime: App running slow: Executing handleBindApplication : installContentProviders took 252ms
03-18 11:30:25.333 20181 20215 I FA      : App measurement initialized, version: 58000
03-18 11:30:25.333 20181 20215 I FA      : To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
03-18 11:30:25.333 20181 20215 I FA      : To enable faster debug mode event logging run:
03-18 11:30:25.333 20181 20215 I FA      :   adb shell setprop debug.firebase.analytics.app me.zhanghai.android.files
03-18 11:30:25.609 20181 20215 I FA      : Tag Manager is not found and thus will not be used
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: Settings request failed.
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: java.net.ConnectException: Failed to connect to firebase-settings.crashlytics.com/0.0.0.0:443
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:147)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at s5.a.b(:3)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at v5.a.c(:5)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at v3.u3.run(:56)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at o5.e0$a.a(Unknown Source:2)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at o5.c.run(Unknown Source:5)
03-18 11:30:25.611 20181 20206 E FirebaseCrashlytics: 	at java.lang.Thread.run(Thread.java:919)
03-18 11:30:25.898 20181 20221 W Gralloc3: mapper 3.x is not supported
03-18 11:30:25.901 20181 20221 D         : Gralloc Register  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:163946, sSize:4149248, line = 2270
03-18 11:30:25.966 20181 20221 D         : Gralloc Register  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:163991, sSize:4149248, line = 2270
03-18 11:30:25.980 20181 20221 D         : Gralloc Register  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:163996, sSize:4149248, line = 2270
03-18 11:30:27.100 20181 20193 I i.android.file: Background young concurrent copying GC freed 87189(9282KB) AllocSpace objects, 25(564KB) LOS objects, 65% free, 12MB/36MB, paused 233us total 125.442ms
03-18 11:30:35.052 20181 20181 W System.err: java8.nio.file.FileSystemException: /: java.lang.InterruptedException
03-18 11:30:35.052 20181 20181 W System.err: 	at jd.a.s(:1)
03-18 11:30:35.052 20181 20181 W System.err: 	at v9.k.e(:2)
03-18 11:30:35.052 20181 20181 W System.err: 	at ad.h.R(Unknown Source:5)
03-18 11:30:35.053 20181 20181 W System.err: 	at sc.b0.call(:1)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.lang.Thread.run(Thread.java:919)
03-18 11:30:35.053 20181 20181 W System.err: Caused by: me.zhanghai.android.files.provider.content.resolver.ResolverException: java.lang.InterruptedException
03-18 11:30:35.053 20181 20181 W System.err: 	at kd.a.s(:3)
03-18 11:30:35.053 20181 20181 W System.err: 	at jd.a.s(Unknown Source:27)
03-18 11:30:35.053 20181 20181 W System.err: 	... 7 more
03-18 11:30:35.053 20181 20181 W System.err: Caused by: java.lang.InterruptedException
03-18 11:30:35.053 20181 20181 W System.err: 	at ye.s.y(:16)
03-18 11:30:35.053 20181 20181 W System.err: 	at ye.s.z(:1)
03-18 11:30:35.053 20181 20181 W System.err: 	at kd.a.s(:1)
03-18 11:30:35.053 20181 20181 W System.err: 	... 8 more
03-18 11:30:39.688 20181 20181 W System.err: java8.nio.file.FileSystemException: /MSC: java.lang.InterruptedException
03-18 11:30:39.688 20181 20181 W System.err: 	at jd.a.s(:1)
03-18 11:30:39.688 20181 20181 W System.err: 	at v9.k.e(:2)
03-18 11:30:39.688 20181 20181 W System.err: 	at ad.h.R(Unknown Source:5)
03-18 11:30:39.688 20181 20181 W System.err: 	at sc.b0.call(:1)
03-18 11:30:39.688 20181 20181 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
03-18 11:30:39.688 20181 20181 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-18 11:30:39.688 20181 20181 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-18 11:30:39.688 20181 20181 W System.err: 	at java.lang.Thread.run(Thread.java:919)
03-18 11:30:39.688 20181 20181 W System.err: Caused by: me.zhanghai.android.files.provider.content.resolver.ResolverException: java.lang.InterruptedException
03-18 11:30:39.688 20181 20181 W System.err: 	at kd.a.s(:3)
03-18 11:30:39.688 20181 20181 W System.err: 	at jd.a.s(Unknown Source:27)
03-18 11:30:39.688 20181 20181 W System.err: 	... 7 more
03-18 11:30:39.688 20181 20181 W System.err: Caused by: java.lang.InterruptedException
03-18 11:30:39.688 20181 20181 W System.err: 	at ye.s.y(:16)
03-18 11:30:39.688 20181 20181 W System.err: 	at ye.s.z(:1)
03-18 11:30:39.688 20181 20181 W System.err: 	at kd.a.s(:1)
03-18 11:30:39.688 20181 20181 W System.err: 	... 8 more
03-18 11:30:39.693 20181 20181 V Toast   : Toast SHOW: android.widget.Toast@91e43c view = android.widget.LinearLayout{410a5c5 V.E...... ......I. 0,0-0,0} caller: xd.m.v:41 
03-18 11:30:39.698 20181 20197 V Toast   : SHOW: android.widget.Toast$TN@8f6cb1a
03-18 11:30:39.723 20181 20181 V Toast   : HANDLE SHOW: android.widget.Toast$TN@8f6cb1a mView=null mNextView=android.widget.LinearLayout{410a5c5 V.E...... ......I. 0,0-0,0}
03-18 11:30:39.723 20181 20181 V Toast   : HANDLE HIDE: android.widget.Toast$TN@8f6cb1a mView=null
03-18 11:30:39.723 20181 20181 V Toast   : ADD! android.widget.LinearLayout{410a5c5 V.E...... ......I. 0,0-0,0} in android.widget.Toast$TN@8f6cb1a
03-18 11:30:39.771 20181 20221 D         : Gralloc Register  w:560, h:115, f:0x1, usage:0xb00, ui64Stamp:164719, sSize:286720, line = 2270
03-18 11:30:41.699 20181 20197 V Toast   : HIDE: android.widget.Toast$TN@8f6cb1a
03-18 11:30:41.719 20181 20181 V Toast   : HANDLE HIDE: android.widget.Toast$TN@8f6cb1a mView=android.widget.LinearLayout{410a5c5 V.E...... ........ 0,0-560,115}
03-18 11:30:41.719 20181 20181 V Toast   : REMOVE! android.widget.LinearLayout{410a5c5 V.E...... ........ 0,0-560,115} in android.widget.Toast$TN@8f6cb1a
03-18 11:30:41.734 20181 20221 D         : Gralloc Free  w:560, h:115, f:0x1, usage:0xb00, ui64Stamp:164719 line = 2376
03-18 11:30:44.323 20181 20221 D         : Gralloc Free  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:163996 line = 2376
03-18 11:30:44.323 20181 20221 D         : Gralloc Free  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:163991 line = 2376
03-18 11:30:44.323 20181 20221 D         : Gralloc Free  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:163946 line = 2376
--------- beginning of system
03-18 11:30:44.354 20181 20181 I LinkTurboReg: after performStop current mActovities size is: 1
03-18 11:30:44.354 20181 20181 I ActivityThread: *************** unregister mLinkTurboCallback************ 

Crashed here I think:

03-18 11:42:22.118 21325 21445 D         : Gralloc Free  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:172118 line = 2376
03-18 11:42:26.792 21325 21325 W System.err: java8.nio.file.FileSystemException: /: java.lang.InterruptedException
03-18 11:42:26.792 21325 21325 W System.err: 	at jd.a.s(:1)
03-18 11:42:26.792 21325 21325 W System.err: 	at v9.k.e(:2)
03-18 11:42:26.792 21325 21325 W System.err: 	at ad.h.R(Unknown Source:5)
03-18 11:42:26.792 21325 21325 W System.err: 	at sc.b0.call(:1)
03-18 11:42:26.792 21325 21325 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
03-18 11:42:26.792 21325 21325 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-18 11:42:26.793 21325 21325 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-18 11:42:26.793 21325 21325 W System.err: 	at java.lang.Thread.run(Thread.java:919)
03-18 11:42:26.793 21325 21325 W System.err: Caused by: me.zhanghai.android.files.provider.content.resolver.ResolverException: java.lang.InterruptedException
03-18 11:42:26.793 21325 21325 W System.err: 	at kd.a.s(:3)
03-18 11:42:26.793 21325 21325 W System.err: 	at jd.a.s(Unknown Source:27)
03-18 11:42:26.793 21325 21325 W System.err: 	... 7 more
03-18 11:42:26.793 21325 21325 W System.err: Caused by: java.lang.InterruptedException
03-18 11:42:26.793 21325 21325 W System.err: 	at ye.s.y(:16)
03-18 11:42:26.793 21325 21325 W System.err: 	at ye.s.z(:1)
03-18 11:42:26.793 21325 21325 W System.err: 	at kd.a.s(:1)
03-18 11:42:26.793 21325 21325 W System.err: 	... 8 more
03-18 11:42:26.799 21325 21325 V Toast   : Toast SHOW: android.widget.Toast@15dfcdf view = android.widget.LinearLayout{b8acd2c V.E...... ......I. 0,0-0,0} caller: xd.m.v:41 
03-18 11:42:26.802 21325 21343 V Toast   : SHOW: android.widget.Toast$TN@a4f3f5
03-18 11:42:26.813 21325 21325 V Toast   : HANDLE SHOW: android.widget.Toast$TN@a4f3f5 mView=null mNextView=android.widget.LinearLayout{b8acd2c V.E...... ......I. 0,0-0,0}
03-18 11:42:26.813 21325 21325 V Toast   : HANDLE HIDE: android.widget.Toast$TN@a4f3f5 mView=null
03-18 11:42:26.814 21325 21325 V Toast   : ADD! android.widget.LinearLayout{b8acd2c V.E...... ......I. 0,0-0,0} in android.widget.Toast$TN@a4f3f5
03-18 11:42:26.849 21325 21445 D         : Gralloc Register  w:560, h:115, f:0x1, usage:0xb00, ui64Stamp:172633, sSize:286720, line = 2270
03-18 11:42:28.808 21325 21343 V Toast   : HIDE: android.widget.Toast$TN@a4f3f5
03-18 11:42:28.815 21325 21325 V Toast   : HANDLE HIDE: android.widget.Toast$TN@a4f3f5 mView=android.widget.LinearLayout{b8acd2c V.E...... ........ 0,0-560,115}
03-18 11:42:28.815 21325 21325 V Toast   : REMOVE! android.widget.LinearLayout{b8acd2c V.E...... ........ 0,0-560,115} in android.widget.Toast$TN@a4f3f5
03-18 11:42:28.822 21325 21445 D         : Gralloc Free  w:560, h:115, f:0x1, usage:0xb00, ui64Stamp:172633 line = 2376
03-18 11:42:30.495 21325 21350 D libcrashlytics: Initializing libcrashlytics version 3.2.0
03-18 11:42:30.499 21325 21350 D libcrashlytics: Initializing native crash handling successful.
03-18 11:42:30.542 21325 21356 D TransportRuntime.SQLiteEventStore: Storing event with priority=HIGHEST, name=FIREBASE_CRASHLYTICS_REPORT for destination cct
03-18 11:42:30.549 21325 21356 D TransportRuntime.JobInfoScheduler: Upload for context TransportContext(cct, HIGHEST, MSRodHRwczovL2NyYXNobHl0aWNzcmVwb3J0cy1wYS5nb29nbGVhcGlzLmNvbS92MS9maXJlbG9nL2xlZ2FjeS9iYXRjaGxvZ1xBSXphU3lCcnBTWVQ0RkZMMDlyZUhKaTZIOUZZZGVpU25VVE92Mk0=) is already scheduled. Returning...
--------- beginning of crash
03-18 11:42:30.552 21325 21471 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #6
03-18 11:42:30.552 21325 21471 E AndroidRuntime: Process: me.zhanghai.android.files, PID: 21325
03-18 11:42:30.552 21325 21471 E AndroidRuntime: kotlinx.coroutines.CompletionHandlerException: Exception in invokeOnCancellation handler for CancellableContinuation(DispatchedContinuation[e@90bacdd, Continuation at me.zhanghai.android.files.provider.document.resolver.DocumentResolver$waitUntilChanged$1.invokeSuspend(DocumentResolver.kt)@8922052]){Completed}@d7cef23
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.i.p(:2)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.i.b(:3)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.h0.run(Unknown Source:79)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.p0.O(:4)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.p0.shutdown(:4)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.o0.C(Unknown Source:20)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at ye.s.y(:19)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at ye.s.z(:1)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at kd.a.s(:1)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at jd.a.s(Unknown Source:27)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at v9.k.e(:2)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at ad.h.R(Unknown Source:5)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at sc.b0.call(:1)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:919)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Observer kd.b$b@776b8b4 was not registered.
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at android.database.Observable.unregisterObserver(Observable.java:69)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at android.database.AbstractCursor.unregisterContentObserver(AbstractCursor.java:372)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at android.database.CursorWrapper.unregisterContentObserver(CursorWrapper.java:262)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at kd.b$a.s(:1)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.y0.a(Unknown Source:2)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	at zb.i.p(Unknown Source:0)
03-18 11:42:30.552 21325 21471 E AndroidRuntime: 	... 16 more
03-18 11:42:30.552 21325 21471 D HprofFactory: Create HprofDebugEx
03-18 11:42:30.732 21325 21445 D         : Gralloc Free  w:720, h:1440, f:0x1, usage:0xb00, ui64Stamp:171992 line = 2376

I can see this (java8.nio.file.FileSystemException: /: java.lang.InterruptedException) as a toast while trying to open the remote folders. It either crashes on tap or loads the folder contents very slowly and then crashes. Issue was not present in previous version, I think it started with the 1.4.0 update.

03-18 11:30:35.052 20181 20181 W System.err: java8.nio.file.FileSystemException: /: java.lang.InterruptedException
03-18 11:30:35.052 20181 20181 W System.err: 	at jd.a.s(:1)
03-18 11:30:35.052 20181 20181 W System.err: 	at v9.k.e(:2)
03-18 11:30:35.052 20181 20181 W System.err: 	at ad.h.R(Unknown Source:5)
03-18 11:30:35.053 20181 20181 W System.err: 	at sc.b0.call(:1)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-18 11:30:35.053 20181 20181 W System.err: 	at java.lang.Thread.run(Thread.java:919)
03-18 11:30:35.053 20181 20181 W System.err: Caused by: me.zhanghai.android.files.provider.content.resolver.ResolverException: java.lang.InterruptedException

Please let me know if anything else is needed.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.