There are two methods for obtaining stats in PeerConnection.java
- PeerConnection.getStats(RTCStatsCollectorCallback callback)
- PeerConnection.getStats(StatsObserver observer, MediaStreamTrack track) -> This one is mark as deprecaded
Deprecated one works fine, but the preffered one - PeerConnection.getStats(RTCStatsCollectorCallback callback) is crashing.
WebRTC: v65 , git commit id: 36af4e9
Stack:
* thread #19, name = 'signaling_threa', stop reason = signal SIGABRT
* frame #0: 0xb3176ac4 [vdso]`__kernel_vsyscall + 16
frame #1: 0xb1186b3d libc.so`tgkill + 29
frame #2: 0xb113004f libc.so`abort + 111
frame #3: 0x9293efbc libjingle_peerconnection_so.so`___lldb_unnamed_symbol211$$libjingle_peerconnection_so.so + 328
frame #4: 0x92ee9e55 libjingle_peerconnection_so.so`___lldb_unnamed_symbol26436$$libjingle_peerconnection_so.so + 381
frame #5: 0x92eb61b4 libjingle_peerconnection_so.so`___lldb_unnamed_symbol25290$$libjingle_peerconnection_so.so + 2034
frame #6: 0x92eb561f libjingle_peerconnection_so.so`___lldb_unnamed_symbol25288$$libjingle_peerconnection_so.so + 103
frame #7: 0x92eb4ac0 libjingle_peerconnection_so.so`___lldb_unnamed_symbol25279$$libjingle_peerconnection_so.so + 1212
frame #8: 0x92e85a92 libjingle_peerconnection_so.so`___lldb_unnamed_symbol23740$$libjingle_peerconnection_so.so + 78
frame #9: 0x92eaebea libjingle_peerconnection_so.so`___lldb_unnamed_symbol25002$$libjingle_peerconnection_so.so + 50
frame #10: 0x92a93012 libjingle_peerconnection_so.so`___lldb_unnamed_symbol5887$$libjingle_peerconnection_so.so + 56
frame #11: 0x92eaeb7a libjingle_peerconnection_so.so`___lldb_unnamed_symbol25000$$libjingle_peerconnection_so.so + 52
frame #12: 0x92eabaa8 libjingle_peerconnection_so.so`___lldb_unnamed_symbol24860$$libjingle_peerconnection_so.so + 116
frame #13: 0x92e66dfb libjingle_peerconnection_so.so`Java_org_webrtc_PeerConnection_nativeNewGetStats + 124
frame #14: 0x93295db9 base.odex`nativeNewGetStats(this=<unavailable>, (null)=<unavailable>) + 137
frame #15: 0xae94ccd3 libart.so`art_quick_invoke_stub + 339
frame #16: 0xae426b49 libart.so`art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) + 233
frame #17: 0xae637200 libart.so`art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) + 368
frame #18: 0xae62fde2 libart.so`bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) + 818
frame #19: 0xae66334f libart.so`bool art::interpreter::DoInvoke<(art::InvokeType)1, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) + 463
frame #20: 0xae65f1cb libart.so`art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) + 53819
frame #21: 0xae60a03a libart.so`art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) + 762
frame #22: 0xae611edb libart.so`art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) + 235
frame #23: 0xae62fdb6 libart.so`bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) + 774
frame #24: 0xae6615ad libart.so`bool art::interpreter::DoInvoke<(art::InvokeType)2, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) + 845
frame #25: 0xae65f17b libart.so`art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) + 53739
frame #26: 0xae60a03a libart.so`art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) + 762
frame #27: 0xae611edb libart.so`art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) + 235
frame #28: 0xae62fdb6 libart.so`bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) + 774
frame #29: 0xae663de6 libart.so`bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) + 1638
frame #30: 0xae65f299 libart.so`art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) + 54025
frame #31: 0xae60a03a libart.so`art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) + 762
frame #32: 0xae611dbc libart.so`art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*) + 140
frame #33: 0xae922540 libart.so`artQuickToInterpreterBridge + 1376
frame #34: 0xae952d2e libart.so`art_quick_to_interpreter_bridge + 78
frame #35: 0xae94ccd3 libart.so`art_quick_invoke_stub + 339
frame #36: 0xae426b49 libart.so`art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) + 233
frame #37: 0xae847036 libart.so`art::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ArgArray*, art::JValue*, char const*) + 102
frame #38: 0xae848993 libart.so`art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, char*) + 467
frame #39: 0xae6fd1a6 libart.so`art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, char*) + 1046
frame #40: 0xae465b65 libart.so`art::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, char*, art::Primitive::Type, art::InvokeType) + 1973
frame #41: 0xae4505cc libart.so`art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, char*) + 76
frame #42: 0x9293d26c libjingle_peerconnection_so.so`___lldb_unnamed_symbol166$$libjingle_peerconnection_so.so + 48
frame #43: 0x92e69b38 libjingle_peerconnection_so.so`___lldb_unnamed_symbol23066$$libjingle_peerconnection_so.so + 126
frame #44: 0x92e8b20f libjingle_peerconnection_so.so`___lldb_unnamed_symbol23780$$libjingle_peerconnection_so.so + 257
frame #45: 0x92e8e7af libjingle_peerconnection_so.so`___lldb_unnamed_symbol23818$$libjingle_peerconnection_so.so + 253
frame #46: 0x92e895b0 libjingle_peerconnection_so.so`___lldb_unnamed_symbol23770$$libjingle_peerconnection_so.so + 250
frame #47: 0x92e8732a libjingle_peerconnection_so.so`___lldb_unnamed_symbol23760$$libjingle_peerconnection_so.so + 892
frame #48: 0x92e86b02 libjingle_peerconnection_so.so`___lldb_unnamed_symbol23758$$libjingle_peerconnection_so.so + 138
frame #49: 0x92eaf07e libjingle_peerconnection_so.so`___lldb_unnamed_symbol25019$$libjingle_peerconnection_so.so + 58
frame #50: 0x92a930b1 libjingle_peerconnection_so.so`___lldb_unnamed_symbol5888$$libjingle_peerconnection_so.so + 39
frame #51: 0x92a930e5 libjingle_peerconnection_so.so`___lldb_unnamed_symbol5889$$libjingle_peerconnection_so.so + 33
frame #52: 0x92aa2653 libjingle_peerconnection_so.so`___lldb_unnamed_symbol6419$$libjingle_peerconnection_so.so + 173
frame #53: 0x92abd108 libjingle_peerconnection_so.so`___lldb_unnamed_symbol7182$$libjingle_peerconnection_so.so + 146
frame #54: 0x92abd070 libjingle_peerconnection_so.so`___lldb_unnamed_symbol7181$$libjingle_peerconnection_so.so + 30
frame #55: 0x92abcebe libjingle_peerconnection_so.so`___lldb_unnamed_symbol7179$$libjingle_peerconnection_so.so + 108
frame #56: 0xb11819b6 libc.so`__pthread_start(void*) + 54
frame #57: 0xb113150c libc.so`__start_thread + 76
frame #58: 0xb112fda7 libc.so`__bionic_clone + 71