<div dir="ltr"><div dir="ltr">Hello Pekka, Hello Dima, <div><br></div><div>Thanks for your prompt responce. </div><div>After analyzing the below wayland client logs we concluded that we are getting the <b>Protocol Error: Invalid Object</b>, because we are trying to set the property of a destroyed surface.  </div><div> </div><div><div>[216074.552] ivi_controller@6.surface(80)</div><div>[216074.635]  -> ivi_controller@6.surface_create(80, new id ivi_controller_surface@23)</div><div>[216074.710] ivi_input@7.input_acceptance(80, "default", 1)</div><div>[216075.760] ivi_controller_surface@23.opacity(1.000000)</div><div>[216075.861] ivi_controller_surface@23.source_rectangle(0, 0, 0, 0)</div><div>[216075.940] ivi_controller_surface@23.destination_rectangle(0, 0, 1, 1)</div><div>[216076.018] ivi_controller_surface@23.orientation(0)</div><div>[216076.052] ivi_controller_surface@23.visibility(0)</div><div>[216076.085] ivi_controller_surface@23.layer(nil)</div><div>[216076.119] ivi_controller_surface@23.configuration(800, 480)</div><div>[216120.940] ivi_controller_surface@23.destroyed()</div><div>[216121.038]  -> ivi_controller_surface@23.destroy(1)</div><div>[216123.417]  -> wl_display@1.sync(new id wl_callback@22)</div><div>[216124.103] wl_display@1.delete_id(23)</div><div>[216124.153] wl_display@1.delete_id(22)</div><div>[216124.191] wl_callback@22.done(0)</div><div>[216620.312] ivi_controller@6.surface(80)</div><div>[216620.417]  -> ivi_controller@6.surface_create(80, new id ivi_controller_surface@22)</div><div>[216620.520] ivi_input@7.input_acceptance(80, "default", 1)</div><div>[216620.770] ivi_controller_surface@22.opacity(1.000000)</div><div>[216620.817] ivi_controller_surface@22.source_rectangle(0, 0, 0, 0)</div><div>[216620.895] ivi_controller_surface@22.destination_rectangle(0, 0, 1, 1)</div><div>[216620.971] ivi_controller_surface@22.orientation(0)</div><div>[216640.269] ivi_controller_surface@22.visibility(0)</div><div>[216640.391] ivi_controller_surface@22.layer(nil)</div><div>[216640.430] ivi_controller_surface@22.configuration(800, 480)</div><div>[216640.525]  -> wl_display@1.sync(new id wl_callback@23)</div><div>[216660.432] wl_display@1.delete_id(23)</div><div>[216660.593] ivi_controller_surface@22.destroyed()</div><div>[216660.658]  -> ivi_controller_surface@22.destroy(1)</div><div>[216660.707] wl_callback@23.done(0)</div><div>[216690.474]  -> wl_display@1.sync(new id wl_callback@23)</div><div>[216692.259] wl_display@1.delete_id(22)</div><div>[216692.324] wl_display@1.delete_id(23)</div><div>[216692.359] wl_callback@23.done(0)</div><div>[217191.471] ivi_controller@6.surface(80)</div><div>[217191.544]  -> ivi_controller@6.surface_create(80, new id ivi_controller_surface@23)</div><div>[217191.609] ivi_input@7.input_acceptance(80, "default", 1)</div><div>[217192.321] ivi_controller_surface@23.opacity(1.000000)</div><div>[217192.380] ivi_controller_surface@23.source_rectangle(0, 0, 0, 0)</div><div>[217192.458] ivi_controller_surface@23.destination_rectangle(0, 0, 1, 1)</div><div>[217192.532] ivi_controller_surface@23.orientation(0)</div><div>[217192.565] ivi_controller_surface@23.visibility(0)</div><div>[217192.599] ivi_controller_surface@23.layer(nil)</div><div>[217192.632] ivi_controller_surface@23.configuration(800, 480)</div><div>[217193.993] ivi_controller_surface@23.source_rectangle(0, 0, 800, 480)</div><div>[217194.291] ivi_controller_surface@23.destination_rectangle(0, 0, 800, 480)</div><div>[217236.738] ivi_controller_surface@23.destroyed()</div><div>[217236.852]  -> ivi_controller_surface@23.destroy(1)</div><div>[217237.306]  -> wl_display@1.sync(new id wl_callback@22)</div><div>[217237.627] wl_display@1.delete_id(23)</div><div>[217237.678] wl_display@1.delete_id(22)</div><div>[217237.715] wl_callback@22.done(0)</div><div>[217753.952] ivi_controller@6.surface(80)</div><div>[217759.719]  -> ivi_controller@6.surface_create(80, new id ivi_controller_surface@22)</div><div>[217759.822] ivi_input@7.input_acceptance(80, "default", 1)</div><div>[217763.257]  -> wl_display@1.sync(new id wl_callback@23)</div><div>[217764.394] wl_display@1.delete_id(23)</div><div>[217764.456] wl_callback@23.done(0)</div><div>[217765.170]  -> wl_display@1.sync(new id wl_callback@23)</div><div>[217765.660] wl_display@1.delete_id(23)</div><div>[217765.871] wl_callback@23.done(0)</div><div>[217765.921]  -> ivi_controller_surface@22.set_source_rectangle(0, 0, 800, 480)</div><div>[217766.272]  -> wl_display@1.sync(new id wl_callback@23)</div><div>[217773.004] wl_display@1.error(wl_display@1, 0, "invalid object 22")</div><div>Error communicating with wayland: Invalid argument</div><div>[217773.310]  -> wl_display@1.sync(new id wl_callback@24)</div><div>Error communicating with wayland: Invalid argument</div><div>[217773.416]  -> wl_display@1.sync(new id wl_callback@25)</div><div>Error communicating with wayland: Invalid argument</div><div>[218279.632]  -> wl_display@1.sync(new id wl_callback@26)</div><div>Error communicating with wayland: Invalid argument</div><div>[218279.776]  -> wl_display@1.sync(new id wl_callback@27)</div></div><div><br></div><div>Could you please have a look and share your inputs about our findings.</div><div>Attaching the complete logs. </div><div><br></div><div>Here we have a use case, where we are creating and destroying the surfaces very quickly.</div><div>One more thing this is an some time issue. <br></div><div><br></div><div>Thanks in advance.</div><div><br></div><div>Regards,</div><div>Ikshwaku</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Dec 28, 2018 at 3:09 PM Pekka Paalanen <<a href="mailto:ppaalanen@gmail.com">ppaalanen@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 27 Dec 2018 11:55:03 -0800<br>
Dima Ryazanov <<a href="mailto:dima@gmail.com" target="_blank">dima@gmail.com</a>> wrote:<br>
<br>
> Hello,<br>
> <br>
> Yes, that's expected. From the documentation<br>
> <<a href="https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_display-event-error" rel="noreferrer" target="_blank">https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_display-event-error</a>>:<br>
> "The error event is sent out when a fatal (non-recoverable) error has<br>
> occurred"<br>
> It indicates a bug in the code, so there's no point in handling the error.<br>
<br>
Correct. After any protocol error, the Wayland connetion is dead.<br>
The only way to recover is to clean up the old connection and make<br>
a new one, starting from scratch.<br>
<br>
Of course, runtime recovery is just a band-aid, and you really<br>
should fix the underlying bug that caused the protocol error in the<br>
first place. A protocol error is conceptually not much different<br>
from a segmentation fault or a crash - it should never happen.<br>
<br>
<br>
Thanks,<br>
pq<br>
<br>
<br>
> On Thu, Dec 27, 2018 at 6:40 AM Ikshwaku Chauhan <<a href="mailto:ikshwaku.ec2004@gmail.com" target="_blank">ikshwaku.ec2004@gmail.com</a>><br>
> wrote:<br>
> <br>
> > Hello All,<br>
> ><br>
> > We are facing an issue where we are not receiving any surface/layer<br>
> > creation/distortion notifications from Layermanager.<br>
> ><br>
> > We debugged and found that, once we get "*display protocol error :<br>
> > Invalid Object XX" i.e, (wl_display@1.error(wl_display@1, 0, "invalid<br>
> > object XX"))* on wayland client side, there is No further communication<br>
> > between Wayland Protocol and Client to and from both.<br>
> ><br>
> > Is this an expected behavior or any recovery is possible?<br>
> ><br>
> > We are using wayland/weston/wayland-ivi-extension 1.11.0 with drm-backend<br>
> > on TI's Soc.<br>
> ><br>
> > Thanks you in advance.<br>
> ><br>
> ><br>
> > Regards,<br>
> ><br>
> > Ikshwaku<br>
</blockquote></div>