[Bug 761586] systemclock: regression causing audiomixer to stall

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Feb 5 18:07:29 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=761586

--- Comment #3 from Thiago Sousa Santos <thiagossantos at gmail.com> ---
This seems to be the root cause for the issue later, the wakeup_count ends up
being messed:

0:00:01.040926341 26812      0x1cc0850 DEBUG              GST_CLOCK
gstclock.c:253:gst_clock_entry_new:<GstAudioSrcClock> created entry
0x7f86c0002e70, time 0:00:00.779297051
0:00:01.040943389 26812      0x1cc0850 DEBUG              GST_CLOCK
gstclock.c:542:gst_clock_id_wait:<GstAudioSrcClock> waiting on clock entry
0x7f86c0002e70
0:00:01.040957159 26812      0x1cc0850 DEBUG             audioclock
gstaudioclock.c:172:gst_audio_clock_get_internal_time:<GstAudioSrcClock> result
0:00:00.780136054, last_time 0:00:00.780136054
0:00:01.040954297 26812      0x1cc0720 DEBUG              GST_CLOCK
gstsystemclock.c:1019:gst_system_clock_id_unschedule: unscheduling entry
0x7f86c0002e70
0:00:01.040971786 26812      0x1cc0850 DEBUG              GST_CLOCK
gstclock.c:1056:gst_clock_get_internal_time:<GstAudioSrcClock> internal time
0:00:00.780136054
0:00:01.040997865 26812      0x1cc0720 DEBUG              GST_CLOCK
gstsystemclock.c:1028:gst_system_clock_id_unschedule: unscheduled entry
0x7f86c0002e70 2
0:00:01.041014502 26812      0x1cc0850 DEBUG              GST_CLOCK
gstclock.c:1101:gst_clock_get_time:<GstAudioSrcClock> adjusted time
0:00:00.780136054
0:00:01.041025315 26812      0x1cc0720 DEBUG              GST_CLOCK
gstsystemclock.c:1035:gst_system_clock_id_unschedule: entry was BUSY, doing
wakeup
0:00:01.041030800 26812      0x1cc0850 DEBUG              GST_CLOCK
gstsystemclock.c:710:gst_system_clock_id_wait_jitter_unlocked: entry
0x7f86c0002e70 time 0:00:00.779297051 now 0:00:00.780136054 diff (time-now
0:00:01.041042960 26812      0x1cc0720 DEBUG              GST_CLOCK
gstsystemclock.c:394:gst_system_clock_add_wakeup: writing control
0:00:01.041060645 26812      0x1cc0850 DEBUG              GST_CLOCK
gstclock.c:552:gst_clock_id_wait:<GstAudioSrcClock> done waiting entry
0x7f86c0002e70, res: 2 (unscheduled)
0:00:01.041079436 26812      0x1cc0720 DEBUG              GST_CLOCK
gstsystemclock.c:410:gst_system_clock_add_wakeup: wakeup count 1
0:00:01.041136890 26812      0x1cc0850 DEBUG              GST_CLOCK
gstclock.c:356:_gst_clock_id_free: freed entry 0x7f86c0002e70

T1 and T2 are the 2 threads

1) T1: The entry is created and a wait for it is done.
2) T2: Tries to unschedule the entry
3) T2: unschedule receives a BUSY return
4) T1: wait finishes and it is too late
5) T2: writes at the poll and increases wakeup count
6) T1: entry is done. and freed.

The wakeup count is never decremented again and subsequent uses will stall

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list