View Bug Details

IDProjectCategoryView StatusLast Update
0001570DCP-o-maticBugspublic2021-01-08 00:41
Reportercarl Assigned Tocarl  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version2.16.0 
Summary0001570: Crash in interrupt_encoder_test
Description

GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from build/test/unit-tests...done.
(gdb) thread applt all y all bt
(gdb) run core core
[New LWP 21688]
[New LWP 21689]
[New LWP 20623]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `build/test/unit-tests --catch_system_errors=no --log_level=test_suite'.
Program terminated with signal SIGABRT, Aborted.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
[Current thread is 1 (Thread 0x7f9dce7fc700 (LWP 21688))]
(gdb) core core
(gdb) thread apply all bt

Thread 3 (Thread 0x7f9ec323ffc0 (LWP 20623)):
#0 0x00007f9ebd7929f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f9e32093bc8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
0000001 0x00007f9ebd7929f3 in pthread_cond_wait_common (abstime=0x0, mutex=0x7f9e32093b78, cond=0x7f9e32093ba0) at pthread_cond_wait.c:502
0000002 0x00007f9ebd7929f3 in __pthread_cond_wait (cond=0x7f9e32093ba0, mutex=0x7f9e32093b78) at pthread_cond_wait.c:655
0000003 0x00007f9ec2b82b5d in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) () at /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
0000004 0x00007f9ec2b7ad14 in boost::thread::join_noexcept() () at /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
0000005 0x00005563c7606e83 in boost::thread::join() ()
0000006 0x00005563c794122c in Writer::terminate_thread(bool) ()
0000007 0x00005563c794197e in Writer::~Writer() ()
0000008 0x00005563c792a392 in boost::detail::sp_counted_impl_p<Writer>::dispose() ()
0000009 0x00005563c75b56ea in boost::detail::sp_counted_base::release() ()
0000010 0x00005563c7926d08 in DCPEncoder::~DCPEncoder() ()
0000011 0x00005563c7926da9 in DCPEncoder::~DCPEncoder() ()
0000012 0x00005563c78e74da in TranscodeJob::~TranscodeJob() ()
0000013 0x00005563c75b56ea in boost::detail::sp_counted_base::release() ()
0000014 0x00005563c789e661 in std::
cxx11::_List_base<boost::shared_ptr<Job>, std::allocator<boost::shared_ptr<Job> > >::_M_clear() ()
0000015 0x00005563c789b596 in JobManager::~JobManager() ()
0000016 0x00005563c789b759 in JobManager::~JobManager() ()
0000017 0x00005563c789aa66 in JobManager::drop() ()
0000018 0x00005563c76b5f0b in interrupt_encoder_test::test_method() ()
0000019 0x00005563c76b6ec8 in interrupt_encoder_test_invoker() ()
0000020 0x00007f9ec2dd92ce in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) ()
at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000021 0x00007f9ec2dd877d in boost::execution_monitor::catch_signals(boost::function<int ()> const&) () at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000022 0x00007f9ec2dd8861 in boost::execution_monitor::execute(boost::function<int ()> const&) () at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000023 0x00007f9ec2dd8fdd in boost::execution_monitor::vexecute(boost::function<void ()> const&) () at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000024 0x00007f9ec2e078d1 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned int) ()
at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000025 0x00007f9ec2de3c6b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const) () at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000026 0x00007f9ec2de3e51 in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const
) () at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000027 0x00007f9ec2ddccc8 in boost::unit_test::framework::run(unsigned long, bool) () at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000028 0x00007f9ec2e0513f in boost::unit_test::unit_test_main(bool (*)(), int, char**) () at /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.65.1
0000029 0x00007f9ebd3b5b97 in __libc_start_main (main=
0x5563c74f1840 <main>, argc=3, argv=0x7fff9c39fc78, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff9c39fc68)
at ../csu/libc-start.c:310
0000030 0x00005563c75b185a in _start ()

Thread 2 (Thread 0x7f9dcdffb700 (LWP 21689)):
#0 0x00007f9ebd4aa6e7 in __GI_writev (fd=15, iov=0x7f9e68012048, iovcnt=2) at ../sysdeps/unix/sysv/linux/writev.c:26
0000001 0x00005563c7a50c24 in Kumu::FileWriter::Writev(unsigned int) ()
0000002 0x00005563c7a4c655 in ASDCP::Write_EKLV_Packet(Kumu::FileWriter&, ASDCP::Dictionary const&, ASDCP::MXF::OP1aHeader const&, ASDCP::WriterInfo const&, ASDCP::FrameBuffer&, unsigned int&, unsigned long long&, ASDCP::FrameBuffer const&, unsigned char const
, ASDCP::AESEncContext, ASDCP::HMACContext, std::
cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
0000003 0x00005563c7a4c9d0 in ASDCP::h__ASDCPWriter::WriteEKLVPacket(ASDCP::FrameBuffer const&, unsigned char const
, ASDCP::AESEncContext, ASDCP::HMACContext, std::cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) ()
0000004 0x00005563c7a105ce in lh
Writer::WriteFrame(ASDCP::JP2K::FrameBuffer const&, bool, ASDCP::AESEncContext, ASDCP::HMACContext, std::cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
0000005 0x00005563c7a106e7 in ASDCP::JP2K::MXFWriter::WriteFrame(ASDCP::JP2K::FrameBuffer const&, ASDCP::AESEncContext
, ASDCP::HMACContext*, std::
cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
0000006 0x00005563c79b4aed in dcp::MonoPictureAssetWriter::write(unsigned char const
, int) ()
0000007 0x00005563c794c7cc in ReelWriter::write(boost::optional<dcp::Data>, long, Eyes) ()
0000008 0x00005563c7943338 in Writer::thread() ()
0000009 0x00007f9ec2b7abcd in () at /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
0000010 0x00007f9ebd78c6db in start_thread (arg=0x7f9dcdffb700) at pthread_create.c:463
0000011 0x00007f9ebd4b588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f9dce7fc700 (LWP 21688)):
#0 0x00007f9ebd3d2e97 in GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
0000001 0x00007f9ebd3d4801 in __GI_abort () at abort.c:79
0000002 0x00007f9ebd3c439a in
assert_fail_base (fmt=0x7f9ebd54b7d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5563c878d766 "res == 0", file=file@entry=0x5563c87889a8 "/usr/include/boost/thread/pthread/mutex.hpp", line=line@entry=127, function=function@entry=0x5563c87cb570 <_ZZN5boost5mutex6unlockEvE19PRETTYFUNCTION> "void boost::mutex::unlock()") at assert.c:92
0000003 0x00007f9ebd3c4412 in
GI
assert_fail (assertion=0x5563c878d766 "res == 0", file=0x5563c87889a8 "/usr/include/boost/thread/pthread/mutex.hpp", line=127, function=0x5563c87cb570 <_ZZN5boost5mutex6unlockEvE19__PRETTY_FUNCTION__> "void boost::mutex::unlock()") at assert.c:101
0000004 0x00005563c772957a in ()
0000005 0x00005563c793389a in J2KEncoder::encode(boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>) ()
0000006 0x00005563c7926932 in DCPEncoder::video(boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>) ()
0000007 0x00005563c792a5ef in boost::detail::function::void_function_obj_invoker2<boost::_bi::bind_t<void, boost::_mfi::mf2<void, DCPEncoder, boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator> >, boost::_bi::list3<boost::_bi::value<DCPEncoder>, boost::arg<1>, boost::arg<2> > >, void, boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>) ()
0000008 0x00005563c78c16f6 in boost::signals2::detail::signal_impl<void (boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>)>, boost::function<void (boost::signals2::connection const&, boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>)>, boost::signals2::mutex>::operator()(boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>) ()
0000009 0x00005563c78af491 in Player::do_emit_video(boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>) ()
0000010 0x00005563c78af6cf in Player::emit_video(boost::shared_ptr<PlayerVideo>, dcpomatic::Time<dcpomatic::DCPTimeDifferentiator, dcpomatic::ContentTimeDifferentiator>) ()
0000011 0x00005563c78b01d6 in Player::video(boost::weak_ptr<Piece>, ContentVideo) ()
0000012 0x00005563c78bc9a7 in boost::_mfi::mf2<void, Player, boost::weak_ptr<Piece>, ContentVideo>::operator()(Player
, boost::weak_ptr<Piece>, ContentVideo) const ()
0000013 0x00005563c78bcb6b in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Player, boost::weak_ptr<Piece>, ContentVideo>, boost::_bi::list3<boost::_bi::value<Player*>, boost::_bi::value<boost::weak_ptr<Piece> >, boost::arg<1> > >, void, ContentVideo>::invoke(boost::detail::function::function_buffer&, ContentVideo) ()
0000014 0x00005563c7901d62 in boost::signals2::detail::signal_impl<void (ContentVideo), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (ContentVideo)>, boost::function<void (boost::signals2::connection const&, ContentVideo)>, boost::signals2::mutex>::operator()(ContentVideo) ()
0000015 0x00005563c7902277 in boost::signals2::signal<void (ContentVideo), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (ContentVideo)>, boost::function<void (boost::signals2::connection const&, ContentVideo)>, boost::signals2::mutex>::operator()(ContentVideo) ()
0000016 0x00005563c78ffb9a in VideoDecoder::emit(boost::shared_ptr<Film const>, boost::shared_ptr<ImageProxy const>, long) ()
0000017 0x00005563c785412d in FFmpegDecoder::decode_video_packet() ()
0000018 0x00005563c785676a in FFmpegDecoder::pass() ()
0000019 0x00005563c78b18e0 in Player::pass() ()
0000020 0x00005563c79271b3 in DCPEncoder::go() ()
0000021 0x00005563c78e5b37 in TranscodeJob::run() ()
0000022 0x00005563c78973bd in Job::run_wrapper() ()
0000023 0x00007f9ec2b7abcd in () at /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
0000024 0x00007f9ebd78c6db in start_thread (arg=0x7f9dce7fc700) at pthread_create.c:463
0000025 0x00007f9ebd4b588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) quit

Additional Information

i.e. DCPEncoder being destroyed while J2KEncoder::encode() is happening (called by DCPEncoder::video).

TagsNo tags attached.
Branch
Estimated weeks required
Estimated work requiredUndecided

Activities

carl

2019-05-30 20:09

administrator   ~0003362

Hopefuly 9b98a07cb61fd66fd73f9f58468100ec9b7eddd3 fixes that.

Bug History

Date Modified Username Field Change
2019-05-30 16:40 carl New Bug
2019-05-30 16:41 carl Description Updated
2019-05-30 16:41 carl Additional Information Updated
2019-05-30 20:09 carl Assigned To => carl
2019-05-30 20:09 carl Status new => resolved
2019-05-30 20:09 carl Resolution open => fixed
2019-05-30 20:09 carl Note Added: 0003362
2021-01-08 00:41 carl Status resolved => closed