Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ProtocolException: Unexpected end of stream #7880

Closed
tosam144 opened this issue Sep 9, 2020 · 5 comments
Closed

ProtocolException: Unexpected end of stream #7880

tosam144 opened this issue Sep 9, 2020 · 5 comments
Assignees

Comments

@tosam144
Copy link

tosam144 commented Sep 9, 2020

I am using ExoPlayer to stream mp3s using a foregroud service. While this works most of the time, I have some users that experience sudden stops of the streams. The problem is not that the Internet gets disconnected (that's verified). I was able to capture the following logcat from one live device where the problem is occuring:

09-09 20:18:45.638 15453 15453 D EventLogger: loading [eventTime=837.04, mediaPos=657.76, window=0, period=0, true]
09-09 20:18:45.656 15453 15453 E EventLogger: internalError [eventTime=837.05, mediaPos=657.77, window=0, period=0, loadError
09-09 20:18:45.656 15453 15453 E EventLogger:   com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.ProtocolException: unexpected end of stream
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:14)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultDataSource.read(Unknown Source:8)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.cache.CacheDataSource.read(Unknown Source:28)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.StatsDataSource.read(Unknown Source:2)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(Unknown Source:10)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(Unknown Source:12)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleDataQueue.sampleData(Unknown Source:16)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleQueue.sampleData(Unknown Source:2)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.readSample(Unknown Source:111)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.read(Unknown Source:176)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(Unknown Source:175)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Unknown Source:57)
09-09 20:18:45.656 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-09 20:18:45.656 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-09 20:18:45.656 15453 15453 E EventLogger:       at java.lang.Thread.run(Thread.java:919)
09-09 20:18:45.656 15453 15453 E EventLogger:   Caused by: java.net.ProtocolException: unexpected end of stream
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:605)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:397)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.readInternal(Unknown Source:31)
09-09 20:18:45.656 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:3)
09-09 20:18:45.656 15453 15453 E EventLogger:       ... 14 more
09-09 20:18:45.656 15453 15453 E EventLogger: ]
09-09 20:18:45.657 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:18:45.657 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:18:46.339 15453 15453 D EventLogger: loading [eventTime=837.74, mediaPos=658.46, window=0, period=0, false]
09-09 20:21:06.900 15453 15453 D EventLogger: loading [eventTime=978.30, mediaPos=799.02, window=0, period=0, true]
09-09 20:21:07.211 15453 15453 D EventLogger: loading [eventTime=978.61, mediaPos=799.33, window=0, period=0, false]
09-09 20:22:41.548 15453 15453 D EventLogger: loading [eventTime=1072.95, mediaPos=893.67, window=0, period=0, true]
09-09 20:22:41.569 15453 15453 E EventLogger: internalError [eventTime=1072.97, mediaPos=893.69, window=0, period=0, loadError
09-09 20:22:41.569 15453 15453 E EventLogger:   com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.ProtocolException: unexpected end of stream
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:14)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultDataSource.read(Unknown Source:8)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.cache.CacheDataSource.read(Unknown Source:28)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.StatsDataSource.read(Unknown Source:2)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(Unknown Source:10)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(Unknown Source:12)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleDataQueue.sampleData(Unknown Source:16)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleQueue.sampleData(Unknown Source:2)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.readSample(Unknown Source:111)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.read(Unknown Source:176)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(Unknown Source:175)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Unknown Source:57)
09-09 20:22:41.569 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-09 20:22:41.569 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-09 20:22:41.569 15453 15453 E EventLogger:       at java.lang.Thread.run(Thread.java:919)
09-09 20:22:41.569 15453 15453 E EventLogger:   Caused by: java.net.ProtocolException: unexpected end of stream
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:605)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:397)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.readInternal(Unknown Source:31)
09-09 20:22:41.569 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:3)
09-09 20:22:41.569 15453 15453 E EventLogger:       ... 14 more
09-09 20:22:41.569 15453 15453 E EventLogger: ]
09-09 20:22:42.569 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:22:42.569 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:22:43.267 15453 15453 D EventLogger: loading [eventTime=1074.67, mediaPos=895.39, window=0, period=0, false]
09-09 20:23:57.017 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 0
09-09 20:23:57.106 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 1
09-09 20:23:57.107 15453 15453 D EventLogger: state [eventTime=1148.51, mediaPos=969.23, window=0, period=0, false, READY]
09-09 20:23:57.107 15453 15453 D EventLogger: isPlaying [eventTime=1148.51, mediaPos=969.23, window=0, period=0, false]
09-09 20:26:14.400 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 0
09-09 20:26:14.496 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 1
09-09 20:26:14.498 15453 15453 D EventLogger: state [eventTime=1285.90, mediaPos=969.23, window=0, period=0, true, READY]
09-09 20:26:14.498 15453 15453 D EventLogger: isPlaying [eventTime=1285.90, mediaPos=969.23, window=0, period=0, true]
09-09 20:26:14.503 15453  4240 D AudioTrack: getTimestamp_l(90): device stall time corrected using current time 13656293984501
09-09 20:26:14.585 15453  4240 D AudioTrack: getTimestamp_l(90): stale timestamp time corrected, currentTimeNanos: 13521911779290 < limitNs: 13656208505232 < mStartNs: 13656288505232
09-09 20:26:14.585 15453  4240 W AudioTrack: getTimestamp_l(90): retrograde timestamp time corrected, 13656208505232 < 13656365335386
09-09 20:27:36.038 15453 15453 D EventLogger: loading [eventTime=1367.44, mediaPos=1050.74, window=0, period=0, true]
09-09 20:27:36.104 15453 15453 E EventLogger: internalError [eventTime=1367.50, mediaPos=1050.80, window=0, period=0, loadError
09-09 20:27:36.104 15453 15453 E EventLogger:   com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: javax.net.ssl.SSLException: Read error: ssl=0x75529855c8: I/O error during system call, Connection reset by peer
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:14)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultDataSource.read(Unknown Source:8)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.cache.CacheDataSource.read(Unknown Source:28)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.StatsDataSource.read(Unknown Source:2)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(Unknown Source:10)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(Unknown Source:12)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleDataQueue.sampleData(Unknown Source:16)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleQueue.sampleData(Unknown Source:2)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.readSample(Unknown Source:111)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.read(Unknown Source:176)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(Unknown Source:175)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Unknown Source:57)
09-09 20:27:36.104 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-09 20:27:36.104 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-09 20:27:36.104 15453 15453 E EventLogger:       at java.lang.Thread.run(Thread.java:919)
09-09 20:27:36.104 15453 15453 E EventLogger:   Caused by: javax.net.ssl.SSLException: Read error: ssl=0x75529855c8: I/O error during system call, Connection reset by peer
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:583)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.okhttp.okio.Okio$2.read(Okio.java:145)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.okhttp.okio.RealBufferedSource.read(RealBufferedSource.java:61)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:602)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:397)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.readInternal(Unknown Source:31)
09-09 20:27:36.104 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:3)
09-09 20:27:36.104 15453 15453 E EventLogger:       ... 14 more
09-09 20:27:36.104 15453 15453 E EventLogger: ]
09-09 20:27:37.102 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:27:37.102 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:27:37.771 15453 15453 D EventLogger: loading [eventTime=1369.17, mediaPos=1052.46, window=0, period=0, false]
09-09 20:30:14.585 15453 15453 D EventLogger: loading [eventTime=1525.98, mediaPos=1209.28, window=0, period=0, true]
09-09 20:30:15.059 15453 15453 D EventLogger: loading [eventTime=1526.46, mediaPos=1209.75, window=0, period=0, false]
09-09 20:31:14.724 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 0
09-09 20:31:14.796 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 1
09-09 20:31:14.799 15453 15453 D EventLogger: state [eventTime=1586.20, mediaPos=1269.49, window=0, period=0, false, READY]
09-09 20:31:14.799 15453 15453 D EventLogger: isPlaying [eventTime=1586.20, mediaPos=1269.49, window=0, period=0, false]
09-09 20:32:07.676 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 0
09-09 20:32:07.740 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 1
09-09 20:32:07.741 15453 15453 D EventLogger: state [eventTime=1639.14, mediaPos=1269.50, window=0, period=0, true, READY]
09-09 20:32:07.741 15453 15453 D EventLogger: isPlaying [eventTime=1639.14, mediaPos=1269.50, window=0, period=0, true]
09-09 20:32:07.746 15453  4240 D AudioTrack: getTimestamp_l(90): device stall time corrected using current time 14009536961095
09-09 20:32:07.827 15453  4240 D AudioTrack: getTimestamp_l(90): stale timestamp time corrected, currentTimeNanos: 13959596391977 < limitNs: 14009452114172 < mStartNs: 14009532114172
09-09 20:32:07.827 15453  4240 W AudioTrack: getTimestamp_l(90): retrograde timestamp time corrected, 14009452114172 < 14009607150364
09-09 20:32:42.430 15453 15453 D EventLogger: loading [eventTime=1673.83, mediaPos=1304.15, window=0, period=0, true]
09-09 20:32:42.452 15453 15453 E EventLogger: internalError [eventTime=1673.85, mediaPos=1304.16, window=0, period=0, loadError
09-09 20:32:42.452 15453 15453 E EventLogger:   com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.ProtocolException: unexpected end of stream
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:14)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultDataSource.read(Unknown Source:8)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.cache.CacheDataSource.read(Unknown Source:28)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.StatsDataSource.read(Unknown Source:2)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(Unknown Source:10)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(Unknown Source:12)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleDataQueue.sampleData(Unknown Source:16)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleQueue.sampleData(Unknown Source:2)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.readSample(Unknown Source:111)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.read(Unknown Source:176)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(Unknown Source:175)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Unknown Source:57)
09-09 20:32:42.452 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-09 20:32:42.452 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-09 20:32:42.452 15453 15453 E EventLogger:       at java.lang.Thread.run(Thread.java:919)
09-09 20:32:42.452 15453 15453 E EventLogger:   Caused by: java.net.ProtocolException: unexpected end of stream
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:605)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:397)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.readInternal(Unknown Source:31)
09-09 20:32:42.452 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:3)
09-09 20:32:42.452 15453 15453 E EventLogger:       ... 14 more
09-09 20:32:42.452 15453 15453 E EventLogger: ]
09-09 20:32:43.452 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:32:43.452 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:32:44.134 15453 15453 D EventLogger: loading [eventTime=1675.53, mediaPos=1305.84, window=0, period=0, false]
09-09 20:35:18.669 15453 15453 D EventLogger: loading [eventTime=1830.07, mediaPos=1460.39, window=0, period=0, true]
09-09 20:35:18.941 15453 15453 D EventLogger: loading [eventTime=1830.34, mediaPos=1460.66, window=0, period=0, false]
09-09 20:35:20.386 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 0
09-09 20:35:20.449 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 1
09-09 20:35:20.449 15453 15453 D EventLogger: state [eventTime=1831.85, mediaPos=1462.17, window=0, period=0, false, READY]
09-09 20:35:20.449 15453 15453 D EventLogger: isPlaying [eventTime=1831.85, mediaPos=1462.17, window=0, period=0, false]
09-09 20:45:11.425 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 0
09-09 20:45:11.505 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 1
09-09 20:45:11.508 15453 15453 D EventLogger: state [eventTime=2422.91, mediaPos=1462.17, window=0, period=0, true, READY]
09-09 20:45:11.508 15453 15453 D EventLogger: isPlaying [eventTime=2422.91, mediaPos=1462.17, window=0, period=0, true]
09-09 20:45:11.518 15453  4240 D AudioTrack: getTimestamp_l(90): device stall time corrected using current time 14793308492303
09-09 20:45:11.578 15453  4240 D AudioTrack: getTimestamp_l(90): stale timestamp time corrected, currentTimeNanos: 14205259152916 < limitNs: 14793218884688 < mStartNs: 14793298884688
09-09 20:45:11.578 15453  4240 W AudioTrack: getTimestamp_l(90): retrograde timestamp time corrected, 14793218884688 < 14793358348573
09-09 20:46:45.074 15453 15453 D EventLogger: loading [eventTime=2516.47, mediaPos=1555.71, window=0, period=0, true]
09-09 20:46:45.102 15453 15453 E EventLogger: internalError [eventTime=2516.50, mediaPos=1555.73, window=0, period=0, loadError
09-09 20:46:45.102 15453 15453 E EventLogger:   com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.ProtocolException: unexpected end of stream
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:14)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultDataSource.read(Unknown Source:8)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.cache.CacheDataSource.read(Unknown Source:28)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.StatsDataSource.read(Unknown Source:2)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(Unknown Source:10)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(Unknown Source:12)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleDataQueue.sampleData(Unknown Source:16)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.SampleQueue.sampleData(Unknown Source:2)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.readSample(Unknown Source:111)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.extractor.mp3.Mp3Extractor.read(Unknown Source:176)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(Unknown Source:175)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Unknown Source:57)
09-09 20:46:45.102 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-09 20:46:45.102 15453 15453 E EventLogger:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-09 20:46:45.102 15453 15453 E EventLogger:       at java.lang.Thread.run(Thread.java:919)
09-09 20:46:45.102 15453 15453 E EventLogger:   Caused by: java.net.ProtocolException: unexpected end of stream
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:605)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:397)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.readInternal(Unknown Source:31)
09-09 20:46:45.102 15453 15453 E EventLogger:       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(Unknown Source:3)
09-09 20:46:45.102 15453 15453 E EventLogger:       ... 14 more
09-09 20:46:45.102 15453 15453 E EventLogger: ]
09-09 20:46:46.103 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:46:46.103 15453  4241 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
09-09 20:46:46.797 15453 15453 D EventLogger: loading [eventTime=2518.20, mediaPos=1557.43, window=0, period=0, false]
09-09 20:48:23.816 15453 15470 W ings.activitie: Reducing the number of considered missed Gc histogram windows from 154 to 100
09-09 20:49:43.282 15453 15453 D EventLogger: loading [eventTime=2694.68, mediaPos=1733.92, window=0, period=0, true]
09-09 20:49:43.532 15453 15453 D EventLogger: loading [eventTime=2694.93, mediaPos=1734.16, window=0, period=0, false]
09-09 20:50:46.118 15453 15453 D InputMethodManager: prepareNavigationBarInfo() DecorView@caa7edd[PlayerActivity]
09-09 20:50:46.118 15453 15453 D InputMethodManager: getNavigationBarColor() -855310
09-09 20:50:46.118 15453 15453 V InputMethodManager: Starting input: tba=de.widmer.offerings.activities ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
09-09 20:50:46.118 15453 15453 D InputMethodManager: startInputInner - Id : 0
09-09 20:50:46.118 15453 15453 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
09-09 20:50:46.120 15453 15453 D InputTransport: Input channel destroyed: 'ClientS', fd=118
09-09 20:50:46.548 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: stopped(true) old=false
09-09 20:50:46.548 15453  4155 D OpenGLRenderer: makeCurrent EglSurface : 0x74d54c9700 -> 0x0
09-09 20:50:46.982 15453  4155 D OpenGLRenderer: destroyEglSurface : 0x74d54c9700
09-09 20:50:46.982 15453  4155 I mali_egl: eglDestroySurface() in
09-09 20:50:46.984 15453  4155 I mali_winsys: delete_surface() [1080x2280] return
09-09 20:50:46.985 15453  4155 I mali_egl: eglDestroySurface() out
09-09 20:50:46.985 15453  4155 E OpenGLRenderer: ReliableSurface: perform returned an error
09-09 20:50:46.985 15453  4155 W libEGL  : EGLNativeWindowType 0x7552826290 disconnect failed
09-09 20:50:46.985 15453  4155 D OpenGLRenderer: ~ReliableSurface : 0x7552826280
09-09 20:50:47.000 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: Relayout returned: old=(0,0,1080,2280) new=(0,0,1080,2280) req=(1080,2280)8 dur=15 res=0x5 s={false 0} ch=false
09-09 20:50:47.000 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
09-09 20:50:47.000 15453 15453 D InputMethodManager: prepareNavigationBarInfo() DecorView@caa7edd[PlayerActivity]
09-09 20:50:47.000 15453 15453 D InputMethodManager: getNavigationBarColor() -855310
09-09 20:51:06.760 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: Relayout returned: old=(0,0,1080,2280) new=(0,0,1080,2280) req=(1080,2280)4 dur=13 res=0x1 s={false 0} ch=false
09-09 20:51:06.762 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: stopped(false) old=true
09-09 20:51:06.785 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: stopped(false) old=false
09-09 20:51:06.790 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: Relayout returned: old=(0,0,1080,2280) new=(0,0,1080,2280) req=(1080,2280)0 dur=3 res=0x7 s={true 501693820928} ch=true
09-09 20:51:06.790 15453  4155 D OpenGLRenderer: createReliableSurface : 0x7552826280(0x74cf483000)
09-09 20:51:06.791 15453  4155 I mali_winsys: new_window_surface() [1080x2280] return: 0x3000
09-09 20:51:06.791 15453  4155 D OpenGLRenderer: eglCreateWindowSurface : 0x74d54c9700
09-09 20:51:06.796 15453  4155 D OpenGLRenderer: makeCurrent EglSurface : 0x0 -> 0x74d54c9700
09-09 20:51:06.796 15453  4218 I OpenGLRenderer: doUpdatePositionAsync is called and callVoidMethod
09-09 20:51:06.814 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
09-09 20:51:06.814 15453 15453 D InputMethodManager: prepareNavigationBarInfo() DecorView@caa7edd[PlayerActivity]
09-09 20:51:06.814 15453 15453 D InputMethodManager: getNavigationBarColor() -855310
09-09 20:51:06.815 15453 15453 D InputMethodManager: prepareNavigationBarInfo() DecorView@caa7edd[PlayerActivity]
09-09 20:51:06.815 15453 15453 D InputMethodManager: getNavigationBarColor() -855310
09-09 20:51:06.815 15453 15453 V InputMethodManager: Starting input: tba=de.widmer.offerings.activities ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
09-09 20:51:06.815 15453 15453 D InputMethodManager: startInputInner - Id : 0
09-09 20:51:06.815 15453 15453 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
09-09 20:51:06.820 15453 15453 D InputTransport: Input channel destroyed: 'ClientS', fd=127
09-09 20:51:07.667 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 0
09-09 20:51:07.732 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: ViewPostIme pointer 1
09-09 20:51:07.733 15453 15453 D EventLogger: state [eventTime=2779.13, mediaPos=1818.36, window=0, period=0, false, READY]
09-09 20:51:07.733 15453 15453 D EventLogger: isPlaying [eventTime=2779.13, mediaPos=1818.36, window=0, period=0, false]
09-09 20:51:40.618 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
09-09 20:51:40.618 15453 15453 D InputMethodManager: prepareNavigationBarInfo() DecorView@caa7edd[PlayerActivity]
09-09 20:51:40.618 15453 15453 D InputMethodManager: getNavigationBarColor() -855310
09-09 20:51:40.694 15453 15453 D InputTransport: Input channel destroyed: 'ClientS', fd=118
09-09 20:51:41.004 15453  4155 D OpenGLRenderer: makeCurrent EglSurface : 0x74d54c9700 -> 0x0
09-09 20:51:41.004 15453  4155 D OpenGLRenderer: destroyEglSurface : 0x74d54c9700
09-09 20:51:41.004 15453  4155 I mali_egl: eglDestroySurface() in
09-09 20:51:41.006 15453  4155 I mali_winsys: delete_surface() [1080x2280] return
09-09 20:51:41.006 15453  4155 I mali_egl: eglDestroySurface() out
09-09 20:51:41.007 15453  4155 E OpenGLRenderer: ReliableSurface: perform returned an error
09-09 20:51:41.007 15453  4155 W libEGL  : EGLNativeWindowType 0x7552826290 disconnect failed
09-09 20:51:41.007 15453  4155 D OpenGLRenderer: ~ReliableSurface : 0x7552826280
09-09 20:51:41.010 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: Relayout returned: old=(0,0,1080,2280) new=(0,0,1080,2280) req=(1080,2280)8 dur=3 res=0x5 s={false 0} ch=true
09-09 20:51:41.011 15453 15453 I ViewRootImpl@2b4afbd[PlayerActivity]: stopped(true) old=false
09-09 20:52:41.023 15453 15453 I ExoPlayerImpl: Release 4a71975 [ExoPlayerLib/2.11.7] [beyond0, SM-G970F, samsung, 29] [goog.exo.core, goog.exo.ui, goog.exo.mediasession]
09-09 20:52:41.026 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] signalFlush
09-09 20:52:41.026 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] ExecutingState flushing now (codec owns 10/10 input, 0/5 output).
09-09 20:52:41.026 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] Now Flushing
09-09 20:52:41.028 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] FlushingState onOMXEvent(0,1,0)
09-09 20:52:41.028 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] FlushingState onOMXEvent(0,1,1)
09-09 20:52:41.028 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] Now Executing
09-09 20:52:41.030 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] Now Executing->Idle
09-09 20:52:41.036 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] Now Idle->Loaded
09-09 20:52:41.037 15453  4251 I ACodec  : [OMX.SEC.mp3.dec] Now Loaded
09-09 20:52:41.037 15453  4251 I ACodec  :  [OMX.SEC.mp3.dec] Now kWhatShutdownCompleted event : 8610
09-09 20:52:41.046 15453  4251 I ACodec  :  [OMX.SEC.mp3.dec] Now uninitialized
09-09 20:52:41.047 15453  4251 I ACodec  :  [] Now kWhatShutdownCompleted event : 8610
09-09 20:52:41.047 15453  4251 I MediaCodec: Codec shutdown complete
09-09 20:52:41.061 15453 15453 D EventLogger: decoderDisabled [eventTime=2872.46, mediaPos=1818.37, window=0, period=0, audio]
09-09 20:52:41.061 15453 15453 D EventLogger: mediaPeriodReleased [eventTime=2872.46, mediaPos=1818.37, window=0, period=0]

Could you give me a hint of what is happening here?

@kim-vde
Copy link
Contributor

kim-vde commented Sep 10, 2020

You should check the server requests and responses to understand what is happening. One possibility would be that the length indicated in the response "Content-Length" is larger than the length of the actual data in the response.

@kim-vde kim-vde self-assigned this Sep 10, 2020
@tosam144
Copy link
Author

tosam144 commented Sep 10, 2020

OK, so I have added the EventLogger as AnalyticsListener. Within onLoadStarted, onLoadError, onLoadCanceled and onLoadCompleted I can see the property Content-Length within the LoadEventInfo object. But what do you mean with the actual data in the response? Where do I find this info?

And: If indeed the two lengths were to be different, what exactly does that mean and what is the fix?

I have added a screenshot of the LoadEventInfo object that I am seeing.

Bild1

@tosam144
Copy link
Author

Please notice that #7888 is not a duplicate. In #7880, no error is thrown. Here, I am getting the ProtocolException (see logs).

@ojw28
Copy link
Contributor

ojw28 commented Sep 11, 2020

"Unexpected end of stream" normally means that the server response indicated it will provide a certain number of bytes (specified in the Content-Length response header), but then closed the connection before providing that many bytes.

That's a server-side issue (i.e., it's either closing the connection when it shouldn't, or it's specifying the Content-Length header response incorrectly), not an issue with the player. Note also that the failure is thrown directly from the network stack underneath ExoPlayer; ExoPlayer is simply propagating that error.

@ojw28 ojw28 closed this as completed Sep 11, 2020
@ojw28 ojw28 added bad media and removed question labels Sep 11, 2020
@tosam144
Copy link
Author

tosam144 commented Sep 11, 2020

OK, thank you for the explanation!

@google google locked and limited conversation to collaborators Nov 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants