Bug #115817

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

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

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

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

Status:CLOSEDStart date:2023-02-03
Priority:NormalDue date:2023-02-15
Assignee:CD Test赵飞% Done:

100%

Category:CD-APP
Target version:-
Need_Info:-- Found Version:FlatBuild_HH_VX1_MCE_FSE.M.R.user.01.00.0071.X101
Resolution:FIXED Degrated:--
Severity:Normal Verified Version:
Reproducibility:Frequently Fixed Version:
Test Type:Monkey Test Root cause:原因是Music应用每次播放会创建一个mediasession,跑Monkey的时候创建太多了,超过了系统限制的100个。导致无法创建后应用crash。改法是用一个全局变量,在服务运行期间只创建一个。

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 500 --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 43200 2>/sdcard/error.txt 1>/sdcard/info.txt

【错误信息】

// CRASH: com.android.music (pid 9222)
// Short Msg: java.lang.NullPointerException
// Long Msg: java.lang.NullPointerException: Attempt to invoke interface method 'android.media.session.ISessionController android.media.session.ISession.getController()' on a null object reference
// Build Label: TC/figure_CN/figure:12/SKQ1.220201.001/1933:user/test-keys
// Build Changelist: 1933
// Build Time: 1675275913000
// java.lang.RuntimeException: Unable to start service com.android.music.MediaPlaybackService@c203046 with Intent { cmp=com.android.music/.MediaPlaybackService }: java.lang.NullPointerException: Attempt to invoke interface method 'android.media.session.ISessionController android.media.session.ISession.getController()' on a null object reference
//     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4658)
//     at android.app.ActivityThread.access$2000(ActivityThread.java:248)
//     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2092)
//     at android.os.Handler.dispatchMessage(Handler.java:106)
//     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)
// Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'android.media.session.ISessionController android.media.session.ISession.getController()' on a null object reference
//     at android.media.session.MediaSession.<init>(MediaSession.java:207)
//     at android.media.session.MediaSession.<init>(MediaSession.java:163)
//     at com.android.music.MediaPlaybackService.updateNotificationMediaStyle(MediaPlaybackService.java:1987)
//     at com.android.music.MediaPlaybackService.updateNotification(MediaPlaybackService.java:1817)
//     at com.android.music.MediaPlaybackService.onStartCommand(MediaPlaybackService.java:1023)
//     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4640)
//     ... 9 more
// 

Tlog.zip (23 MB) CD Test赵飞, 2023-02-03 09:54

History

#1 Updated by CD APP-王营 over 2 years ago

  • Due date set to 2023-02-04
  • Status changed from New to ASSIGNED

#2 Updated by CD Test赵飞 over 2 years ago

  • Subject changed from 【AF】【EVT2】【Monkey】Monkey测试10小时,出现CRASH: com.android.music to 【AF】【EVT2】【Monkey】Monkey测试6小时,出现CRASH: com.android.music

#3 Updated by CD APP-王营 over 2 years ago

  • Due date changed from 2023-02-04 to 2023-02-07
  • Assignee changed from CD APP-王营 to CD BSP何伟

■ Current conclusion
分析中,转到MM同事进行分析
■ My analysis
从Log中分析可知MediaPlaybackService服务启动失败,向上分析原因在MediaSession.java:207出现了空指针异常,具体代码路径如下

http://192.168.87.66:8006/source/xref/Pre_figure_turbox-c2130c-la1.1-qssi12-dev/LA.QSSI/LINUX/android/frameworks/base/media/java/android/media/session/MediaSession.java#207

mBinder创建失败。

■ Next action

请Media同事分析一下空指针产生的原因。

#4 Updated by CD BSP何伟 over 2 years ago

从日志中分析是创建的mediasession超过了上限100,可能存在没有及时释放的问题
MediaSessionService: java.lang.RuntimeException: Created too many sessions. count=100)
下一步需要分析session的使用逻辑

#5 Updated by CD TPM-王祥林 over 2 years ago

  • Due date changed from 2023-02-07 to 2023-02-15
  • Assignee changed from CD BSP何伟 to CD TPM-王祥林

#6 Updated by CD TPM-王祥林 over 2 years ago

  • Status changed from ASSIGNED to NEED_INFO
  • Assignee changed from CD TPM-王祥林 to CD Test赵飞

赵飞

目前修改了一版,编了VB。本地跑了12个小时没有复现。
https://dev.thundercomm.com/gerrit/c/general/platform/packages/apps/SnapdragonMusic/+/180351
用这个VB跑一下试试。
/Figure/VerifyBuild/Pre_figure_turbox-c2130c-la1.1-qssi12-dev/20230208/202302081544-136

#7 Updated by CD Test赵飞 over 2 years ago

  • Status changed from NEED_INFO to ASSIGNED
  • Assignee changed from CD Test赵飞 to CD TPM-王祥林

如飞书沟通,VB版本执行约6H,没有复现此问题

#8 Updated by IoT scm over 2 years ago

Gerrit Merge Information
ID Project Branch Uploader
180351 general/platform/packages/apps/SnapdragonMusic Pre_figure_turbox-c2130c-la1.1-qssi12-dev
AF: SnapdragonMusic: Fix Music application crash in monkey test.
Created too many sessions(count>100) over the max value,
then create fail and return NULL.
TC-RID: 1201-0301201
IssueID: TS-R-BUG-115817
Change-Id: I76ba3a7d655ac19d84b99df8d70b7de35f4e70b0

#9 Updated by CD TPM-王祥林 over 2 years ago

  • Status changed from ASSIGNED to RESOLVED
  • Assignee changed from CD TPM-王祥林 to CD Test赵飞
  • Resolution changed from -- to FIXED
  • Root cause set to 原因是Music应用每次播放会创建一个mediasession,跑Monkey的时候创建太多了,超过了系统限制的100个。导致无法创建后应用crash。改法是用一个全局变量,在服务运行期间只创建一个。

#10 Updated by CD Test赵飞 over 2 years ago

  • % Done changed from 0 to 70

2/14号release版本未复现此问题
Monkey问题,继续跟踪2个版本

#11 Updated by CD Test赵飞 over 2 years ago

2/15号DB版本未复现此问题
Monkey问题,继续跟踪1个版本

#12 Updated by CD Test赵飞 over 2 years ago

  • Status changed from RESOLVED to VERIFIED
  • % Done changed from 70 to 100

2/16 release版本未复现此问题
已跟踪3个版本未复现,关闭此问题

#13 Updated by CD Test赵飞 over 2 years ago

  • Status changed from VERIFIED to CLOSED

Also available in: Atom PDF