Bug #113744
测试 Test-ST #113421: V4.0功能与专项测试
测试 Test-ST #113422: V4.0专项--AF专项--monkey测试
【AF】【EVT2】【Monkey】Monkey测试60小时,出现CRASH:com.android.documentsui
Status: | CLOSED | Start date: | 2022-11-07 | |
---|---|---|---|---|
Priority: | Normal | Due date: | 2022-12-15 | |
Assignee: | CD Test赵飞 | % Done: | 100% | |
Category: | CD-APP | |||
Target version: | VX1_MCE_FSE_V5.0_20221230 | |||
Need_Info: | -- | Found Version: | FlatBuild_HH_VX1_MCE_FSE.M.D.userdebug.01.00.X101.202211040244 | |
Resolution: | FIXED | Degrated: | No | |
Severity: | Normal | Verified Version: | ||
Reproducibility: | Frequently | Fixed Version: | 2022-12-08 | |
Test Type: | Monkey Test | Root cause: | AOSP问题 |
Description
执行命令:
adb shell
monkey --pkg-blacklist-file /sdcard/blacklist.txt --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes -s 20 --throttle 200 --pct-touch 30 --pct-motion 15 --pct-nav 15 --pct-majornav 15 --pct-syskeys 5 --pct-appswitch 10 --pct-anyevent 10 --ignore-crashes -v -v -v 1080000 2>/sdcard/error.txt 1>/sdcard/info.txt
错误日志:
// CRASH: com.android.documentsui (pid 7408) // Short Msg: java.lang.IllegalArgumentException // Long Msg: java.lang.IllegalArgumentException: Tmp detached view should be removed from RecyclerView before it can be recycled: BreadcrumbHolder{949c152 position=0 id=-1, oldPos=-1, pLpos:-1 update tmpDetached no parent} com.android.documentsui.HorizontalBreadcrumb{b0d0b8e VFED..... ......ID 0,0-2380,72 #7f0900f8 app:id/horizontal_breadcrumb}, adapter:com.android.documentsui.HorizontalBreadcrumb$BreadcrumbAdapter@be75faf, layout:com.android.documentsui.HorizontalBreadcrumb$HorizontalBreadcrumbLinearLayoutManager@1053fbc, context:com.android.documentsui.files.FilesActivity@9890493 // Build Label: TC/figure_CN/figure:12/SKQ1.220201.001/1289:userdebug/test-keys // Build Changelist: 1289 // Build Time: 1667495457000 // java.lang.IllegalArgumentException: Tmp detached view should be removed from RecyclerView before it can be recycled: BreadcrumbHolder{949c152 position=0 id=-1, oldPos=-1, pLpos:-1 update tmpDetached no parent} com.android.documentsui.HorizontalBreadcrumb{b0d0b8e VFED..... ......ID 0,0-2380,72 #7f0900f8 app:id/horizontal_breadcrumb}, adapter:com.android.documentsui.HorizontalBreadcrumb$BreadcrumbAdapter@be75faf, layout:com.android.documentsui.HorizontalBreadcrumb$HorizontalBreadcrumbLinearLayoutManager@1053fbc, context:com.android.documentsui.files.FilesActivity@9890493 // at androidx.recyclerview.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:6745) // at androidx.recyclerview.widget.RecyclerView.removeAnimatingView(RecyclerView.java:1529) // at androidx.recyclerview.widget.RecyclerView$ItemAnimatorRestoreListener.onAnimationFinished(RecyclerView.java:13234) // at androidx.recyclerview.widget.RecyclerView$ItemAnimator.dispatchAnimationFinished(RecyclerView.java:13736) // at androidx.recyclerview.widget.SimpleItemAnimator.dispatchChangeFinished(SimpleItemAnimator.java:317) // at androidx.recyclerview.widget.DefaultItemAnimator$8.onAnimationEnd(DefaultItemAnimator.java:391) // at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1112) // at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:555) // at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1250) // at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1492) // at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146) // at android.animation.AnimationHandler.access$100(AnimationHandler.java:37) // at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54) // at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1118) // at android.view.Choreographer.doCallbacks(Choreographer.java:926) // at android.view.Choreographer.doFrame(Choreographer.java:854) // at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1105) // at android.os.Handler.handleCallback(Handler.java:938) // at android.os.Handler.dispatchMessage(Handler.java:99) // at android.os.Looper.loopOnce(Looper.java:201) // at android.os.Looper.loop(Looper.java:288) // at android.app.ActivityThread.main(ActivityThread.java:7880) // at java.lang.reflect.Method.invoke(Native Method) // at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) // at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009) //
【日志】
Tlog见Bug #113491 附件
History
#1 Updated by CD FW 曹覃刚 over 2 years ago
- Category changed from CD-FW to CD-APP
- Assignee changed from CD FW 曹覃刚 to CD APP-王营
#2 Updated by CDTS-TEST 周婷 over 2 years ago
- Target version changed from VX1_MCE_FSE_V3.0_update_20221130 to VX1_MCE_FSE_V5.0_20221230
#3 Updated by CD APP-黄棚 over 2 years ago
■ Current conclusion
RecyclerView源码bug
■ My analysis
https://github.com/androidx/androidx/pull/252/commits/8ad7bb4614c42cd679188c61baead1369ff1c490
■ Next action
需等recyclerview官方release版本bug修复
#4 Updated by CD APP-王营 over 2 years ago
- Status changed from New to ASSIGNED
- Assignee changed from CD APP-王营 to CD APP-黄棚
- % Done changed from 0 to 10
#5 Updated by CD APP-王营 over 2 years ago
- Due date changed from 2022-11-14 to 2022-12-15
#6 Updated by CD APP-黄棚 over 2 years ago
- % Done changed from 10 to 50
■ Current conclusion
不从源码角度分析
■ My analysis
通过对比分析,发现是recyclerview item默认动画的问题,recyclerview 自带了默认的动画DefaultItemAnimator,最终在RecyclerView里面报了异常,移除item动画的时候最终会调用具体流程:
DefaultItemAnimator-->runPendingAnimations->animateRemoveImpl->dispatchRemoveFinished->dispatchAnimationFinished->onAnimationFinished->removeAnimatingView->recycleViewHolderInternal
if (holder.isTmpDetached()) {
throw new IllegalArgumentException("Tmp detached view should be removed "
+ "from RecyclerView before it can be recycled: " + holder
+ exceptionLabel());
}
■ Next action
不使用HorizontalBreadcrumb的item动画
#7 Updated by CD APP-黄棚 over 2 years ago
- Status changed from ASSIGNED to RESOLVED
- % Done changed from 50 to 100
- Resolution changed from -- to FIXED
- Degrated changed from -- to No
- Fixed Version set to 2022-12-08
- Root cause set to AOSP问题
■ Current conclusion
不从源码角度分析
■ My analysis
通过对比分析,发现是recyclerview item默认动画的问题,recyclerview 自带了默认的动画DefaultItemAnimator,最终在RecyclerView里面报了异常,移除item动画的时候最终会调用具体流程:
DefaultItemAnimator-->runPendingAnimations->animateRemoveImpl->dispatchRemoveFinished->dispatchAnimationFinished->onAnimationFinished->removeAnimatingView->recycleViewHolderInternal
if (holder.isTmpDetached()) {
throw new IllegalArgumentException("Tmp detached view should be removed "
+ "from RecyclerView before it can be recycled: " + holder
+ exceptionLabel());
}
■ Next action
https://dev.thundercomm.com/gerrit/c/general/platform/packages/apps/DocumentsUI/+/168028
#8 Updated by IoT scm over 2 years ago
ID | Project | Branch | Uploader |
168028 | general/platform/packages/apps/DocumentsUI | Pre_figure_turbox-c2130c-la1.1-qssi12-dev | huangpeng1216@thundersoft.com |
FW:DucumentsUI: Fix monkey crash bug 113744 1. Fix monkey crash bug 113744 TC-RID: 1201-0300801 IssueID: TS-R-BUG-113744 Change-Id: I0a087cbc48bb32c8171ac08a9b0409c91d0b9712 |
#9 Updated by CD APP-黄棚 over 2 years ago
- Assignee changed from CD APP-黄棚 to CD Test赵飞
#10 Updated by CD Test赵飞 over 2 years ago
- Status changed from RESOLVED to VERIFIED
- % Done changed from 100 to 80
12月9号,14号,16号DB版本均未复现此问题
已跟踪3个版本未复现,关闭此问题
#11 Updated by CD Test赵飞 over 2 years ago
- Status changed from VERIFIED to CLOSED
- % Done changed from 80 to 100