# libmediasoup segmentation fault

**URL:** <https://mediasoup.discourse.group/t/libmediasoup-segmentation-fault/1521>\
**Category:** mediasoup libraries\
**Created:** [July 31, 2020, 11:12pm UTC](https://mediasoup.discourse.group/t/libmediasoup-segmentation-fault/1521 "2020-07-31T23:12:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nebulasleuth](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/nebulasleuth/32/470_2.png) [@nebulasleuth](https://mediasoup.discourse.group/u/nebulasleuth)\
**Post date:** [July 31, 2020, 11:12pm UTC](https://mediasoup.discourse.group/t/libmediasoup-segmentation-fault/1521/1 "2020-07-31T23:12:45Z")

</div>

I am attempting to build a re-encoder using libmediasoup. I am working in ubuntu 18.04lts and have successfully compiled libwebrtc and libmediasoupclient. (A few warnings, not sure if that is normal)

In general all calls to the library have worked fine, until I got to the Consume on the receive transport.

I am getting a segmentation fault when I call Transport-\>Consume for the first time. After calling it does call my Consumer::Listener.OnConnect() and after it returns is when the segment fault occurs.

It doesn’t matter if the OnConnect does anything or not.

here is the call stack for reference. Any ideas of what the issue might be?

```auto
__gnu_cxx::__ exchange_and_add(volatile _Atomic_word * __mem, int__ val) (/usr/include/c++/7/ext/atomicity.h:49)
__gnu_cxx::__ exchange_and_add_dispatch(_Atomic_word * __mem, int__ val) (/usr/include/c++/7/ext/atomicity.h:82)
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release(std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2> * const this) (/usr/include/c++/7/bits/shared_ptr_base.h:151)
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> * const this) (/usr/include/c++/7/bits/shared_ptr_base.h:684)
std:: __shared_ptr<std::__ future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (Unknown Source:0)
std:: __shared_ptr<std::__ future_base::_State_baseV2, (__gnu_cxx::_Lock_policy)2>::reset() (Unknown Source:0)
std::__basic_future<void>::_Reset::~_Reset() (Unknown Source:0)
std::future<void>::get() (Unknown Source:0)
mediasoupclient::Transport::OnConnect(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>&) (Unknown Source:0)
mediasoupclient::Handler::SetupTransport(std:: __cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nlohmann::basic_json<std::map, std::vector, std::__ cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>&) (Unknown Source:0)
mediasoupclient::RecvHandler::Receive(std:: __cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__ cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const*) (Unknown Source:0)
mediasoupclient::RecvTransport::Consume(mediasoupclient::Consumer::Listener*, std:: __cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__ cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std:: __cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nlohmann::basic_json<std::map, std::vector, std::__ cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>*, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const&) (Unknown Source:0)
BNCEncoder::encoderTask::handleReply(BNCEncoder::encoderTask * const this, int cmdid, njson & data) (/home/mike/repos/bncrecode/src/encoderTask.cpp:39)

```

---

<div class="post-metadata">

**Author:** ![nebulasleuth](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/nebulasleuth/32/470_2.png) [@nebulasleuth](https://mediasoup.discourse.group/u/nebulasleuth)\
**Post date:** [August 1, 2020, 4:13pm UTC](https://mediasoup.discourse.group/t/libmediasoup-segmentation-fault/1521/2 "2020-08-01T16:13:41Z")

</div>

Doh!!! Nevermind. Dumb error not returning promise correctly from OnConnect.
