Crash scenario: User A(Chrome browser) makes video call to user B(Android-Receiver). Video call works fine, but if user B(Android-Receiver) hangs(disconnect) up call, then application crash occurs.
Application crash is not observer if both caller and receiver are android devices.
Application crash error log:
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 26062 (GLThread 19173 )
Error log for more details:
05-25 04:22:42.754 21460-21813/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 21813 (GLThread 24728 )
05-25 04:22:42.874 318-318/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** ** ***
05-25 04:22:42.874 318-318/? I/DEBUG: Build fingerprint: 'Xiaomi/ferrari/ferrari:5.0.2/LRX22G/V7.2.3.0.LXIMIDA:user/release-keys'
05-25 04:22:42.874 318-318/? I/DEBUG: Revision: '0'
05-25 04:22:42.874 318-318/? I/DEBUG: ABI: 'arm64'
05-25 04:22:42.874 318-318/? I/DEBUG: pid: 21460, tid: 21813, name: GLThread 24728 >>> com.testapp.cpocapp <<<
05-25 04:22:42.874 318-318/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
05-25 04:22:42.914 318-318/? I/DEBUG: x0 0000000000000000 x1 0000007f781b8850 x2 000000000000000f x3 0000007f74163fa8
05-25 04:22:42.914 318-318/? I/DEBUG: x4 0000007f74163000 x5 000000000000029e x6 0000000055354001 x7 0000000055354005
05-25 04:22:42.914 318-318/? I/DEBUG: x8 0000002a0627fac9 x9 0000000000000000 x10 0000000000000000 x11 0000000000000001
05-25 04:22:42.914 318-318/? I/DEBUG: x12 0000000000000001 x13 0000000055354001 x14 0000000000000081 x15 002db5898b3f7e32
05-25 04:22:42.914 318-318/? I/DEBUG: x16 0000007f741908e8 x17 0000007f8fabb500 x18 0000000000000000 x19 0000000000000000
05-25 04:22:42.914 318-318/? I/DEBUG: x20 00000055767f67c0 x21 0000007f781b8850 x22 0000007f781b88b0 x23 000000557663a510
05-25 04:22:42.914 318-318/? I/DEBUG: x24 0000007f781b89d8 x25 0000007f781b89e0 x26 0000000000000000 x27 00000055768257f0
05-25 04:22:42.914 318-318/? I/DEBUG: x28 0000007f781b89e8 x29 0000007f781b87b0 x30 0000007f73c1f938
05-25 04:22:42.914 318-318/? I/DEBUG: sp 0000007f781b87b0 pc 0000007f73c4238c pstate 0000000060000000
05-25 04:22:42.914 318-318/? I/DEBUG: #00 pc 000000000010f38c /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #1 pc 00000000000ec934 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #2 pc 00000000000ab570 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #3 pc 00000000000ab730 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #4 pc 00000000000ad6bc /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #5 pc 00000000000ad91c /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #6 pc 000000000009c89c /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #7 pc 00000000000a2414 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #8 pc 0000000000094670 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #9 pc 00000000000dc068 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #10 pc 00000000000e9994 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #11 pc 00000000000e9e18 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #12 pc 0000000000018890 /system/lib64/libc.so (__pthread_start(void)+52)
05-25 04:22:42.914 318-318/? I/DEBUG: #13 pc 0000000000014cb0 /system/lib64/libc.so (__start_thread+16)
05-25 04:22:43.074 321-22076/? W/AudioFlinger: RecordThread: buffer overflow
05-25 04:22:43.424 321-992/? I/AudioFlinger: BUFFER TIMEOUT: remove(4096) from active list on thread 0xf37eb008
As per my observation, crash occurs due to line "peer.pc.dispose()" from onDestroy() method of WebRtcClient class.
public void onDestroy() {
for (Peer peer : peers.values()) {
peer.pc.dispose(); -------- causing crash
}
videoSource.dispose();
factory.dispose();
client.disconnect();
client.close();
}
Please let me know fix for this.
Crash scenario: User A(Chrome browser) makes video call to user B(Android-Receiver). Video call works fine, but if user B(Android-Receiver) hangs(disconnect) up call, then application crash occurs.
Application crash is not observer if both caller and receiver are android devices.
Application crash error log:
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 26062 (GLThread 19173 )
Error log for more details:
05-25 04:22:42.754 21460-21813/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 21813 (GLThread 24728 )
05-25 04:22:42.874 318-318/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** ** ***
05-25 04:22:42.874 318-318/? I/DEBUG: Build fingerprint: 'Xiaomi/ferrari/ferrari:5.0.2/LRX22G/V7.2.3.0.LXIMIDA:user/release-keys'
05-25 04:22:42.874 318-318/? I/DEBUG: Revision: '0'
05-25 04:22:42.874 318-318/? I/DEBUG: ABI: 'arm64'
05-25 04:22:42.874 318-318/? I/DEBUG: pid: 21460, tid: 21813, name: GLThread 24728 >>> com.testapp.cpocapp <<<
05-25 04:22:42.874 318-318/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
05-25 04:22:42.914 318-318/? I/DEBUG: x0 0000000000000000 x1 0000007f781b8850 x2 000000000000000f x3 0000007f74163fa8
05-25 04:22:42.914 318-318/? I/DEBUG: x4 0000007f74163000 x5 000000000000029e x6 0000000055354001 x7 0000000055354005
05-25 04:22:42.914 318-318/? I/DEBUG: x8 0000002a0627fac9 x9 0000000000000000 x10 0000000000000000 x11 0000000000000001
05-25 04:22:42.914 318-318/? I/DEBUG: x12 0000000000000001 x13 0000000055354001 x14 0000000000000081 x15 002db5898b3f7e32
05-25 04:22:42.914 318-318/? I/DEBUG: x16 0000007f741908e8 x17 0000007f8fabb500 x18 0000000000000000 x19 0000000000000000
05-25 04:22:42.914 318-318/? I/DEBUG: x20 00000055767f67c0 x21 0000007f781b8850 x22 0000007f781b88b0 x23 000000557663a510
05-25 04:22:42.914 318-318/? I/DEBUG: x24 0000007f781b89d8 x25 0000007f781b89e0 x26 0000000000000000 x27 00000055768257f0
05-25 04:22:42.914 318-318/? I/DEBUG: x28 0000007f781b89e8 x29 0000007f781b87b0 x30 0000007f73c1f938
05-25 04:22:42.914 318-318/? I/DEBUG: sp 0000007f781b87b0 pc 0000007f73c4238c pstate 0000000060000000
05-25 04:22:42.914 318-318/? I/DEBUG: #00 pc 000000000010f38c /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #1 pc 00000000000ec934 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #2 pc 00000000000ab570 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #3 pc 00000000000ab730 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #4 pc 00000000000ad6bc /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #5 pc 00000000000ad91c /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #6 pc 000000000009c89c /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #7 pc 00000000000a2414 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #8 pc 0000000000094670 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #9 pc 00000000000dc068 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #10 pc 00000000000e9994 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #11 pc 00000000000e9e18 /data/app/com.testapp.cpocapp-1/lib/arm64/libjingle_peerconnection_so.so
05-25 04:22:42.914 318-318/? I/DEBUG: #12 pc 0000000000018890 /system/lib64/libc.so (__pthread_start(void)+52)
05-25 04:22:42.914 318-318/? I/DEBUG: #13 pc 0000000000014cb0 /system/lib64/libc.so (__start_thread+16)
05-25 04:22:43.074 321-22076/? W/AudioFlinger: RecordThread: buffer overflow
05-25 04:22:43.424 321-992/? I/AudioFlinger: BUFFER TIMEOUT: remove(4096) from active list on thread 0xf37eb008
As per my observation, crash occurs due to line "peer.pc.dispose()" from onDestroy() method of WebRtcClient class.
public void onDestroy() {
for (Peer peer : peers.values()) {
peer.pc.dispose(); -------- causing crash
}
videoSource.dispose();
factory.dispose();
client.disconnect();
client.close();
}
Please let me know fix for this.