segfault with gst_rtsp_connection_flush function during cleanup
we stream multiple cameras( have around 32 cameras) and at a time the browser will display videos of 16 cameras(thumbnail view). we have the UI designed to switch the camera views. if user tries to switch, current plugin instance for the viewing camera will get stopped and new instance gets created for next camera about to view. in this scenario we have a segfault in rtsp cleanup code. could you please help us to find the cause of an issue.
Gstreamer version we use - 1.12.4
Below is the call stack for the crash:
[Switching to Thread 0x7f7e7acf4700 (LWP 17845)]
0x00007f7e89c9f4ad in gst_rtsp_connection_flush (conn=0xe5e5e5e5e5e5e5e5, flush=1) at gstrtspconnection.c:2552
2552 gstrtspconnection.c: No such file or directory.
(gdb) where
#0 0x00007f7e89c9f4ad in gst_rtsp_connection_flush (conn=0xe5e5e5e5e5e5e5e5, flush=1) at gstrtspconnection.c:2552
#1 0x00007f7e8a0e737c in gst_rtspsrc_connection_flush (src=0x7f7e0ea15820, flush=1) at gstrtspsrc.c:4271
#2 0x00007f7e8a0eb0a1 in gst_rtspsrc_loop_send_cmd (src=0x7f7e0ea15820, cmd=16, mask=127) at gstrtspsrc.c:5111
#3 0x00007f7e8a0f4749 in gst_rtspsrc_stop (src=0x7f7e0ea15820) at gstrtspsrc.c:7706
#4 0x00007f7e8a0f49ec in gst_rtspsrc_change_state (element=0x7f7e0ea15820, transition=GST_STATE_CHANGE_READY_TO_NULL) at gstrtspsrc.c:7798
#5 0x00007f7e923e055e in gst_element_change_state (element=0x7f7e0ea15820, transition=GST_STATE_CHANGE_READY_TO_NULL) at gstelement.c:2743
#6 0x00007f7e923e02ee in gst_element_set_state_func (element=0x7f7e0ea15820, state=GST_STATE_NULL) at gstelement.c:2697
#7 0x00007f7e923dfeea in gst_element_set_state (element=0x7f7e0ea15820, state=GST_STATE_NULL) at gstelement.c:2598
#8 0x00007f7e923af31e in gst_bin_element_set_state (bin=0x7f7e200422f0, element=0x7f7e0ea15820, base_time=3360335884438, start_time=0, current=GST_STATE_READY, next=GST_STATE_NULL) at gstbin.c:2595
#9 0x00007f7e923b09ab in gst_bin_change_state_func (element=0x7f7e200422f0, transition=GST_STATE_CHANGE_READY_TO_NULL) at gstbin.c:2937
#10 0x00007f7e924114e6 in gst_pipeline_change_state (element=0x7f7e200422f0, transition=GST_STATE_CHANGE_READY_TO_NULL) at gstpipeline.c:500
#11 0x00007f7e923e055e in gst_element_change_state (element=0x7f7e200422f0, transition=GST_STATE_CHANGE_READY_TO_NULL) at gstelement.c:2743
#12 0x00007f7e923dfaab in gst_element_continue_state (element=0x7f7e200422f0, ret=GST_STATE_CHANGE_SUCCESS) at gstelement.c:2451
#13 0x00007f7e923e08da in gst_element_change_state (element=0x7f7e200422f0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2782
#14 0x00007f7e923dfaab in gst_element_continue_state (element=0x7f7e200422f0, ret=GST_STATE_CHANGE_NO_PREROLL) at gstelement.c:2451
#15 0x00007f7e923e0945 in gst_element_change_state (element=0x7f7e200422f0, transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at gstelement.c:2789
#16 0x00007f7e923e02ee in gst_element_set_state_func (element=0x7f7e200422f0, state=GST_STATE_NULL) at gstelement.c:2697
#17 0x00007f7e923dfeea in gst_element_set_state (element=0x7f7e200422f0, state=GST_STATE_NULL) at gstelement.c:2598
#18 0x00007f7e92708604 in CM_pluginAPI::play() () from target:/usr/lib/mozilla/plugins/npCM_plugin.so
#19 0x00007f7e927093e2 in CM_pluginAPI::startThread(void*) () from target:/usr/lib/mozilla/plugins/npCM_plugin.so
#20 0x00007f7ea4c366db in start_thread (arg=0x7f7e7acf4700) at pthread_create.c:463
#21 0x00007f7e9ea0388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(edited stack trace for readability)
Edited by Tim-Philipp Müller