On Tue, 13 Feb 2018 15:11:19 +0000
Daniel Stone <dan...@fooishbar.org> wrote:

> Hi,
> 
> On 13 February 2018 at 15:00, Pekka Paalanen <ppaala...@gmail.com> wrote:
> > On Thu, 8 Feb 2018 13:53:54 +0000
> > "Ucan, Emre (ADITG/ESB)" <eu...@de.adit-jv.com> wrote:  
> >> Yes I saw a similar problem when I tested previous ivi patches.
> >> I run make clean & make & make check. Then it worked.
> >>
> >> Maybe it is releated to weston-tests-env changes from this commit:
> >> https://cgit.freedesktop.org/wayland/weston/commit/?id=0707b0e5d48fa6f1ac41ea60c2adc2e6430c7425
> >>  ?  
> >
> > Daniel helped to pinpoint the cause of this failure. After the
> > ivi-shell patches, we now get hmi-controller.so loaded when before it
> > was not. Hmi-controller creates layers and surfaces, so it breaks tests
> > that expect to be in complete control over the scene.
> >
> > When the controller plugins were changed to be loaded as normal weston
> > plugins, the directive to load the test controller no longer overrode
> > the weston-ivi.ini by default loading hmi-controller. Now they get
> > loaded both, and hmi-controller init races to break the tests.
> >
> > Could you figure out a fix for this, please?
> >
> > I suppose adding a delay in the test client would make the test fail
> > always, perhaps.  
> 
> I actually see the hmi-controller module  being loaded in both good
> (make -j8 check) and bad (make -j8 distcheck) setups. It looks like
> the only difference is timing, both in terms of load and also
> ordering.

Yup, it is also a race: for hmi-controller to set up layers and
stuff, it needs its helper client. The race is the helper client
vs. everything else. :-)

> On a good run, surface_properties_changed_notification() and
> surface_on_many_layer() come very early on, before
> weston-ivi-shell-user-interface is ready (this appears to take
> 700ms?). On a bad run, these are sequenced later.

That agrees with what I had expected.

> ivi-shell-user-interface signalling ready will create a
> surface-creation notification listener inside hmi-controller, which
> will add surfaces to the application layer. This causes
> surface_properties_changed_notification() to fail, as the layer
> addition has dirtied the surface and caused
> ivi_layout_commit_changes() to generate a notification for this. It
> also causes surface_on_many_layer() to fail, as it is on the three
> test layers as well as the ivi-shell-user-interface application layer.

Much appreciated for digging into it.


Thanks,
pq

Attachment: pgp2xde7ExllQ.pgp
Description: OpenPGP digital signature

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to