[TIMOB-28295] Android: Ti.Media.AudioRecorder start() test hangs
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | High |
| Status | Open |
| Resolution | Unresolved |
| Affected Version/s | Release 9.3.0 |
| Fix Version/s | n/a |
| Components | Android |
| Labels | n/a |
| Reporter | Christopher Williams |
| Assignee | Joshua Quick |
| Created | 2020-12-18T15:45:54.000+0000 |
| Updated | 2021-01-05T15:54:17.000+0000 |
Description
The test for Ti.Media.AudioRecorder '#start, #pause, #resume, #stop' intermittently hangs on the Android 5.0.2 (api level 21) emulator on our CI boxes.
https://github.com/appcelerator/titanium_mobile/blob/master/tests/Resources/ti.media.audiorecorder.test.js#L27
Here's the test output in one of the runs that hung there:
[2020-12-18T15:17:21.482Z] [INFO] : !TEST_END: {"state":"passed","duration":1,"suite":"Titanium.Media","title":"#createAudioPlayer()","message":""}
[2020-12-18T15:17:21.482Z] [INFO] : !TEST_START: apiName
[2020-12-18T15:17:21.482Z] [INFO] : !TEST_END: {"state":"passed","duration":2,"suite":"Titanium.Media.AudioPlayer","title":"apiName","message":""}
[2020-12-18T15:17:21.482Z] [INFO] : !TEST_START: .url
[2020-12-18T15:17:21.482Z] [INFO] : !TEST_END: {"state":"passed","duration":1,"suite":"Titanium.Media.AudioPlayer","title":".url","message":""}
[2020-12-18T15:17:21.482Z] [INFO] : !TEST_START: #start, #stop
[2020-12-18T15:17:21.482Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:21.482Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:22.680Z] [INFO] : !TEST_END: {"state":"passed","duration":1082,"suite":"Titanium.Media.AudioPlayer","title":"#start, #stop","message":""}
[2020-12-18T15:17:22.680Z] [INFO] : !TEST_START: #pause
[2020-12-18T15:17:22.680Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:22.680Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:23.509Z] [INFO] : !TEST_END: {"state":"passed","duration":1090,"suite":"Titanium.Media.AudioPlayer","title":"#pause","message":""}
[2020-12-18T15:17:23.509Z] [INFO] : !TEST_START: #restart
[2020-12-18T15:17:23.509Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:23.509Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: error (-38, 0)
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: start called in state 0
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: error (-38, 0)
[2020-12-18T15:17:24.707Z] [INFO] : !TEST_END: {"state":"passed","duration":1127,"suite":"Titanium.Media.AudioPlayer","title":"#restart","message":""}
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: Error (-38,0)
[2020-12-18T15:17:24.707Z] [INFO] : !TEST_START: .duration
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:24.707Z] [ERROR] : MediaPlayer: Should have subtitle controller already set
[2020-12-18T15:17:25.905Z] [INFO] : !TEST_END: {"state":"passed","duration":1113,"suite":"Titanium.Media.AudioPlayer","title":".duration","message":""}
[2020-12-18T15:17:25.905Z] [INFO] : !TEST_START: #createAudioRecorder()
[2020-12-18T15:17:25.905Z] [INFO] : !TEST_END: {"state":"passed","duration":0,"suite":"Titanium.Media","title":"#createAudioRecorder()","message":""}
[2020-12-18T15:17:25.905Z] [INFO] : !TEST_START: apiName
[2020-12-18T15:17:25.905Z] [INFO] : !TEST_END: {"state":"passed","duration":3,"suite":"Titanium.Media.AudioRecorder","title":"apiName","message":""}
[2020-12-18T15:17:25.905Z] [INFO] : !TEST_START: #start, #pause, #resume, #stop
[2020-12-18T15:17:25.905Z] [INFO] : AudioRecorder.start()
[2020-12-18T15:45:22.475Z] Sending interrupt signal to process
This looks highly relevant: https://stackoverflow.com/questions/9008770/media-player-called-in-state-0-error-38-0