[FFmpeg-devel] [PATCH]libavformat/http: fix http error eof
raymond zheng
raymondzheng1412 at gmail.com
Tue May 23 09:01:57 EEST 2017
You can close http link on your http server, and check ffurl_read result.
Besides, this problem was caused by commit:
2a05c8f813de6f2278827734bf8102291e7484aa
2017-05-23 13:37 GMT+08:00 Steven Liu <lingjiujianke at gmail.com>:
> 2017-05-23 10:47 GMT+08:00 raymond zheng <raymondzheng1412 at gmail.com>:
>
> > 1. An exception occurred in the CDN edge server, that will lead to close
> > the http connection.
> >
> > 2. Because http is disconnected, so ffurl_read will return 0
> >
> > 3. Avformat will consider I/O is eof
> >
> > 4. Right now http is actually disconnect abnormally, it should return to
> > ERROR, rather than return to EOF.
> >
> Can you reproduce it? and provide me try to reproduce it.
> I cannot sure if apply this patch will influence other people require
> function, for example: retry or reconnect again.
>
>
> > 2017-05-22 23:05 GMT+08:00 Steven Liu <lingjiujianke at gmail.com>:
> >
> > > 2017-05-22 22:36 GMT+08:00 raymond zheng <raymondzheng1412 at gmail.com>:
> > >
> > > > I don't think it need a timeout event to disconnect the link, because
> > > > when ffurl_read
> > > > return to 0, it means the link disconnect. If s->off < target_end, it
> > > > means AVERROR,
> > > > otherwise, it's normal eof.
> > > > I don't use chunked in HTTP, so s->chunksize should be initial value,
> > and
> > > > shouldn't be changed or even decreased.
> > > >
> > > > What will happen if not apply this patch? can you reproduce the bug
> > step
> > > by step.
> > >
> > > > 2017-05-22 18:51 GMT+08:00 Steven Liu <lingjiujianke at gmail.com>:
> > > >
> > > > > 2017-05-18 15:19 GMT+08:00 raymond zheng <
> raymondzheng1412 at gmail.com
> > >:
> > > > >
> > > > > > Hi:
> > > > > > I find an issue about http. I don't use chunked, so
> > s->chunksize
> > > > will
> > > > > > be set as UINT64_MAX when http open, but because of "if
> > > (s->chunksize >
> > > > > 0)
> > > > > > s->chunksize -= len;" then chunksize will not be UINT64_MAX.
> > > > > >
> > > > > > If ffurl_read return to 0, s->off < target_end, http_buf_read
> > > will
> > > > > > return to 0, then this will lead to eof, so this is incorrect,
> and
> > > > > > http_buf_read should return to AVERROR(EIO).
> > > > > >
> > > > >
> > > > > if connect to CDN http edge server, this maybe incorrect. or need
> a
> > > > > timeout event to disconnect the link.
> > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > ffmpeg-devel mailing list
> > > > > > ffmpeg-devel at ffmpeg.org
> > > > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > > > >
> > > > > >
> > > > > _______________________________________________
> > > > > ffmpeg-devel mailing list
> > > > > ffmpeg-devel at ffmpeg.org
> > > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > > >
> > > > _______________________________________________
> > > > ffmpeg-devel mailing list
> > > > ffmpeg-devel at ffmpeg.org
> > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > >
> > > _______________________________________________
> > > ffmpeg-devel mailing list
> > > ffmpeg-devel at ffmpeg.org
> > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list