Bug #757
Trying to create .avi files produces a segfault
Status: | Closed | Start date: | 12/09/2011 | |
---|---|---|---|---|
Priority: | Normal | Due 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
Added locking of previous event in src/gst_rsb_src_base.cpp
refs #757
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).