1.16 to 1.18 update queue is dropping buffers with "queue is full, leaking item"

chakra wire.chakri at gmail.com
Tue Sep 22 10:12:06 UTC 2020


Hello,

I have a pipeline streaming from webrtc and sent to other webrtc peers with
an input-selector and tee

I am using *queue * in between *tee * and *rtpvp8pay/rtpopuspay*

With *GStreamer 1.16.2* the queue logs few messages as below, but forwards
buffers to rtp*pay, 

/0:00:42.691994561   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:42.703688771   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:42.708788498   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:43.465747577   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:44.524233433   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:46.610925338   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:49.789920943   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:50.853170574   117 0x7f4f00024230 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:52.944611891   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space
0:00:55.448559169   117 0x7f4f00024540 DEBUG        
queue_dataflow gstqueue.c:1242:gst_queue_chain_buffer_or_list:<queue4>
queue is full, waiting for free space/

But when running the same pipeline on *GStreamer 1.18* queue just drops all
buffers with message as below,

/0:00:21.236543341  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x7fc46000ea20 on downstream end
0:00:21.247554410  1994 0x7fc4b40490f0 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_video-ue_1351510000>
queue is full, leaking item 0x563030fe3ea0 on downstream end
0:00:21.254694194  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x7fc4700e56c0 on downstream end
0:00:21.276942385  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x7fc46000eea0 on downstream end
0:00:21.282223742  1994 0x7fc4b40490f0 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_video-ue_1351510000>
queue is full, leaking item 0x7fc4ac019000 on downstream end
0:00:21.295608065  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x7fc46000eb40 on downstream end
0:00:21.313417281  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x563030fe3480 on downstream end
0:00:21.314284947  1994 0x7fc4b40490f0 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_video-ue_1351510000>
queue is full, leaking item 0x563030fe3240 on downstream end
0:00:21.336302609  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x563030fe3360 on downstream end
0:00:21.347706535  1994 0x7fc4b40490f0 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_video-ue_1351510000>
queue is full, leaking item 0x7fc4700e57e0 on downstream end
0:00:21.354814503  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x563030fe37e0 on downstream end
0:00:21.377144606  1994 0x7fc4b4049050 DEBUG        
queue_dataflow
gstqueue.c:1148:gst_queue_leak_downstream:<queue_audio-ue_1351510000>
queue is full, leaking item 0x7fc4a000dd80 on downstream end/


I have verified by applying PAD_PROBE's on srcPad and sinkPad of queues and
it was clear that queue receives buffers on sinkPad but not sent out from
srcPad

I have applied leaky on queue as below which was as working from GStreamer
1.16 setup, I tried to flip it on and off but no luck,

/g_object_set(audioqueue, "leaky", 2, NULL);/

Attached detail log file  gst_debug.txt
<http://gstreamer-devel.966125.n4.nabble.com/file/t378374/gst_debug.txt>  

I do observe one commit coming on 1.18 release with regard to 'leaky queue'
https://github.com/GStreamer/gstreamer/commit/3260b2f630d4cc06b9a86bddd11d569ad030f360#diff-4920d773f9dad342122e70ef31a76728 

Do I need to set any additional configs to manage this

Any suggestions/directions please...

Thanks








--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list