[FFmpeg-devel] [PATCH]libavformat/http: fix http error eof

Steven Liu lingjiujianke at gmail.com
Tue May 23 10:02:38 EEST 2017


2017-05-23 14:01 GMT+08:00 raymond zheng <raymondzheng1412 at gmail.com>:

> You can close http link on your http server,  and check ffurl_read result.
>
> Besides, this problem was caused by commit:
> 2a05c8f813de6f2278827734bf8102291e7484aa
>
ping Ronald S. Bultje

>
> 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
> >
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list