Ticket #1381 (closed defect: invalid)
rtorrent segfault on mipsel
| Reported by: | bangcok (underscore) dangerus (at) hotmail (dot) com | Owned by: | rakshasa |
|---|---|---|---|
| Priority: | normal | Component: | rtorrent |
| Version: | Severity: | major | |
| Keywords: | mips segfault | Cc: |
Description
I'm trying to use rtorrent on a Mikrotik Routerboard 532 (32MB RAM, 100MB swap space, 99MHz CPU) running OpenWRT kamikaze. I've tried using the latest official OpenWRT release (7.09), which includes rtorrent 0.7.9 and libtorrent 0.11.9 . I've also tried the latest svn version of kamikaze (revision 11610 at the time of writing) and manually changed the build to use rtorrent 0.8.2 and libtorrent 0.12.2 .
Every time, the result is the same: rtorrent starts, but as soon as I hit the enter key, it segfaults with the message:
Caught Segmentation fault, dumping stack: Stack dump not enabled.
I recompiled a non-stripped system and ran rtorrent under gdbserver to get a backtrace. This is the best result I was able to produce:
Program received signal SIGSEGV, Segmentation fault.
__dynamic_cast (src_ptr=0x5b7f50, src_type=0x56a298, dst_type=0x56a2a0, src2dst=0)
at /home/basil/download/openwrt-svn/build_dir/toolchain-mipsel_gcc4.1.2/gcc-4.1.2/libstdc++-v3/libsupc++/tinfo.cc:718
718 dst_type, whole_ptr, src_type, src_ptr, result);
(gdb) bt
#0 __dynamic_cast (src_ptr=0x5b7f50, src_type=0x56a298, dst_type=0x56a2a0, src2dst=0)
at /home/basil/download/openwrt-svn/build_dir/toolchain-mipsel_gcc4.1.2/gcc-4.1.2/libstdc++-v3/libsupc++/tinfo.cc:718
#1 0x0049a128 in ui::DownloadList::receive_view_input (this=0x5b7640, type=ui::DownloadList::INPUT_LOAD_MODIFIED) at download_list.cc:264
During symbol reading, Location list used without specifying the CU base address..
#2 0x004ee354 in input::Bindings::pressed (this=0x5b764c, key=10) at bindings.cc:55
#3 0x004ec7e8 in std::mem_fun1_t<bool, input::Bindings, int>::operator() (this=Variable "this" is not available.
) at stl_function.h:656
#4 0x004ec820 in std::binder2nd<std::mem_fun1_t<bool, input::Bindings, int> >::operator() (this=Variable "this" is not available.
) at stl_function.h:446
#5 0x004ec99c in std::__find_if<std::reverse_iterator<__gnu_cxx::__normal_iterator<input::Bindings**, std::vector<input::Bindings*, std::allocator<input::Bindings*> > > >, std::binder2nd<std::mem_fun1_t<bool, input::Bindings, int> > > (__first=@0x7fca4bbc, __last=@0x7fca4bb8, __pred=
{<std::unary_function<input::Bindings*,bool>> = {<No data fields>}, op = {<std::binary_function<input::Bindings*,int,bool>> = {<No data fields>}, _M_f = {__pfn = 0x4ee2f0 <input::Bindings::pressed(int)>, __delta = 0}}, value = 10}) at stl_algo.h:284
#6 0x004eca64 in std::find_if<std::reverse_iterator<__gnu_cxx::__normal_iterator<input::Bindings**, std::vector<input::Bindings*, std::allocator<input::Bindings*> > > >, std:: binder2nd<std::mem_fun1_t<bool, input::Bindings, int> > > (__first=Variable "__first" is not available.
) at stl_algo.h:338
#7 0x004ec44c in input::Manager::pressed (this=Variable "this" is not available.
) at manager.cc:67
#8 0x004ec25c in input::InputEvent::event_read (this=0x591138) at input_event.cc:62
#9 0x2ae5b208 in torrent::PollEPoll::perform (this=0x5919d8) at poll_epoll.cc:135
#10 0x004ce91c in core::PollManagerEPoll::poll (this=0x596a10, timeout={m_time = 993361}) at poll_manager_epoll.cc:112
#11 0x004927b8 in main (argc=1, argv=0x4ce694) at main.cc:276
This is the first time I've used gdb, but I'd really like to try get rtorrent running on this system! If there's anything more I can do to produce helpful information please let me know and I'll give it my best shot.
Vasilis
