tmakkonen / sipcmd

sipcmd
327 stars 108 forks source link

segmentaion fault #55

Open bobdog6861 opened 6 years ago

bobdog6861 commented 6 years ago

valgrind says:

CreateMediaStream TestChannel[ Call[C02e1f8fb1]-EP[L22cf95bf2] - 0x3c0550f0 ] assert.cxx(112) PWLib Assertion fail: Attempt to do simultaneous reads from multiple threads: os_handle=24, thread ID=0x1f385700, file ptlib/unix/channel.cxx, line 110OnOpenMediaStream recording media from local

TestPhone::Main: calling "sip:403#######@192.168.0.12" for 10 Assertion fail: Attempt to do simultaneous reads from multiple threads: os_handle=24, thread ID=0x1f385700, file ptlib/unix/channel.cxx, line 110

I have the latest version of ptlib_dev, any ideas ?

S-trace commented 6 years ago

Try this patch:


Author: S-trace <S-trace@list.ru>
Date:   Mon Nov 20 16:19:56 2017 +0300

    [CHANNELS] Update written value before CollectAverage call

    Fixes possible SIGSEGV crashes

diff --git a/src/channels.cpp b/src/channels.cpp
index 660800e..edc680a 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -460,9 +460,9 @@ bool RawMediaStream::WriteData(const BYTE *data,
             cout << "silence write failed!" << endl;
             return false;
         }
+        written = m_channel->GetLastWriteCount();
         CollectAverage(silence, written);
     }
-    written = m_channel->GetLastWriteCount();
     // cout << "wrote " << written << endl;
     return true;
     //return OpalRawMediaStream::WriteData(data, length, written);
ghost commented 6 years ago

I was facing the same issue. This solved it for me

M3d1c5 commented 6 years ago

This patch solved it for me, too.

Race666 commented 5 years ago

Same here. Thx.