Bug #757

Trying to create .avi files produces a segfault

Added by D. Klotz over 12 years ago. Updated over 12 years ago.

Status:ClosedStart date:12/09/2011
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:-
Target version:-

Description

When I try to create .avi video files (in the end I modified the record_ogv pipeline to use an avisink, since the whole pipeline in record_avi was somehow different, e.g. it didn't contain the sync_to of the video src to the audio src) in the end i get a segfault in the pipeline. I'll try to run through gdb and get a backtrace and attach it here.

Associated revisions

Revision 9b56c085
Added by J. Moringen over 12 years ago

Added locking of previous event in src/gst_rsb_src_base.cpp
refs #757
  • src/gst_rsb_src_base.cpp: lock previous when accessing or replacing
    it

History

#1 Updated by D. Klotz over 12 years ago

Ok, so this is not a segfault but an exception, but it seems to be in our own code:

0:02:32.665047313 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:455:gst_rsb_src_base_schedule:<rsbaudiosrc0> current pipeline time     0:01:34.957782635
0:02:32.665063429 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:458:gst_rsb_src_base_schedule:<rsbaudiosrc0> scheduling buffer at      0:03:53.540000000
0:02:32.665075808 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:461:gst_rsb_src_base_schedule:<rsbaudiosrc0> scheduling buffer durat.  0:00:00.010000000
0:02:32.665204402 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:395:gst_rsb_src_base_get_event:<rsbaudiosrc0> constructing buffer 23355 from event 23356
0:02:32.665220435 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:397:gst_rsb_src_base_get_event:<rsbaudiosrc0> 1430 item(s) remain(s) in queue
0:02:32.665241858 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:410:gst_rsb_src_base_get_event:<rsbaudiosrc0> RSB timestamp difference  0:00:00.010000000
0:02:32.665274390 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:455:gst_rsb_src_base_schedule:<rsbaudiosrc0> current pipeline time     0:01:34.958013795
0:02:32.665289416 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:458:gst_rsb_src_base_schedule:<rsbaudiosrc0> scheduling buffer at      0:03:53.550000000
0:02:32.665301408 26811  0x84681f8 DEBUG                 rsbsrc /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:461:gst_rsb_src_base_schedule:<rsbaudiosrc0> scheduling buffer durat.  0:00:00.010000000
terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xac3cbb70 (LWP 26851)]
0xb7fe2424 in __kernel_vsyscall ()
(gdb) bt
#0  0xb7fe2424 in __kernel_vsyscall ()
#1  0xb7c91651 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0xb7c94a82 in *__GI_abort () at abort.c:92
#3  0xb708252f in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#4  0xb7080465 in ?? () from /usr/lib/libstdc++.so.6
#5  0xb70804a2 in std::terminate() () from /usr/lib/libstdc++.so.6
#6  0xb708055b in __cxa_rethrow () from /usr/lib/libstdc++.so.6
#7  0xb75eed9c in std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_create_node (this=0xac3cad34, 
    __x=...) at /usr/include/c++/4.4/bits/stl_tree.h:375
#8  0xb75ee44d in std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_clone_node (this=0xac3cad34, 
    __x=0xa9399ed8) at /usr/include/c++/4.4/bits/stl_tree.h:416
#9  0xb75ed486 in std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_copy (this=0xac3cad34, 
    __x=0xa9399ed8, __p=0xac3cad38) at /usr/include/c++/4.4/bits/stl_tree.h:932
#10 0xb75ec111 in _Rb_tree (this=0xac3cad34, __x=...) at /usr/include/c++/4.4/bits/stl_tree.h:602
#11 0xb75eb246 in map (this=0xac3cad34, __x=...) at /usr/include/c++/4.4/bits/stl_map.h:171
#12 0xb75ea555 in MetaData (this=0xac3cace4, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /vol/nao/releases/lucid32-1.12-rc1/src/gar-installer/rsx/rsb/work/main.d/rsb-0.5.0/src/rsb/MetaData.h:48
#13 0xb75e9942 in rsb::Event::getMetaData (this=0xa1edcbc8) at /vol/nao/releases/lucid32-1.12-rc1/src/gar-installer/rsx/rsb/work/main.d/rsb-0.5.0/src/rsb/Event.cpp:186
#14 0xb78b4b2b in gst_rsb_src_base_rsb_time_to_pipeline_time (gst_rsb_src_base=0x818c000, rsb_time=1322134151726641000) at /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:512
#15 0xb78b43a6 in gst_rsb_src_base_schedule_sync_to (gst_rsb_src_base=0x81a0058, event_time=1322134151726641000, timestamp=0xac3cb028, duration=0xac3cb030) at /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:486
#16 0xb78b3a0a in gst_rsb_src_base_schedule (gst_rsb_src_base=0x81a0058, event=..., duration=0xac3cb030, timestamp=0xac3cb028) at /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_src_base.cpp:440
#17 0xb78bea33 in gst_rsb_video_src_create (gst_base_src=0x81a0058, buffer=0xac3cb21c) at /homes/dklotz/nao/ws/rsb-gstreamer/src/gst_rsb_video_src.cpp:324
#18 0xb7381765 in ?? () from /usr/lib/libgstbase-0.10.so.0
#19 0xb736e881 in ?? () from /usr/lib/libgstbase-0.10.so.0
#20 0xb7371327 in ?? () from /usr/lib/libgstbase-0.10.so.0
#21 0xb7f6cd6b in ?? () from /usr/lib/libgstreamer-0.10.so.0
#22 0xb7f6e377 in ?? () from /usr/lib/libgstreamer-0.10.so.0
#23 0xb7e41d0c in ?? () from /lib/libglib-2.0.so.0
#24 0xb7e3fdef in ?? () from /lib/libglib-2.0.so.0
#25 0xb7dc696e in start_thread (arg=0xac3cbb70) at pthread_create.c:300
#26 0xb7d34a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
(gdb) up 13
#13 0xb75e9942 in rsb::Event::getMetaData (this=0xa1edcbc8) at /vol/nao/releases/lucid32-1.12-rc1/src/gar-installer/rsx/rsb/work/main.d/rsb-0.5.0/src/rsb/Event.cpp:186
186         return d->metaData;
(gdb) print *this
$1 = {<> = {<No data fields>}, d = {px = 0xa046006d}}
(gdb) print this->d
$2 = {px = 0xa046006d}
(gdb) print this->d.px
$3 = (rsb::Event::Impl *) 0xa046006d
(gdb) print *(this->d.px)
$4 = {id = {px = 0x5ca3ff, pn = {pi_ = 0xb8ffe2d0}}, scope = {px = 0xde6b0055, pn = {pi_ = 0x45cbff}}, content = {px = 0x44ffdd57, pn = {pi_ = 0xdb3d004a}}, type = {static npos = 4294967295, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x48e1ff <Address 0x48e1ff out of bounds>}}, method = {static npos = 4294967295, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x71ffd982 <Address 0x71ffd982 out of bounds>}}, causes = {_M_t = {
      _M_impl = {<std::allocator<std::_Rb_tree_node<rsb::EventId> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<rsb::EventId> >> = {<No data fields>}, <No data fields>}, 
        _M_key_compare = {<std::binary_function<rsb::EventId, rsb::EventId, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = 1811939582, _M_parent = 0x5600000a, _M_left = 0x5600000a, _M_right = 0xff00000a}, _M_node_count = 2315255807}}}, 
  metaData = {<error reading variable>}

#2 Updated by D. Klotz over 12 years ago

Btw, this was with the pipeline that i just checked into trunk as record_avi2.sh and data from Test7SittingComplete.tide.

#3 Updated by J. Moringen over 12 years ago

  • Status changed from New to Feedback
  • % Done changed from 0 to 50

#4 Updated by D. Klotz over 12 years ago

  • Status changed from Feedback to Closed
  • % Done changed from 50 to 100

The crashes seem to be fixed now. The .avi files still seem to be somewhat broken, but that is another problem (and possibly a general gstreamer problem).

Also available in: Atom PDF