Opened 5 years ago

Closed 5 years ago

#7802 closed defect (invalid)

libvpx-vp9 encode causes segmentation fault

Reported by: Karthick Jeyapal Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: libvpx crash
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug: libvpx-vp9 encode causes segmentation fault
lipvpx version : Latest master (v1.8.0-289-g5cde05fda)
ffmpeg version : Latest master (N-93431-g6dc1da416e)
OS : Mac OS 10.14.3 (Mojave)
Platform : MacBook Pro

How to reproduce:

blr-mp4tf:ABR-Broadcaster kjeyapal$ ffmpeg -i ~/Downloads/big_buck_bunny_1080p_stereo.avi -c:v libvpx-vp9 -pix_fmt yuv420p -cpu-used 3 -tile-columns 3 -frame-parallel 1 -deadline realtime -threads 4  -lag-in-frames 0  -b:v 1000k -an out.mp4
ffmpeg version N-93431-g6dc1da416e Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --enable-libx264 --enable-libvpx --enable-gpl
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 47.105 / 58. 47.105
  libavformat    58. 26.101 / 58. 26.101
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 48.100 /  7. 48.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, avi, from '/Users/kjeyapal/Downloads/big_buck_bunny_1080p_stereo.avi':
  Metadata:
    encoder         : MEncoder 2:1.0~rc2-0ubuntu13
  Duration: 00:09:56.46, start: 0.000000, bitrate: 9586 kb/s
    Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 1920x1080, 9328 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 245 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (msmpeg4v2 (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x7f9d34044c00] v1.8.0-289-g5cde05fda
Segmentation fault: 11

Change History (4)

comment:1 by Carl Eugen Hoyos, 5 years ago

Keywords: crash added; ibvpx-vp9 removed

Please provide backtrace, disassembly and register dump as explained on https://ffmpeg.org/bugreports.html

comment:2 by Karthick Jeyapal, 5 years ago

blr-mp4tf:ffmpeg kjeyapal$ lldb ./ffmpeg_g
(lldb) target create "./ffmpeg_g"
Current executable set to './ffmpeg_g' (x86_64).
(lldb) r -i ~/Downloads/big_buck_bunny_1080p_stereo.avi -c:v libvpx-vp9 -pix_fmt yuv420p -cpu-used 3 -tile-columns 3 -frame-parallel 1 -deadline realtime -threads 4  -lag-in-frames 0  -b:v 1000k -an out.mp4
Process 44593 launched: './ffmpeg_g' (x86_64)
ffmpeg version N-93431-g6dc1da416e Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --enable-libx264 --enable-libvpx --enable-gpl
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 47.105 / 58. 47.105
  libavformat    58. 26.101 / 58. 26.101
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 48.100 /  7. 48.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, avi, from '/Users/kjeyapal/Downloads/big_buck_bunny_1080p_stereo.avi':
  Metadata:
    encoder         : MEncoder 2:1.0~rc2-0ubuntu13
  Duration: 00:09:56.46, start: 0.000000, bitrate: 9586 kb/s
    Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 1920x1080, 9328 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 245 kb/s
File 'out.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (msmpeg4v2 (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x10300f200] v1.8.0-289-g5cde05fda
Process 44593 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x21af5c8)
    frame #0: 0x00007fff6808ece8 libsystem_pthread.dylib`__pthread_once_handler + 70
libsystem_pthread.dylib`__pthread_once_handler:
->  0x7fff6808ece8 <+70>: movq   %rax, 0x8(%rbx)
    0x7fff6808ecec <+74>: movq   (%r14), %rax
    0x7fff6808ecef <+77>: movq   $0x4f4e4345, (%rax)       ; imm = 0x4F4E4345 
    0x7fff6808ecf6 <+84>: addq   $0x18, %rsp
Target 0: (ffmpeg_g) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x21af5c8)
  * frame #0: 0x00007fff6808ece8 libsystem_pthread.dylib`__pthread_once_handler + 70
    frame #1: 0x00007fff68084acb libsystem_platform.dylib`_os_once_callout + 18
    frame #2: 0x00007fff6808ec7f libsystem_pthread.dylib`pthread_once + 56
    frame #3: 0x00000001010eab7d ffmpeg_g`vp9_initialize_enc + 29
    frame #4: 0x00007fff6808ece4 libsystem_pthread.dylib`__pthread_once_handler + 66
    frame #5: 0x00007fff68084acb libsystem_platform.dylib`_os_once_callout + 18
    frame #6: 0x00007fff6808ec7f libsystem_pthread.dylib`pthread_once + 56
    frame #7: 0x0000000101097f81 ffmpeg_g`encoder_init + 193
    frame #8: 0x0000000101001df1 ffmpeg_g`vpx_codec_enc_init_ver + 161
    frame #9: 0x000000010087f0b4 ffmpeg_g`vpx_init(avctx=0x000000010300f200, iface=<unavailable>) at libvpxenc.c:719 [opt]
    frame #10: 0x0000000100b77cac ffmpeg_g`avcodec_open2(avctx=0x000000010300f200, codec=0x000000010158f218, options=0x000000010270c560) at utils.c:934 [opt]
    frame #11: 0x000000010001fefb ffmpeg_g`init_output_stream(ost=<unavailable>, error="", error_len=1024) at ffmpeg.c:3516 [opt]
    frame #12: 0x00000001000215bc ffmpeg_g`reap_filters(flush=0) at ffmpeg.c:1441 [opt]
    frame #13: 0x000000010001ab77 ffmpeg_g`transcode [inlined] transcode_step at ffmpeg.c:4645 [opt]
    frame #14: 0x00000001000192a4 ffmpeg_g`transcode at ffmpeg.c:4689 [opt]
    frame #15: 0x00000001000165e9 ffmpeg_g`main(argc=<unavailable>, argv=<unavailable>) at ffmpeg.c:4891 [opt]
    frame #16: 0x00007fff67e9ced9 libdyld.dylib`start + 1
    frame #17: 0x00007fff67e9ced9 libdyld.dylib`start + 1
(lldb) register read
General Purpose Registers:
       rax = 0x00007ffeefbfd410
       rbx = 0x00000000021af5c0
       rcx = 0x0000000000000000
       rdx = 0x000000009c000000
       rdi = 0x00000000000027ab
       rsi = 0x000000000000000d
       rbp = 0x00007ffeefbfd390
       rsp = 0x00007ffeefbfd360
        r8 = 0x0000000000000012
        r9 = 0x00000000ffffffee
       r10 = 0x00007ffeefbff9f0
       r11 = 0xffff800212c2334f
       r12 = 0x00007fff6808eca2  libsystem_pthread.dylib`__pthread_once_handler
       r13 = 0x000000010300f200
       r14 = 0x00007ffeefbfd3c0
       r15 = 0x00007ffeefbfd360
       rip = 0x00007fff6808ece8  libsystem_pthread.dylib`__pthread_once_handler + 70
    rflags = 0x0000000000010246
        cs = 0x000000000000002b
        fs = 0x0000000000000000
        gs = 0x0000000000000000

(lldb) disassemble --pc                                                                                   libsystem_pthread.dylib`__pthread_once_handler:
->  0x7fff6808ece8 <+70>: movq   %rax, 0x8(%rbx)
    0x7fff6808ecec <+74>: movq   (%r14), %rax
    0x7fff6808ecef <+77>: movq   $0x4f4e4345, (%rax)       ; imm = 0x4F4E4345 
    0x7fff6808ecf6 <+84>: addq   $0x18, %rsp
(lldb) 

Please find backtrace, disassembly and register dump above. Please let me know if anything else is required.

Last edited 5 years ago by Karthick Jeyapal (previous) (diff)

comment:3 by Carl Eugen Hoyos, 5 years ago

The backtrace indicates an issue in libvpx afaict, maybe recompiling libvpx with debug symbols shows the issue in a more readable way.

comment:4 by Karthick Jeyapal, 5 years ago

Resolution: invalid
Status: newclosed

When I did a "make distclean" and then rebuilt both libvpx and ffmpeg, it started working.
Sorry for the false alarm. Looks like everything was fine.

Note: See TracTickets for help on using tickets.