paullouisageneau / libdatachannel

C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets
https://libdatachannel.org/
Mozilla Public License 2.0
1.73k stars 353 forks source link

crash #1243

Open magic-tab-01 opened 2 weeks ago

magic-tab-01 commented 2 weeks ago

ENV: PC1 : python3 signaling-server.py 192.168.0.80:8888 PC2: ./client -w 124.70.42.247 -x 8888 pc3:./client -w 124.70.42.247 -x 8888 after i input the remote ID for offer, i got crash, could you kindly help check?

the log as follows:

 ./client -w 124.70.42.247 -x 8888
/home/magic/work/opensource/libdatachannel/deps/plog/include/plog/Util.h:595:30: runtime error: downcast of address 0xb00009d0 which does not point to an object of type 'Logger'
0xb00009d0: note: object has invalid vptr
 01 00 00 27  00 00 00 00 be be be be  be be be be be be be be  be be be be 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~
              invalid vptr
STUN server is stun:stun.l.google.com:19302
The local ID is D101
2024-08-26 08:01:56.366 DEBUG [23887] [rtc::impl::Init::doInit@113] Global initialization
2024-08-26 08:01:56.368 DEBUG [23887] [rtc::impl::Init::doInit@123] Spawning 4 threads
2024-08-26 08:01:56.382 DEBUG [23903] [rtc::impl::PollService::runLoop@164] Poll service started
2024-08-26 08:01:56.389 VERB  [23903] [rtc::impl::PollService::runLoop@182] Entering poll
2024-08-26 08:01:56.675 VERB  [23887] [rtc::impl::WebSocket::WebSocket@42] Creating WebSocket
WebSocket URL is ws://124.70.42.247:8888/D101
2024-08-26 08:01:56.870 VERB  [23887] [rtc::impl::WebSocket::open@72] Opening WebSocket to URL: ws://124.70.42.247:8888/D101
2024-08-26 08:01:56.935 DEBUG [23887] [rtc::impl::TcpTransport::TcpTransport@57] Initializing TCP transport
2024-08-26 08:01:56.945 VERB  [23887] [rtc::impl::WebSocket::setTcpTransport@225] Starting TCP transport
2024-08-26 08:01:56.989 DEBUG [23887] [rtc::impl::TcpTransport::connect@150] Connecting to 124.70.42.247:8888
Waiting for signaling to be connected...
2024-08-26 08:01:57.042 DEBUG [23900] [rtc::impl::TcpTransport::resolve@164] Resolving 124.70.42.247:8888
2024-08-26 08:01:57.072 DEBUG [23901] [rtc::impl::TcpTransport::createSocket@277] Trying address 124.70.42.247:8888
2024-08-26 08:01:57.074 VERB  [23901] [rtc::impl::TcpTransport::createSocket@280] Creating TCP socket
2024-08-26 08:01:57.089 VERB  [23901] [rtc::impl::PollService::add@59] Registering socket in poll service, direction=out
2024-08-26 08:01:57.118 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:01:57.135 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9959ms
2024-08-26 08:01:57.136 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:01:57.137 VERB  [23903] [rtc::impl::PollService::process@141] Poll out event
2024-08-26 08:01:57.141 INFO  [23903] [rtc::impl::TcpTransport::attempt@256] TCP connected
2024-08-26 08:01:57.147 VERB  [23903] [rtc::impl::WebSocket::initWsTransport@396] Starting WebSocket transport
2024-08-26 08:01:57.164 DEBUG [23903] [rtc::impl::WsTransport::WsTransport@61] Initializing WebSocket transport
2024-08-26 08:01:57.175 VERB  [23903] [rtc::impl::Transport::registerIncoming@27] Registering incoming callback
2024-08-26 08:01:57.185 DEBUG [23903] [rtc::impl::WsTransport::sendHttpRequest@201] Sending WebSocket HTTP request
2024-08-26 08:01:57.241 VERB  [23903] [rtc::impl::TcpTransport::send@115] Send size=161
2024-08-26 08:01:57.251 VERB  [23903] [rtc::impl::PollService::add@59] Registering socket in poll service, direction=in
2024-08-26 08:01:57.254 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9998ms
2024-08-26 08:01:57.255 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:01:57.255 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9998ms
2024-08-26 08:01:57.298 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:01:57.298 VERB  [23903] [rtc::impl::PollService::process@137] Poll in event
2024-08-26 08:01:57.319 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=202
2024-08-26 08:01:57.329 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=202
2024-08-26 08:01:57.342 DEBUG [23903] [rtc::impl::WsHandshake::parseHttpResponse@209] WebSocket response code=101
2024-08-26 08:01:57.350 INFO  [23903] [rtc::impl::WsTransport::incoming@129] WebSocket client-side open
2024-08-26 08:01:57.351 DEBUG [23903] [rtc::impl::WebSocket::initWsTransport@434] WebSocket open
WebSocket connected, signaling ready
Enter a remote ID to send an offer:
2024-08-26 08:01:57.381 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9918ms
2024-08-26 08:02:07.304 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:07.313 VERB  [23903] [rtc::impl::PollService::process@146] Poll timeout event
2024-08-26 08:02:07.318 VERB  [23903] [rtc::impl::TcpTransport::process@423] TCP is idle
2024-08-26 08:02:07.336 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=0
2024-08-26 08:02:07.337 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=0
2024-08-26 08:02:07.337 DEBUG [23903] [rtc::impl::WsTransport::incoming@146] WebSocket sending ping
2024-08-26 08:02:07.352 DEBUG [23903] [rtc::impl::WsTransport::sendFrame@375] WebSocket sending frame: opcode=9, length=4
2024-08-26 08:02:07.353 VERB  [23903] [rtc::impl::TcpTransport::send@115] Send size=10
2024-08-26 08:02:07.355 VERB  [23903] [rtc::impl::PollService::add@59] Registering socket in poll service, direction=in
2024-08-26 08:02:07.355 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=10000ms
2024-08-26 08:02:07.356 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:07.356 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9999ms
2024-08-26 08:02:07.408 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:07.409 VERB  [23903] [rtc::impl::PollService::process@137] Poll in event
2024-08-26 08:02:07.410 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=6
2024-08-26 08:02:07.410 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=6
2024-08-26 08:02:07.413 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@302] WebSocket received frame: opcode=10, length=4
2024-08-26 08:02:07.415 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@354] WebSocket received pong
2024-08-26 08:02:07.417 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9993ms
2024-08-26 08:02:17.298 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:17.298 VERB  [23903] [rtc::impl::PollService::process@137] Poll in event
2024-08-26 08:02:17.299 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=6
2024-08-26 08:02:17.299 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=6
2024-08-26 08:02:17.299 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@302] WebSocket received frame: opcode=9, length=4
2024-08-26 08:02:17.308 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@349] WebSocket received ping, sending pong
2024-08-26 08:02:17.308 DEBUG [23903] [rtc::impl::WsTransport::sendFrame@375] WebSocket sending frame: opcode=10, length=4
2024-08-26 08:02:17.309 VERB  [23903] [rtc::impl::TcpTransport::send@115] Send size=10
2024-08-26 08:02:17.310 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9989ms
2024-08-26 08:02:27.305 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:27.305 VERB  [23903] [rtc::impl::PollService::process@146] Poll timeout event
2024-08-26 08:02:27.305 VERB  [23903] [rtc::impl::TcpTransport::process@423] TCP is idle
2024-08-26 08:02:27.305 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=0
2024-08-26 08:02:27.306 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=0
2024-08-26 08:02:27.306 DEBUG [23903] [rtc::impl::WsTransport::incoming@146] WebSocket sending ping
2024-08-26 08:02:27.306 DEBUG [23903] [rtc::impl::WsTransport::sendFrame@375] WebSocket sending frame: opcode=9, length=4
2024-08-26 08:02:27.306 VERB  [23903] [rtc::impl::TcpTransport::send@115] Send size=10
2024-08-26 08:02:27.308 VERB  [23903] [rtc::impl::PollService::add@59] Registering socket in poll service, direction=in
2024-08-26 08:02:27.308 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=10000ms
2024-08-26 08:02:27.309 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:27.310 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9999ms
2024-08-26 08:02:27.354 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:27.355 VERB  [23903] [rtc::impl::PollService::process@137] Poll in event
2024-08-26 08:02:27.355 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=6
2024-08-26 08:02:27.356 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=6
2024-08-26 08:02:27.356 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@302] WebSocket received frame: opcode=10, length=4
2024-08-26 08:02:27.357 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@354] WebSocket received pong
2024-08-26 08:02:27.357 VERB  [23903] [rtc::impl::PollService::runLoop@179] Entering poll, timeout=9998ms
2024-08-26 08:02:29.146 VERB  [23903] [rtc::impl::PollService::runLoop@188] Exiting poll
2024-08-26 08:02:29.147 VERB  [23903] [rtc::impl::PollService::process@137] Poll in event
2024-08-26 08:02:29.147 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=532
2024-08-26 08:02:29.147 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=532
2024-08-26 08:02:29.147 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@302] WebSocket received frame: opcode=1, length=528
2024-08-26 08:02:29.155 DEBUG [23903] [rtc::impl::WsTransport::recvFrame@323] WebSocket finished message: type=text, size=528
Answering to rsaY
2024-08-26 08:02:29.330 VERB  [23903] [rtc::impl::PeerConnection::PeerConnection@50] Creating PeerConnection
2024-08-26 08:02:29.374 DEBUG [23902] [rtc::impl::Certificate::Generate@445] Generating certificate (OpenSSL)
2024-08-26 08:02:29.434 VERB  [23902] [rtc::impl::Certificate::Generate@461] Generating ECDSA P-256 key pair
2024-08-26 08:02:29.577 WARN  [23902] [rtc::impl::ThreadPool::schedule@105] Unable to allocate structure for ECDSA P-256 key pair
2024-08-26 08:02:29.692 VERB  [23903] [rtc::PeerConnection::setRemoteDescription@174] Setting remote description: v=0
o=rtc 398837489 0 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=msid-semantic:WMS *
a=ice-options:ice2,trickle
a=fingerprint:sha-256 D2:10:2A:E3:18:33:20:14:C1:77:C2:2D:41:9F:09:F6:32:D7:69:7A:32:42:50:CF:B5:69:E1:F4:0E:57:5E:8C
a=group:BUNDLE 0
a=msid-semantic:WMS *
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=mid:0
a=sendrecv
a=sctp-port:5000
a=max-message-size:262144
a=setup:actpass
a=ice-ufrag:ax9h
a=ice-pwd:ofML3y7UpmZy8eql8NbhJC

2024-08-26 08:02:29.716 VERB  [23903] [rtc::impl::PeerConnection::validateRemoteDescription@890] Remote description looks valid
2024-08-26 08:02:29.722 VERB  [23903] [rtc::impl::PeerConnection::initIceTransport@161] Starting ICE transport
2024-08-26 08:02:29.736 DEBUG [23903] [rtc::impl::IceTransport::IceTransport@58] Initializing ICE transport (libjuice)
2024-08-26 08:02:29.749 INFO  [23903] [rtc::impl::IceTransport::IceTransport@113] Using STUN server "stun.l.google.com:19302"
2024-08-26 08:02:29.757 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Creating agent
2024-08-26 08:02:29.764 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Created local description: ufrag="qi62", pwd="697A1q4dRlVhkjmWBtd250"
2024-08-26 08:02:29.786 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Setting remote SDP description: v=0
o=rtc 398837489 0 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic:WMS *
a=ice-options:ice2,trickle
a=group:BUNDLE 0
a=msid-semantic:WMS *
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=mid:0
a=sendrecv
a=sctp-port:5000
a=max-message-size:262144
a=setup:actpass
a=ice-ufrag:ax9h
a=ice-pwd:ofML3y7UpmZy8eql8NbhJC
a=fingerprint:sha-256 D2:10:2A:E3:18:33:20:14:C1:77:C2:2D:41:9F:09:F6:32:D7:69:7A:32:42:50:CF:B5:69:E1:F4:0E:57:5E:8C

2024-08-26 08:02:29.801 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Parsed remote description: ufrag="ax9h", pwd="ofML3y7UpmZy8eql8NbhJC", candidates=0
2024-08-26 08:02:29.803 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Assuming controlled mode
2024-08-26 08:02:29.804 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Unfreezing 0 existing candidate pairs
2024-08-26 08:02:29.804 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Adding 0 candidates from remote description
2024-08-26 08:02:29.841 INFO  [23903] [rtc::impl::PeerConnection::changeSignalingState@1293] Changed signaling state to have-remote-offer
2024-08-26 08:02:29.860 VERB  [23903] [rtc::PeerConnection::setLocalDescription@81] Setting local description, type=answer
2024-08-26 08:02:29.864 VERB  [23903] [rtc::impl::IceTransport::LogCallback@385] juice: Generated local SDP description: a=ice-ufrag:qi62
a=ice-pwd:697A1q4dRlVhkjmWBtd250
a=ice-options:ice2,trickle

2024-08-26 08:02:29.887 DEBUG [23903] [rtc::impl::PeerConnection::processLocalDescription@925] Reciprocating application in local description, mid="0"
2024-08-26 08:02:29.929 WARN  [23903] [rtc::impl::Channel::flushPendingMessages@76] Uncaught exception in callback: Unable to allocate structure for ECDSA P-256 key pair
2024-08-26 08:02:29.934 VERB  [23903] [rtc::impl::TcpTransport::incoming@123] Incoming size=277
2024-08-26 08:02:29.939 VERB  [23903] [rtc::impl::WsTransport::incoming@120] Incoming size=277
=================================================================
==23887==ERROR: AddressSanitizer: stack-use-after-scope on address 0xac5ecda8 at pc 0xb6a0f471 bp 0xac5ec910 sp 0xac5ec920
WRITE of size 1 at 0xac5ecda8 thread T5 (RTC poll)
    #0 0xb6a0f46f  (/usrdata/lib/libasan.so.4+0x4546f)
    #1 0xb24ae27f  (/usrdata/lib/libstdc++.so.6+0xbd27f)
    #2 0xb24ae3eb in std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_pad(char, int, std::ios_base&, char*, char const*, int&) const (/usrdata/lib/libstdc++.so.6+0xbd3eb)
    #3 0xb24aefd3 in std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_int<long>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const (/usrdata/lib/libstdc++.so.6+0xbdfd3)
    #4 0xb24af08d in std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const (/usrdata/lib/libstdc++.so.6+0xbe08d)
    #5 0xb24b677d in std::ostream& std::ostream::_M_insert<long>(long) (/usrdata/lib/libstdc++.so.6+0xc577d)
    #6 0xb37d232f in plog::TxtFormatterImpl<false>::format[abi:cxx11](plog::Record const&) (/usrdata/lib/libdatachannel.so.0.21+0x103b32f)
    #7 0xb37e1d27 in plog::ColorConsoleAppender<plog::TxtFormatter>::write(plog::Record const&) (/usrdata/lib/libdatachannel.so.0.21+0x104ad27)
    #8 0xb45bab37 in rtc::impl::WsTransport::recvFrame(rtc::impl::WsTransport::Frame const&) (/usrdata/lib/libdatachannel.so.0.21+0x1e23b37)
    #9 0xb45d37ef in rtc::impl::WsTransport::incoming(std::shared_ptr<rtc::Message>) (/usrdata/lib/libdatachannel.so.0.21+0x1e3c7ef)
    #10 0xb4469e6b in std::_Function_handler<void (std::shared_ptr<rtc::Message>), std::_Bind<void (rtc::impl::Transport::*(rtc::impl::Transport*, std::_Placeholder<1>))(std::shared_ptr<rtc::Message>)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<rtc::Message>&&) (/usrdata/lib/libdatachannel.so.0.21+0x1cd2e6b)
    #11 0xb445db2b in rtc::impl::Transport::recv(std::shared_ptr<rtc::Message>) (/usrdata/lib/libdatachannel.so.0.21+0x1cc6b2b)
    #12 0xb438596b in rtc::impl::TcpTransport::incoming(std::shared_ptr<rtc::Message>) (/usrdata/lib/libdatachannel.so.0.21+0x1bee96b)
    #13 0xb439e35b in rtc::impl::TcpTransport::process(rtc::impl::PollService::Event) (/usrdata/lib/libdatachannel.so.0.21+0x1c0735b)
    #14 0xb43bd16f in std::_Function_handler<void (rtc::impl::PollService::Event), std::_Bind<void (rtc::impl::TcpTransport::*(rtc::impl::TcpTransport*, std::_Placeholder<1>))(rtc::impl::PollService::Event)> >::_M_invoke(std::_Any_data const&, rtc::impl::PollService::Event&&) (/usrdata/lib/libdatachannel.so.0.21+0x1c2616f)
    #15 0xb42dea23 in rtc::impl::PollService::process(std::vector<pollfd, std::allocator<pollfd> >&) (/usrdata/lib/libdatachannel.so.0.21+0x1b47a23)
    #16 0xb42f4a3f in rtc::impl::PollService::runLoop() (/usrdata/lib/libdatachannel.so.0.21+0x1b5da3f)
    #17 0xb247d279  (/usrdata/lib/libstdc++.so.6+0x8c279)

Address 0xac5ecda8 is located in stack of thread T5 (RTC poll)
SUMMARY: AddressSanitizer: stack-use-after-scope (/usrdata/lib/libasan.so.4+0x4546f) 
Shadow bytes around the buggy address:
  0x358bd960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x358bd970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x358bd980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x358bd990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x358bd9a0: 00 00 00 00 00 00 00 00 00 00 00 00 f8 f8 f8 f8
=>0x358bd9b0: f8 f8 f8 f8 f8[f8]f8 f8 00 00 00 00 00 00 00 00
  0x358bd9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x358bd9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x358bd9e0: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
  0x358bd9f0: f8 f2 f2 f2 f2 f2 f2 f2 f8 f2 f2 f2 f2 f2 f2 f2
  0x358bda00: 01 f2 f2 f2 f2 f2 f2 f2 01 f2 f2 f2 f2 f2 f2 f2
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
Thread T5 (RTC poll) created by T0 here:
    #0 0xb69f764d in pthread_create (/usrdata/lib/libasan.so.4+0x2d64d)
magic-tab-01 commented 2 weeks ago

maybe i shall add something detail, the envroment is cross-compiler build, not gcc, is there any solution?

paullouisageneau commented 2 weeks ago

There are memory-related errors before it crashes:

2024-08-26 08:02:29.577 WARN  [23902] [rtc::impl::ThreadPool::schedule@105] Unable to allocate structure for ECDSA P-256 key pair
[...]
2024-08-26 08:02:29.929 WARN  [23903] [rtc::impl::Channel::flushPendingMessages@76] Uncaught exception in callback: Unable to allocate structure for ECDSA P-256 key pair

It looks like either the build is broken or the program is indeed out of memory (which might not be handled correctly by plog in this case).

magic-tab-01 commented 2 weeks ago

There are memory-related errors before it crashes:

2024-08-26 08:02:29.577 WARN  [23902] [rtc::impl::ThreadPool::schedule@105] Unable to allocate structure for ECDSA P-256 key pair
[...]
2024-08-26 08:02:29.929 WARN  [23903] [rtc::impl::Channel::flushPendingMessages@76] Uncaught exception in callback: Unable to allocate structure for ECDSA P-256 key pair

It looks like either the build is broken or the program is indeed out of memory (which might not be handled correctly by plog in this case).

thank you, but i haven't change any code of libdatahanel,do you have any ideas about how to fix it?

paullouisageneau commented 2 weeks ago

It is not related to a code change, it looks like an issue with OpenSSL. The prime256v1 curve might have been disabled during OpenSSL build. However I don't really understand how it would lead to the crash.