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
[Jarvis] partly backport of PR 9231 to fix segfault #9388
Conversation
Solution looks good and clean, leaving decision to someone familiar with this part of the project |
Fine thanks! |
This patch is a backport of a81208e to fix a segfault during playback of vaapi-accelerated mpeg2 content: terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid [New LWP 3743] Program received signal SIGABRT, Aborted. [Switching to LWP 3743] 0xb5664a9b in raise () from /lib/libc.so.0 (gdb) bt full #0 0xb5664a9b in raise () from /lib/libc.so.0 No symbol table info available. #1 0xb5660520 in abort () from /lib/libc.so.0 No symbol table info available. #2 0xb56e6536 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6 No symbol table info available. #3 0xb56e4a1c in ?? () from /usr/lib/libstdc++.so.6 No symbol table info available. #4 0xb56e4a80 in std::terminate() () from /usr/lib/libstdc++.so.6 No symbol table info available. #5 0xb56e4cc9 in __cxa_throw () from /usr/lib/libstdc++.so.6 No symbol table info available. #6 0xb5719d79 in std::__throw_logic_error(char const*) () from /usr/lib/libstdc++.so.6 No symbol table info available. #7 0xb5722c41 in char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) () from /usr/lib/libstdc++.so.6 No symbol table info available. #8 0xb5722cc7 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib/libstdc++.so.6 No symbol table info available. #9 0x0848fea3 in CDVDVideoCodec::IsCodecDisabled (map=0x9130420 <g_vaapi_available>, size=5, id=AV_CODEC_ID_MPEG4) at DVDVideoCodec.cpp:75 index = <optimized out> #10 0x08499d04 in VAAPI::CDecoder::Open (this=0xd09e5e8, avctx=0xd6a2ec0, mainctx=0xd6a2ec0, fmt=AV_PIX_FMT_VAAPI_VLD, surfaces=6) at VAAPI.cpp:503 gpuvendor = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xceb267c "intel open source technology center"}} profile = <optimized out> #11 0x08491bda in CDVDVideoCodecFFmpeg::GetFormat (avctx=0xd6a2ec0, fmt=0x986d9c0) at DVDVideoCodecFFmpeg.cpp:143 dec = 0xd09e5e8 ctx = <optimized out> cur = 0x986d9c0 #12 0xb61c8ced in ?? () from /usr/lib/libavcodec.so.56
I forced-pushed to my jarvis_pr9231 branch in order to provide a complete gdb backtrace, lines starting with a hash char were removed in the first version of my PR. No code changes took place. |
jenkins build this please |
jenkins build this please |
@bkuhls it fails on windows |
@MartijnKaijser: I never build Kodi for Windows nor did I analyze a Windows build log but I fail to see the connection between my PR and the build error which seems to be triggered while building a local copy of ffmpeg:
|
@sevenrock build mingw libs (tools/buildsteps/win32/make-mingwlibs.bat) before compiling Kodi. |
This patch is a backport of
a81208e
to fix a segfault during playback of vaapi-accelerated mpeg2 content:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
[New LWP 3743]
Program received signal SIGABRT, Aborted.
[Switching to LWP 3743]
0xb5664a9b in raise () from /lib/libc.so.0
(gdb) bt full
No symbol table info available.
No symbol table info available.
No symbol table info available.
No symbol table info available.
No symbol table info available.
No symbol table info available.
No symbol table info available.
No symbol table info available.
No symbol table info available.
at DVDVideoCodec.cpp:75
index =
surfaces=6) at VAAPI.cpp:503
gpuvendor = {static npos = ,
_M_dataplus = {std::allocator = {<__gnu_cxx::new_allocator> = {}, }, _M_p = 0xceb267c "intel open source technology center"}}
profile =
dec = 0xd09e5e8
ctx =
cur = 0x986d9c0