EttusResearch/gr-ettus

Segmentation fault issue when calling rfnoc_block constructor

Closed this issue · 14 comments

A segmentation fault error appears when executing part of gr-ettus code below:

rfnoc_radio_impl::rfnoc_radio_impl(
   const device3::sptr &dev,
   const ::uhd::stream_args_t &tx_stream_args,
   const ::uhd::stream_args_t &rx_stream_args,
   const int radio_select,
   const int device_select
   ) : rfnoc_block("rfnoc_radio"),     /* <----- base class constructor call causes a segmentation-fault error */
   rfnoc_block_impl(
   dev,
   rfnoc_block_impl::make_block_id("Radio", radio_select, device_select),
   tx_stream_args, rx_stream_args
   )
   {
   _radio_ctrl = get_block_ctrl_throw< ::uhd::rfnoc::radio_ctrl >();
   }

g++ version is 5.4.0 20160609.
Git Id SHA-1 is df84cb1 (2017-05-08 18:44:22).
The call to the base class constructor in the top-level class causes a segmentation-fault error. It seems that, at that time, access to the base class memory is not yet allowed. Valgrind warns for invalid memory writes.

Modifying the code as presented below fixes the crash:

rfnoc_radio_impl::rfnoc_radio_impl(
   const device3::sptr &dev,
   const ::uhd::stream_args_t &tx_stream_args,
   const ::uhd::stream_args_t &rx_stream_args,
   const int radio_select,
   const int device_select
   ) : /*rfnoc_block("rfnoc_radio"),*/   /* <---- Removed base class constructor call there */
   rfnoc_block_impl(
  "rfnoc_radio",                      /* <---- block name is given here */
   dev,
   rfnoc_block_impl::make_block_id("Radio", radio_select, device_select),
   tx_stream_args, rx_stream_args
   )
   {
   _radio_ctrl = get_block_ctrl_throw< ::uhd::rfnoc::radio_ctrl >();
   }

rfnoc_block_impl::rfnoc_block_impl(
    const std::string& name,    /* <----- Added parameter for block name */
    const device3::sptr &dev,
    const std::string &block_id,
    const ::uhd::stream_args_t &tx_stream_args,
    const ::uhd::stream_args_t &rx_stream_args
) : rfnoc_block(name),           /* <----- base class constructor called here */
    _dev(dev->get_device()),
    _tx(tx_stream_args),
    _rx(rx_stream_args),
    _start_time_set(false)
{
...
}

As a consequence, all RFNoC blocks constructors need to be modified accordingly.

Not sure if this is related, but after installing gr-ettus on Ubuntu 14.04 I'm unable to run rfnocmodtool as this results in a Segmentation Fault. However, this is not the case with Ubuntu 16.04 and rfnocmodtool runs without issues.

I'm using Ubuntu 16.04.2 LTS.

@BreizhGeek Are you able to run rfnocmodtool on your installation?

@BreizhGeek I have just set up a VM with Ubuntu 14.04 and rfnocmodtool seems to work just fine. I haven't heard of reports of the tool not working in that specific distribution yet. Maybe a backtrace will give you (or us, if you share it) insights on what might be happening there.

@ilhaan I forgot to tag you on that last comment, which is more of your interest than it is for BreizhGeek.

@primercuervo Not sure how to get a backtrace here. I used PyBOMBS to install (I am trying to install rfnoc and followed the instructions here and gr-ettus is a dependency).

I'm attaching CMakeError.log file below that I found in the src/gr-ettus/build/CMakeFiles/ directory. I see a few errors in there, but PyBOMBS reported a successful installation.

CMakeError.txt

I ran rfnocmodtool on my Ubuntu distribution and it ran fine. I created a new module and a new block. There was no segmentation fault.
The segmentation fault appears when using GNU Radio Companion with RFNoC blocks.
Note that GnuRadio Companion works fine when using only GnuRadio blocks.

Just realized that the issue I was having was caused by Vivado sourcing a different compiler. Commenting that out solved my problem.

@BreizhGeek I can't reproduce that behavior locally at the moment. Could you please generate a backtrace and share it with us? You can find brief guide on how to generate this is here.

@ilhaan I'm glad your issue is solved. Could you please elaborate what part did you comment out? This is to be sure that the script is not affecting other users.

@primercuervo I was able to get rfnocmodtool to work by commenting out the following line (required by Vivado 2015) from .bashrc:

source /opt/Xilinx/Vivado/2015.4/settings64.sh

Please find below Valgrind and GDB backtrace outputs.

  • Extract of Valgrind output:
[INFO] [CORES] Performing timer loopback test... 
[INFO] [CORES] Timer loopback test passed
[INFO] [CORES] Performing timer loopback test... 
[INFO] [CORES] Timer loopback test passed
==90562== Invalid write of size 1
==90562==    at 0x1B4FDAAD: assign (char_traits.h:243)
==90562==    by 0x1B4FDAAD: _M_set_length (basic_string.h:165)
==90562==    by 0x1B4FDAAD: basic_string (basic_string.h:384)
==90562==    by 0x1B4FDAAD: gr::block::block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::shared_ptr<gr::io_signature>, boost::shared_ptr<gr::io_signature>) (block.cc:57)
==90562==    by 0x2949F845: gr::ettus::rfnoc_block::rfnoc_block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rfnoc_block_impl.cc:137)
==90562==    by 0x294C932D: gr::ettus::rfnoc_radio_impl::rfnoc_radio_impl(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:54)
==90562==    by 0x294C8FF1: gr::ettus::rfnoc_radio::make(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:39)
==90562==    by 0x2910C6F2: _wrap_rfnoc_radio_make (ettus_swigPYTHON_wrap.cxx:30572)
==90562==    by 0x4C4689: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4CA098: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4DE6FD: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F492D: ??? (in /usr/bin/python2.7)
==90562==  Address 0x20461be8 is 0 bytes after a block of size 1,192 alloc'd
==90562==    at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==90562==    by 0x294C8FCB: gr::ettus::rfnoc_radio::make(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:38)
==90562==    by 0x2910C6F2: _wrap_rfnoc_radio_make (ettus_swigPYTHON_wrap.cxx:30572)
==90562==    by 0x4C4689: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4CA098: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4DE6FD: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F492D: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F46A6: ??? (in /usr/bin/python2.7)
==90562== 
==90562== Invalid write of size 8
==90562==    at 0x1B4FDACA: _M_length (basic_string.h:131)
==90562==    by 0x1B4FDACA: _M_set_length (basic_string.h:164)
==90562==    by 0x1B4FDACA: basic_string (basic_string.h:384)
==90562==    by 0x1B4FDACA: gr::block::block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::shared_ptr<gr::io_signature>, boost::shared_ptr<gr::io_signature>) (block.cc:57)
==90562==    by 0x2949F845: gr::ettus::rfnoc_block::rfnoc_block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rfnoc_block_impl.cc:137)
==90562==    by 0x294C932D: gr::ettus::rfnoc_radio_impl::rfnoc_radio_impl(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:54)
==90562==    by 0x294C8FF1: gr::ettus::rfnoc_radio::make(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:39)
==90562==    by 0x2910C6F2: _wrap_rfnoc_radio_make (ettus_swigPYTHON_wrap.cxx:30572)
==90562==    by 0x4C4689: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4CA098: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4DE6FD: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F492D: ??? (in /usr/bin/python2.7)
==90562==  Address 0x20461c00 is 16 bytes after a block of size 1,200 in arena "client"
==90562== 
==90562== Invalid write of size 1
==90562==    at 0x1B4FDAD5: assign (char_traits.h:243)
==90562==    by 0x1B4FDAD5: _M_set_length (basic_string.h:165)
==90562==    by 0x1B4FDAD5: basic_string (basic_string.h:384)
==90562==    by 0x1B4FDAD5: gr::block::block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::shared_ptr<gr::io_signature>, boost::shared_ptr<gr::io_signature>) (block.cc:57)
==90562==    by 0x2949F845: gr::ettus::rfnoc_block::rfnoc_block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rfnoc_block_impl.cc:137)
==90562==    by 0x294C932D: gr::ettus::rfnoc_radio_impl::rfnoc_radio_impl(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:54)
==90562==    by 0x294C8FF1: gr::ettus::rfnoc_radio::make(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:39)
==90562==    by 0x2910C6F2: _wrap_rfnoc_radio_make (ettus_swigPYTHON_wrap.cxx:30572)
==90562==    by 0x4C4689: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4CA098: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4DE6FD: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F492D: ??? (in /usr/bin/python2.7)
==90562==  Address 0x20461c08 is 24 bytes after a block of size 1,200 in arena "client"
==90562== 
==90562== Invalid write of size 8
==90562==    at 0x1B4FDAE1: _Alloc_hider (basic_string.h:109)
==90562==    by 0x1B4FDAE1: basic_string (basic_string.h:383)
==90562==    by 0x1B4FDAE1: gr::block::block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::shared_ptr<gr::io_signature>, boost::shared_ptr<gr::io_signature>) (block.cc:57)
==90562==    by 0x2949F845: gr::ettus::rfnoc_block::rfnoc_block(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rfnoc_block_impl.cc:137)
==90562==    by 0x294C932D: gr::ettus::rfnoc_radio_impl::rfnoc_radio_impl(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:54)
==90562==    by 0x294C8FF1: gr::ettus::rfnoc_radio::make(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:39)
==90562==    by 0x2910C6F2: _wrap_rfnoc_radio_make (ettus_swigPYTHON_wrap.cxx:30572)
==90562==    by 0x4C4689: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4CA098: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4DE6FD: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F492D: ??? (in /usr/bin/python2.7)
==90562==  Address 0x20461bf8 is 16 bytes after a block of size 1,192 alloc'd
==90562==    at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==90562==    by 0x294C8FCB: gr::ettus::rfnoc_radio::make(boost::shared_ptr<gr::ettus::device3> const&, uhd::stream_args_t const&, uhd::stream_args_t const&, int, int) (rfnoc_radio_impl.cc:38)
==90562==    by 0x2910C6F2: _wrap_rfnoc_radio_make (ettus_swigPYTHON_wrap.cxx:30572)
==90562==    by 0x4C4689: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4CA098: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==90562==    by 0x4C2764: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==90562==    by 0x4DE6FD: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F492D: ??? (in /usr/bin/python2.7)
==90562==    by 0x4B0CB2: PyObject_Call (in /usr/bin/python2.7)
==90562==    by 0x4F46A6: ??? (in /usr/bin/python2.7)
==90562== 

valgrind: m_mallocfree.c:303 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 1264, hi = 1024.
This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap metadata.  If you fix any
invalid writes reported by Memcheck, this assertion failure will
probably go away.  Please try that before reporting this as a bug.
  • GDB coredump backtrace output:
Core was generated by `/usr/bin/python2 -uc import runpy; runpy.run_path('/media/filer/home/ccollineau'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f8970b57d86 in ?? ()
(gdb) bt
#0  0x00007f8970b57d86 in ?? ()
#1  0x00007f896e6041e7 in std::_Deque_base<std::pair<char const*, unsigned int>, std::allocator<std::pair<char const*, unsigned int> > >::_Deque_base (
    this=0x7ffc8e3be4a0) at /usr/include/c++/5/bits/stl_deque.h:490
#2  std::deque<std::pair<char const*, unsigned int>, std::allocator<std::pair<char const*, unsigned int> > >::deque (this=0x7ffc8e3be4a0)
    at /usr/include/c++/5/bits/stl_deque.h:883
#3  boost::assign_detail::generic_list<std::pair<char const*, unsigned int> >::generic_list (this=0x7ffc8e3be4a0) at /usr/include/boost/assign/list_of.hpp:332
#4  boost::assign::map_list_of<char [16], unsigned int> (k=..., t=@0x7f896ec9fa2c: 129) at /usr/include/boost/assign/list_of.hpp:655
#5  0x00007f896e5eb7bf in __static_initialization_and_destruction_0 (__initialize_p=__initialize_p@entry=1, __priority=__priority@entry=65535)
    at /media/filer/home/ccollineau/RFNOC/uhd/host/include/uhd/rfnoc/constants.hpp:93
#6  0x00007f896e5ff131 in _GLOBAL__sub_I_block_ctrl_base.cpp(void) () at /media/filer/home/ccollineau/RFNOC/uhd/host/lib/rfnoc/block_ctrl_base.cpp:588
#7  0x00007f897e0006ba in call_init (l=<optimized out>, argc=argc@entry=3, argv=argv@entry=0x7ffc8e3c0cb8, env=env@entry=0x21d39f0) at dl-init.c:72
#8  0x00007f897e0007cb in call_init (env=0x21d39f0, argv=0x7ffc8e3c0cb8, argc=3, l=<optimized out>) at dl-init.c:30
#9  _dl_init (main_map=main_map@entry=0x2b4f640, argc=3, argv=0x7ffc8e3c0cb8, env=0x21d39f0) at dl-init.c:120
#10 0x00007f897e0058e2 in dl_open_worker (a=a@entry=0x7ffc8e3be8b0) at dl-open.c:575
#11 0x00007f897e000564 in _dl_catch_error (objname=objname@entry=0x7ffc8e3be8a0, errstring=errstring@entry=0x7ffc8e3be8a8, mallocedp=mallocedp@entry=0x7ffc8e3be89f, 
    operate=operate@entry=0x7f897e0054d0 <dl_open_worker>, args=args@entry=0x7ffc8e3be8b0) at dl-error.c:187
#12 0x00007f897e004da9 in _dl_open (file=0x7f8970d2a5d4 "/media/filer/home/ccollineau/RFNOC/install/lib/python2.7/dist-packages/ettus/_ettus_swig.so", 
    mode=-2147483646, caller_dlopen=0x5231c3 <_PyImport_GetDynLoadFunc+243>, nsid=-2, argc=<optimized out>, argv=<optimized out>, env=0x21d39f0) at dl-open.c:660
#13 0x00007f897d805f09 in dlopen_doit (a=a@entry=0x7ffc8e3beae0) at dlopen.c:66
#14 0x00007f897e000564 in _dl_catch_error (objname=0x1fe7ff0, errstring=0x1fe7ff8, mallocedp=0x1fe7fe8, operate=0x7f897d805eb0 <dlopen_doit>, args=0x7ffc8e3beae0)
    at dl-error.c:187
#15 0x00007f897d806571 in _dlerror_run (operate=operate@entry=0x7f897d805eb0 <dlopen_doit>, args=args@entry=0x7ffc8e3beae0) at dlerror.c:163
#16 0x00007f897d805fa1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
#17 0x00000000005231c3 in _PyImport_GetDynLoadFunc ()
#18 0x0000000000522d6f in _PyImport_LoadDynamicModule ()
#19 0x00000000005c7175 in ?? ()
#20 0x00000000004c468a in PyEval_EvalFrameEx ()
#21 0x00000000004c9d8f in PyEval_EvalFrameEx ()
#22 0x00000000004c2765 in PyEval_EvalCodeEx ()
#23 0x00000000004c2509 in PyEval_EvalCode ()
#24 0x00000000004c061b in PyImport_ExecCodeModuleEx ()
#25 0x00000000004bd6ee in ?? ()
#26 0x00000000004af215 in PyImport_ImportModuleLevel ()
#27 0x00000000004b0f78 in ?? ()
#28 0x00000000004b0cb3 in PyObject_Call ()
#29 0x00000000004ce5d0 in PyEval_CallObjectWithKeywords ()
#30 0x00000000004c6ed6 in PyEval_EvalFrameEx ()
#31 0x00000000004c2765 in PyEval_EvalCodeEx ()
#32 0x00000000004c2509 in PyEval_EvalCode ()
#33 0x00000000004c061b in PyImport_ExecCodeModuleEx ()
#34 0x00000000004bd6ee in ?? ()
#35 0x00000000004be9e7 in ?? ()
#36 0x00000000004af215 in PyImport_ImportModuleLevel ()
#37 0x00000000004b0f78 in ?? ()
#38 0x00000000004b0cb3 in PyObject_Call ()
#39 0x00000000004ce5d0 in PyEval_CallObjectWithKeywords ()
#40 0x00000000004c6ed6 in PyEval_EvalFrameEx ()
#41 0x00000000004c2765 in PyEval_EvalCodeEx ()
#42 0x00000000004c2509 in PyEval_EvalCode ()
#43 0x0000000000521186 in PyRun_StringFlags ()
---Type <return> to continue, or q <return> to quit---
#44 0x00000000004cdd59 in PyEval_EvalFrameEx ()
#45 0x00000000004c2765 in PyEval_EvalCodeEx ()
#46 0x00000000004ca8d1 in PyEval_EvalFrameEx ()
#47 0x00000000004c2765 in PyEval_EvalCodeEx ()
#48 0x00000000004ca8d1 in PyEval_EvalFrameEx ()
#49 0x00000000004c2765 in PyEval_EvalCodeEx ()
#50 0x00000000004c84db in PyEval_EvalFrameEx ()
#51 0x00000000004c2765 in PyEval_EvalCodeEx ()
#52 0x00000000004ca099 in PyEval_EvalFrameEx ()
#53 0x00000000004c2765 in PyEval_EvalCodeEx ()
#54 0x00000000004ca099 in PyEval_EvalFrameEx ()
#55 0x00000000004c2765 in PyEval_EvalCodeEx ()
#56 0x00000000004ca099 in PyEval_EvalFrameEx ()
#57 0x00000000004c2765 in PyEval_EvalCodeEx ()
#58 0x00000000004c2509 in PyEval_EvalCode ()
#59 0x0000000000521186 in PyRun_StringFlags ()
#60 0x0000000000521dfc in PyRun_SimpleStringFlags ()
#61 0x000000000049de94 in Py_Main ()
#62 0x00007f897da29830 in __libc_start_main (main=0x49dab0 <main>, argc=3, argv=0x7ffc8e3c0cb8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7ffc8e3c0ca8) at ../csu/libc-start.c:291
#63 0x000000000049d9d9 in _start ()

I'm running into a segfault with rfnocmodtool as well running Ubuntu 16.10. GDB dump below:

Core was generated by `/usr/bin/python2 /home/adanowitz/rfnoc/bin/rfnocmodtool'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 strchr () at ../sysdeps/x86_64/multiarch/../strchr.S:32
32 ../sysdeps/x86_64/multiarch/../strchr.S: No such file or directory.
(gdb) bt
#0 0x00007f1e97626da3 in strchr ()
at ../sysdeps/x86_64/multiarch/../strchr.S:32
#1 0x00007f1e97620762 in dl_open_worker (a=a@entry=0x7ffca08466b0)
at dl-open.c:212
#2 0x00007f1e9761b874 in _dl_catch_error (objname=objname@entry=0x7ffca08466a0, errstring=errstring@entry=0x7ffca08466a8, mallocedp=mallocedp@entry=0x7ffca084669f, operate=operate@entry=0x7f1e97620720 <dl_open_worker>, args=args@entry=0x7ffca08466b0) at dl-error.c:187
#3 0x00007f1e97620059 in _dl_open (file=0x557c0000000e <error: Cannot access memory at address 0x557c0000000e>, mode=-2147483647, caller_dlopen=0x7f1e94bc6dd0 <load_module_path(boost::filesystem::path const&)+96>, nsid=-2, argc=, argv=, env=0x7ffca0848950) at dl-open.c:660
#4 0x00007f1e96e22ee9 in dlopen_doit (a=a@entry=0x7ffca08468e0) at dlopen.c:66
#5 0x00007f1e9761b874 in _dl_catch_error (objname=0x557c2a4f6e40, errstring=0x557c2a4f6e48, mallocedp=0x557c2a4f6e38, operate=0x7f1e96e22e90 <dlopen_doit>, args=0x7ffca08468e0) at dl-error.c:187
#6 0x00007f1e96e23581 in _dlerror_run (operate=operate@entry=0x7f1e96e22e90 <dlopen_doit>, args=args@entry=0x7ffca08468e0) at dlerror.c:163
#7 0x00007f1e96e22f82 in __dlopen (file=, mode=mode@entry=1)
at dlopen.c:87
#8 0x00007f1e94bc6dd0 in load_module (file_name="")
at /home/adanowitz/rfnoc/src/uhd/host/lib/utils/load_modules.cpp:35
#9 0x00007f1e94bc6dd0 in load_module_path(boost::filesystem::path const&) (path---Type to continue, or q to quit---
=...) at /home/adanowitz/rfnoc/src/uhd/host/lib/utils/load_modules.cpp:93
#10 0x00007f1e94bc71f8 in load_modules() ()
at /home/adanowitz/rfnoc/src/uhd/host/lib/utils/load_modules.cpp:105
#11 0x00007f1e94bd4a99 in _uhd_static_fixture::_uhd_static_fixture(void ()(), char const) (this=, fcn=, name=0x7f1e94cd6c0d "load_modules") at /home/adanowitz/rfnoc/src/uhd/host/lib/utils/static.cpp:23
#12 0x00007f1e9761b9ca in call_init (l=, argc=argc@entry=2, argv=argv@entry=0x7ffca0848938, env=env@entry=0x7ffca0848950) at dl-init.c:72
#13 0x00007f1e9761badb in call_init (env=0x7ffca0848950, argv=0x7ffca0848938, argc=2, l=) at dl-init.c:30
#14 0x00007f1e9761badb in _dl_init (main_map=main_map@entry=0x557c2a5099c0, argc=2, argv=0x7ffca0848938, env=0x7ffca0848950) at dl-init.c:120
#15 0x00007f1e97620a76 in dl_open_worker (a=a@entry=0x7ffca0847050)
at dl-open.c:575
#16 0x00007f1e9761b874 in _dl_catch_error (objname=objname@entry=0x7ffca0847040, errstring=errstring@entry=0x7ffca0847048, mallocedp=mallocedp@entry=0x7ffca084703f, operate=operate@entry=0x7f1e97620720 <dl_open_worker>, args=args@entry=0x7ffca0847050) at dl-error.c:187
#17 0x00007f1e97620059 in _dl_open (file=0x557c2a5102a0 "/home/adanowitz/rfnoc/lib/python2.7/dist-packages/ettus/_ettus_swig.so", mode=-2147483646, caller_dlopen=0x557c28c12516 <_PyImport_GetDynLoadFunc+246>, nsid=-2, argc=, argv=, env=0x7ffca0848950) at dl-open.c:660
#18 0x00007f1e96e22ee9 in dlopen_doit (a=a@entry=0x7ffca0847280) at dlopen.c:66
#19 0x00007f1e9761b874 in _dl_catch_error (objname=0x557c2a4f6e40, errstring=0x557c2a4f6e48, mallocedp=0x557c2a4f6e38, operate=0x7f1e96e22e90 <dlopen_doit>, args=0x7ffca0847280) at dl-error.c:187
#20 0x00007f1e96e23581 in _dlerror_run (operate=operate@entry=0x7f1e96e22e90 <dlopen_doit>, args=args@entry=0x7ffca0847280) at dlerror.c:163
#21 0x00007f1e96e22f82 in __dlopen (file=, mode=)
at dlopen.c:87
#22 0x0000557c28c12516 in _PyImport_GetDynLoadFunc ()
#23 0x0000557c28c120d2 in _PyImport_LoadDynamicModule ()
#24 0x0000557c28b9e2f2 in ()
#25 0x0000557c28b9d6a8 in PyImport_ImportModuleLevel ()
#26 0x0000557c28b9f758 in ()
#27 0x0000557c28bb336a in PyEval_EvalFrameEx ()
#28 0x0000557c28bb14e5 in PyEval_EvalCodeEx ()
#29 0x0000557c28bb8e99 in PyEval_EvalFrameEx ()
#30 0x0000557c28bb8b9f in PyEval_EvalFrameEx ()
#31 0x0000557c28bb14e5 in PyEval_EvalCodeEx ()
#32 0x0000557c28bb1289 in PyEval_EvalCode ()
#33 0x0000557c28baf38e in PyImport_ExecCodeModuleEx ()
#34 0x0000557c28bac20a in ()
---Type to continue, or q to quit---
#35 0x0000557c28b9d9c7 in PyImport_ImportModuleLevel ()
#36 0x0000557c28b9f758 in ()
#37 0x0000557c28b9f493 in PyObject_Call ()
#38 0x0000557c28bbd460 in PyEval_CallObjectWithKeywords ()
#39 0x0000557c28bb5d37 in PyEval_EvalFrameEx ()
#40 0x0000557c28bb14e5 in PyEval_EvalCodeEx ()
#41 0x0000557c28bb1289 in PyEval_EvalCode ()
#42 0x0000557c28baf38e in PyImport_ExecCodeModuleEx ()
#43 0x0000557c28bac20a in ()
#44 0x0000557c28bad4e6 in ()
#45 0x0000557c28b9d9c7 in PyImport_ImportModuleLevel ()
#46 0x0000557c28b9f758 in ()
#47 0x0000557c28b9f493 in PyObject_Call ()
#48 0x0000557c28bbd460 in PyEval_CallObjectWithKeywords ()
#49 0x0000557c28bb5d37 in PyEval_EvalFrameEx ()
#50 0x0000557c28bb14e5 in PyEval_EvalCodeEx ()
#51 0x0000557c28bb1289 in PyEval_EvalCode ()
#52 0x0000557c28be113f in ()
#53 0x0000557c28bdc032 in PyRun_FileExFlags ()
#54 0x0000557c28bdbb7e in PyRun_SimpleFileExFlags ()
#55 0x0000557c28b8ca02 in Py_Main ()
#56 0x00007f1e970463f1 in __libc_start_main (main=
0x557c28b8c330

, argc=2, argv=0x7ffca0848938, init=, fini=, rtld_fini=, stack_end=0x7ffca0848928)
at ../csu/libc-start.c:291
#57 0x0000557c28b8c22a in _start ()

Actually, make that ubuntu 17.04, I was mistaken on my version. @primercuervo

Closing this issue as it has became stale and we have not been able to reproduce it. If this issue comes up for anyone else, please email us at support@ettus.com.