Bug #113744

测试 Test-ST #113421: V4.0功能与专项测试

测试 Test-ST #113422: V4.0专项--AF专项--monkey测试

【AF】【EVT2】【Monkey】Monkey测试60小时,出现CRASH:com.android.documentsui

Added by CD Test赵飞 over 2 years ago. Updated over 2 years ago.

Status:CLOSEDStart date:2022-11-07
Priority:NormalDue 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

Gerrit Merge Information
ID Project Branch Uploader
168028 general/platform/packages/apps/DocumentsUI Pre_figure_turbox-c2130c-la1.1-qssi12-dev
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

Also available in: Atom PDF