After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 775051 - nlecomposition: validate: decodebin2 reaching code path that should not be reached when running scrub_forward_seeking on GES timelines
nlecomposition: validate: decodebin2 reaching code path that should not be re...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-editing-services
git master
Other Linux
: Normal normal
: 1.11.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-11-24 20:52 UTC by Thibault Saunier
Modified: 2016-12-01 20:21 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
2,*nle*:5,*decodebin*:5 debug log (649.71 KB, application/x-xz)
2016-11-24 20:52 UTC, Thibault Saunier
  Details
nlecomposition: Deactivate current stack in PAUSED_READY state (3.17 KB, patch)
2016-11-30 14:11 UTC, Thibault Saunier
committed Details | Review

Description Thibault Saunier 2016-11-24 20:52:05 UTC
Created attachment 340716 [details]
2,*nle*:5,*decodebin*:5 debug log

Validate tests: ges.playback.scrub_.*_seeking.test_mixing\..*

Failure example: https://ci.gstreamer.net/job/GStreamer-master-meson-validate/135/testReport/junit/ges.playback.scrub_forward_seeking.test_mixing/audio_video/vorbis_theora_ogg/

This issues happens when we tear down the pipeline at the very end of the scenario, basically:

* The nlecomposition is rebuilding the sub pipeline because of an EOS
* The composition state is set to READY
* The composition stops its children management tasks
* The composition sets its children state to READY itself

The error happens at that time.

I have the impression it is quite related to https://bugzilla.gnome.org/show_bug.cgi?id=774480 as we are setting the children state to READY before we actually link up the `change_state` vmethod implementation.
Comment 1 Thibault Saunier 2016-11-30 14:11:58 UTC
Created attachment 341055 [details] [review]
nlecomposition: Deactivate current stack in PAUSED_READY state

To avoid a race when tearing down the composition (PAUSED_TO_READY),
we should make sure to tear down the current stack and let the GstBin
class handle the remaining thing to do during the change state.

We should still ignore any error happening when tearing down the
bin state just in case.
Comment 2 Thibault Saunier 2016-12-01 20:20:56 UTC
Attachment 341055 [details] pushed as 66e13d4 - nlecomposition: Deactivate current stack in PAUSED_READY state