GNOME Bugzilla – Bug 732554
watchdog: sometimes expire even when stopped and causes crash
Last modified: 2014-07-04 12:57:32 UTC
Created attachment 279680 [details] [review]
Watchdog sometimes expire even when stopped and causes crash.
This because of a gst_watchdog_stop
is ongoing then a gst_watchdog_src_event is stuck at mutex.
As soon as stop is finish then the gst_watchdog_src_event continue.
Then in gst_watchdog_feed, a source will be attach to default context
(since watchdog->main_context is NULL).
When this expire there are no data to gst_watchdog_trigger since
references to watchdog have been zero.
Solution is to check watchdog->main_context is not NULL before create and attach a source.
Author: Göran Jönsson <firstname.lastname@example.org>
Date: Mon Jun 23 11:53:11 2014 +0200
watchdog: Only create a new GSource if we have a main context
We can still get OOB events while stopping the watchdog element, and while
stopping it we destroy the main context.
Also let the GSource own a reference to the element for additional safety.