[FFmpeg-trac] #10016(undetermined:new): FFmpeg exit code is 0 when pre-signed URL expires diring a transcode

FFmpeg trac at avcodec.org
Wed Nov 9 00:48:33 EET 2022


#10016: FFmpeg exit code is 0 when pre-signed URL expires diring a transcode
-------------------------------------+-------------------------------------
             Reporter:  Mark         |                     Type:  defect
  Himsley                            |
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 When FFmpeg is reading from an S3 source file via HTTP and has to skip to
 a new byte-offset it makes a new HTTP connection.

 When the pre-signed URL to the S3 source file is past its expiry FFmpeg
 gets the 403 error and terminates all threads.

 When the pre-signed URL has already expired so the first hit to s3 fails
 then FFmpeg will return an exit code of 1.

 When the pre-signed URL expires during the transcode that FFmpeg will
 return an exit code of 0. Software detecting failure assumes the transcode
 completed successfully, and yet it didn't, and FFmpeg should know that and
 should exit signalling that appropriately.

 This seems wrong.

 How to reproduce:
 {{{
 $ ffmpeg \
  -loglevel debug \
  -i "http://127.0.0.1:9000/tmp/keyframe_test_96_4898.mov?X-Amz-
 Algorithm=AWS4-HMAC-SHA256&X-Amz-
 Credential=WGQVW7MO881C0ENOHKAG%2F20221108%2Fus-
 east-1%2Fs3%2Faws4_request&X-Amz-Date=20221108T174110Z&X-Amz-Expires=60&X
 -Amz-Security-
 Token=eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJXR1FWVzdNTzg4MUMwRU5PSEtBRyIsImV4cCI6MTY2Nzk3MDUyMSwicGFyZW50IjoibWluaW9hZG1pbiJ9
 .FJ2kOzmVGYVbC6Sp7w_pa371qlgFgU-
 CGIWav2b5sSRdjXhchqUhnEX6PqRdxu7yyMPNu4DtzKiEQTlPtYgcpw&X-Amz-
 SignedHeaders=host&versionId=null&X-Amz-
 Signature=c17e67e67e302ba43300c35a99dfc50c3593c2443ae48a10044cac3a30dddb6a"
 \
 ...

 ...
 [tcp @ 0x7fd6cc016840] Original list of addresses:
 [tcp @ 0x7fd6cc016840] Address 127.0.0.1 port 9000
 [tcp @ 0x7fd6cc016840] Interleaved list of addresses:
 [tcp @ 0x7fd6cc016840] Address 127.0.0.1 port 9000
 [tcp @ 0x7fd6cc016840] Starting connection attempt to 127.0.0.1 port 9000
 [tcp @ 0x7fd6cc016840] Successfully connected to 127.0.0.1 port 9000
 [http @ 0x5555555e2d40] request: GET /tmp/keyframe_test_96_4898.mov?X-Amz-
 Algorithm=AWS4-HMAC-SHA256&X-Amz-
 Credential=WGQVW7MO881C0ENOHKAG%2F20221108%2Fus-
 east-1%2Fs3%2Faws4_request&X-Amz-Date=20221108T174110Z&X-Amz-Expires=60&X
 -Amz-Security-
 Token=eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJXR1FWVzdNTzg4MUMwRU5PSEtBRyIsImV4cCI6MTY2Nzk3MDUyMSwicGFyZW50IjoibWluaW9hZG1pbiJ9
 .FJ2kOzmVGYVbC6Sp7w_pa371qlgFgU-
 CGIWav2b5sSRdjXhchqUhnEX6PqRdxu7yyMPNu4DtzKiEQTlPtYgcpw&X-Amz-
 SignedHeaders=host&versionId=null&X-Amz-
 Signature=c17e67e67e302ba43300c35a99dfc50c3593c2443ae48a10044cac3a30dddb6a
 HTTP/1.1
 User-Agent: Lavf/59.34.101
 Accept: */*
 Range: bytes=24136341-
 Connection: close
 Host: 127.0.0.1:9000
 Icy-MetaData: 1


 [h264 @ 0x555555dabb00] nal_unit_type: 6(SEI), nal_ref_idc: 0
 [h264 @ 0x555555dabb00] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 1
     Last message repeated 4 times
 [libx264 @ 0x555555608980] frame=8646 QP=7.00 NAL=2 Slice:B Poc:292 I:0
 P:3    SKIP:2037 size=33 bytes
 [http @ 0x5555555e2d40] HTTP error 403 Forbidden
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555555e2200] stream 1, offset 0x17086f0:
 partial file
 Error demuxing input file 0: Invalid data found when processing input
 Terminating demuxer thread 0
 ...

 $ echo $?
 0
 }}}

 Initially discussed on Slack:

 https://video-dev.slack.com/archives/CDJNDBNSH/p1667931152410659
 https://video-dev.slack.com/archives/CDJNDBNSH/p1667934935907569
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10016>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list