<div dir="ltr"><div dir="ltr">Hey Héctor,</div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-6874048365838888947"><div lang="ES" style="overflow-wrap: break-word;"><div class="m_-6964447716312237692WordSection1">
<p class="MsoNormal"><span lang="EN-US">We are using ModemManager 1.18.8 library and sometimes we got segmentation fault when calling mm_object_get_modem function. It happens from time to time, no clues about circumstances, as our code is continuously inquiring
 for modem object in this function:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">MMModemPtr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">ModemManagerFacade</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">::</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">getModemPtr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">const</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">std</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">::</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">string</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">&</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(156,220,254)">imei</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">)<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">{<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">    MMObject
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">*</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">object
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">=</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">getObject</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(imei);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">if</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
 (object </span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">==</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">nullptr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">)
 {<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">       
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">return</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">MMModemPtr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">nullptr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">,
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">&</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">g_object_unref);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">    }<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)"><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">return</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">MMModemPtr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">mm_object_get_modem</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(object),
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">&</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">g_object_unref);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">It returns a MMModemPtr type, which is a unique pointer:<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">using</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">MMModemPtr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">=</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">std</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">::</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">unique_ptr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)"><</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">MMModem</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">,
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">decltype</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">&</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">g_object_unref)>;</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(106,153,85)">///<
 MMModem Unique pointer with custom deleter</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">and it’s checked every time that function is called as in:<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">    MMModemPtr modem
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">=</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">getModemPtr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(imei);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">if</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
 (modem </span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">==</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">nullptr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">)
 {<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">       
</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">return</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)"> DPY_UNAVAILABLE;<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">    }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">MMobject is stored in a map<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">std</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">::map</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)"><</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">std</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">::string,
 MMObject</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">*></span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
 mImeiToObjectMap;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">and obtained in <u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">MMObject</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">*</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">ModemManagerFacade</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">::</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">getObject</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">std</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">::</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(78,201,176)">string</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(156,220,254)">imei</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">)<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">{<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(106,153,85)">/* Some previous checkings …<u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:35.4pt;line-height:14.25pt;background:rgb(31,31,31)">
<span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(106,153,85)">…and*/</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)"><u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">auto</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
 it </span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">=</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(156,220,254)">mImeiToObjectMap</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">.</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">find</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">(imei);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">if</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
 (it </span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(212,212,212)">==</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(156,220,254)">mImeiToObjectMap</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">.</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(220,220,170)">end</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">())
 {<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">       
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">return</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">
</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(86,156,214)">nullptr</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">;<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">}<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">   
</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(197,134,192)">return</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)"> (</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(156,220,254)">it</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">-></span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(156,220,254)">second</span><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:rgb(31,31,31)"><span style="font-size:10.5pt;font-family:Consolas;color:rgb(204,204,204)">}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">But I don’t think MMobject pointer is the problem as it’s checked inside mm_object_get_modem function:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">MMModem *<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">mm_object_get_modem (MMObject *self)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">{<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">    MMModem *modem;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">    g_return_val_if_fail (MM_IS_OBJECT (MM_GDBUS_OBJECT (self)), NULL);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">    modem = (MMModem *)mm_gdbus_object_get_modem (MM_GDBUS_OBJECT (self));<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">    g_warn_if_fail (MM_IS_MODEM (modem));<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">    return modem;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New"">}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">and the backtrace shows that the program terminates after calling mm_gdbus_object_get_modem<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">Program terminated with signal SIGSEGV, Segmentation fault.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#0  0x0000ffffad048ab8 in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">[Current thread is 1 (LWP 10802)]<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">(gdb) bt<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#0  0x0000ffffad048ab8 in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#1  0x0000ffffad2f5824 in ?? () from /usr/lib/libgio-2.0.so.0</span> </p></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-6874048365838888947"><div lang="ES" style="overflow-wrap: break-word;"><div class="m_-6964447716312237692WordSection1"><p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New""><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#2  0x0000ffffad4629dc in mm_gdbus_object_get_modem () from /usr/lib/libmm-glib.so.0<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#3  0x0000ffffad422e2c in mm_object_get_modem () from /usr/lib/libmm-glib.so.0<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#4  0x0000aaaabff73124 in ModemManagerFacade::getModemPtr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#5  0x0000aaaabff745f0 in ModemManagerFacade::getDominantTechnologySignalQuality(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, dpyModem::SignalQuality&,
 bool&) ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#6  0x0000aaaabff5d97c in ModemManagerDevice::update_signalQuality() ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#7  0x0000aaaabffbb050 in ModemSupervisor::updateModemParameters() ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#8  0x0000aaaabffbbc44 in ModemSupervisor::checkModemStatus(boost::system::error_code const&, dpyModem::ModemState) ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#9  0x0000aaaabffbcfe8 in boost::asio::detail::wait_handler<boost::_bi::bind_t<void, boost::_mfi::mf2<void, ModemSupervisor, boost::system::error_code const&, dpyModem::ModemState>, boost::_bi::list3<boost::_bi::value<ModemSupervisor*>,
 boost::arg<1> (*)(), boost::_bi::value<dpyModem::ModemState> > > >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#10 0x0000aaaabff0de38 in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code
 const&) ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#11 0x0000aaaabffe704c in ModemService::operator()(boost::application::basic_context&) ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#12 0x0000aaaabffd019c in int boost::application::launch<boost::application::common, boost::application::auto_handler<ModemService>, boost::application::basic_context>(boost::application::auto_handler<ModemService>&,
 boost::application::basic_context&, boost::system::error_code&) ()<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">#13 0x0000aaaabfedc9a0 in main ()</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Any ideas about why this can be happening? Has it ever been seen before?</span></p></div></div></div></blockquote><div><br></div><div><br></div><div><div>i'd bet this is some memory corruption happening somewhere. Is the issue easily reproducible? maybe you can prepare a small reproducer program that triggers this issue for us to analyze? Otherwise, I suggest you try to run under valgrind to see if you get any memory related issues reported there.</div><div><br></div><div>The only thing I can say about this issue is that I don't recall anything similar to this reported lately in the past years. libmm-glib is used by multiple other projects, so there's a high chance that the issue is indeed a memory corruption somewhere in your project. Maybe a double free, or a use-after-free, or something like that.</div><div><br></div><div>Also please note that the g_return_if_fail() calls may be disabled in the build! you should ensure these are being used in your build before assuming they're being called.</div><div><br></div><div>Sorry I cannot help more :/</div></div><div><br></div></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Aleksander</div></div></div></div>