On Ubuntu 20.04, I developed a video software base on VideoSDK. When I want to release SDK, the program stucked. Here is the stack trace for analysis. Would you help me to analyze it?
#0 0x00007ffff6f19aff in __GI___poll (fds=0x7fffffffc1c0, nfds=1, timeout=-1) at …/sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fffc9cbfa3c in ssb::notifier_pipe_t::wait(int, bool) () from lib/libvideosdk.so.1 #2 0x00007fffc9ca4f7b in ssb::msg_queue_t::send_msg(ssb::msg_it*, ssb::msg_queue_sink_it*, int) () from lib/libvideosdk.so.1 #3 0x00007fffc9caf94a in ssb::thread_wrapper_t::stop() () from lib/libvideosdk.so.1 #4 0x00007fffc9cafba7 in ssb::thread_io_t::stop() () from lib/libvideosdk.so.1 #5 0x00007fffc9cb32e1 in ssb::thread_mgr_t::stop_threads_by_type(unsigned int) () from lib/libvideosdk.so.1 #6 0x00007fffc9c134ca in ssb::dns_provider_t::stop() () from lib/libvideosdk.so.1 #7 0x00007fffc9bfb90e in tp_uninit () from lib/libvideosdk.so.1 #8 0x00007fffc8d45ed5 in CSBWebServiceModuleClient::~CSBWebServiceModuleClient() () from lib/libvideosdk.so.1 #9 0x00007fffc8d45fe9 in CSBWebServiceModuleClient::~CSBWebServiceModuleClient() () from lib/libvideosdk.so.1 #10 0x00007fffc8d45b2b in TermWebServiceModule () from lib/libvideosdk.so.1 #11 0x00007fffc82afa4a in ZOOMLITESDK::iOSZoomRTCModuleMgr::UnloadInternal(bool) () from lib/libvideosdk.so.1 #12 0x00007fffc82ae4a3 in ZOOMLITESDK::CZoomRTCModuleMgr::Unload(bool) () from lib/libvideosdk.so.1 #13 0x00007fffc82a385c in ZOOMLITESDK::CZoomLITESDKContext::Uninit() () from lib/libvideosdk.so.1 #14 0x00007fffc82a0aeb in ZOOMLITESDK::CZoomRTCMgr::Shutdown(bool) () from lib/libvideosdk.so.1 #15 0x00007fffc82a0c30 in ZOOMLITESDK::CZoomRTCMgr::Cleanup() () from lib/libvideosdk.so.1 #16 0x00007fffc829484b in ZOOMVIDEOSDK::ZoomVideoSDK::UNInitialize() () from lib/libvideosdk.so.1 #17 0x00007fffc8296fb2 in ZOOMVIDEOSDK::ZoomVideoSDK::~ZoomVideoSDK() () from lib/libvideosdk.so.1 #18 0x00007fffc8297159 in ZOOMVIDEOSDK::ZoomVideoSDK::~ZoomVideoSDK() () from lib/libvideosdk.so.1 #19 0x00007fffc8298e06 in DestroyZoomVideoSDKObj () from lib/libvideosdk.so.1 #20 0x00007fffd3bacf2a in ZoomVideoService::ReleaseSDK() () from lib/libultraremotemodel.so #21 0x00007fffd3b82219 in ReleaseResourceService::ReleaseResourceService(QObject*) () from lib/libultraremotemodel.so
The SDK version is 1.8.10. And there is another case, when I call joinSession, don’t wait for onSessionJoin event then call leaveSession(true) and DestoryZoomVideoSDKObj(), it will receive SIGSEGV.
I have studied this demo, the process is consistent with my App, but my audio and video function is only a sub-function of the original App. When I exit this sub-function, the DestroyZoomVideoSDKObj is called, and there is a 1/20 chance that I get stuck inside the SDK ssb::notifier_pipe_t::wait.
I’ve tried to test it 25 times, and I’ve stuck once and crashed four times. Please also help analyze and locate the problem.
The crash stack is as follows:
Core was generated by `./zoom_v-sdk_linux_bot’.
Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f6313d681ca in ssb::thread_mgr_t::find_by_type(unsigned int) const () from libvideosdk.so.1
[Current thread is 1 (Thread 0x7f630b05c9c0 (LWP 8888))]
(gdb) bt #0 0x00007f6313d681ca in ssb::thread_mgr_t::find_by_type(unsigned int) const () from libvideosdk.so.1 #1 0x00007f6313d68bbe in ssb::thread_mgr_t::stop_threads_by_type(unsigned int) () from libvideosdk.so.1 #2 0x00007f6313cc1c57 in ssb::dns_provider_t::~dns_provider_t() () from libvideosdk.so.1 #3 0x00007f6313cc1ce9 in ssb::dns_provider_t::~dns_provider_t() () from libvideosdk.so.1 #4 0x00007f6313caf894 in ssb::singleton_t<ssb::dns_provider_t, ssb::thread_mutex_recursive>::reset_all() () from libvideosdk.so.1 #5 0x00007f6313d5ef23 in ssb::singleton_life_t::cleanup() () from libvideosdk.so.1 #6 0x00007f6313d74913 in util_uninit () from libvideosdk.so.1 #7 0x00007f6313d74961 in sdk_global_exit () from libvideosdk.so.1 #8 0x00007f6312031ebc in ZOOMVIDEOSDK::ZoomVideoSDK::UNInitialize() () from libvideosdk.so.1 #9 0x00007f6312031ff9 in ZOOMVIDEOSDK::ZoomVideoSDK::cleanup() () from libvideosdk.so.1 #10 0x00005631524cb1bd in destroySDKObj () at /home/wangsheng/zoomvideodemo/videosdk-linux-raw-recording-sample-main/src/zoom_v-sdk_linux_bot.cpp:388 #11 0x00005631524d0958 in ZoomVideoSDKDelegate::onSessionLeave (this=0x56315430f220) at /home/wangsheng/zoomvideodemo/videosdk-linux-raw-recording-sample-main/src/zoom_v-sdk_linux_bot.cpp:130 #12 0x00007f6312031daf in ZOOMVIDEOSDK::ZoomVideoSDK::onConferenceLeftNotification() () from libvideosdk.so.1 #13 0x00007f6312054970 in ZOOMVIDEOSDK::CZoomLiteRTCConfStatusHandler::ProcConferenceLeftNotification(bool) () from libvideosdk.so.1 #14 0x00007f63120cc28b in ZMMeetingBridgeAsyncHelper::RunDelayTaskList(bool) () from libvideosdk.so.1 #15 0x00007f63120cc587 in non-virtual thunk to ZMMeetingBridgeAsyncHelper::OnTimer(void*, unsigned int, unsigned int, unsigned long) () from libvideosdk.so.1 #16 0x00007f6311fe31ee in Cmm::GLIBTimer_Notify(void*) () from libvideosdk.so.1 #17 0x00007f6310a6dbe8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #18 0x00007f6310a6d04e in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #19 0x00007f6310a6d400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007f6310a6d6f3 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00005631524cd3da in main (argc=1, argv=0x7ffe905fce18) at /home/wangsheng/zoomvideodemo/videosdk-linux-raw-recording-sample-main/src/zoom_v-sdk_linux_bot.cpp:680