Ubuntu Frame - Black Screen – App Stops Rendering

Hey,

On our ubuntu core(core22) based device, we have an flutter application which is bundled with snap and using ubuntu frame for displaying UI, which is working fine, and used in field.

What we got that , after some time, the app stopped rendering, resulting in a black screen.

App itself is working, when you touch the screen(while screen is black) you can call someone etc, that proves app is not crashed and still working. (validated from services as well)

Other applications like ubuntu-frame-osk pops up when you tap the input field, which is essentially painted on surface.

What i did restarted ubuntu-frame while keeping actual daemon untouched, which repainted UI itself.

What i worried, somehow connection between compositor and client broken.

Do you guys have any idea how this happened or any way to debug it?

only logs of ubuntu-frame was

-warning- > mirserver: Ignoring layer shell protocol violation: wl_surface destroyed before associated 

ubuntu-frame version

 144-mir2.17.0                    (9750) 

Hey @alan_g , do you have any idea about this?

Do you have Frame’s idle-timeout set? That will lead to a black screen after some time.

https://mir-server.io/docs/ubuntu-frame-configuration-options

I note that you are using an obsolete version of Frame: checking the Snap store, 22/stable has 147-mir2.17.2. However, it doesn’t look as though any of the bugfixes would affect your scenario.

As the application is responding to input it is unlikely the problem is related to Frame or that there’s a problem with the communication between Frame and the application.

I don’t use any config except hiding cursor, by default idle-timeout is 0, which is keeping display forever.

I set it to a small value(20 second) to observe, to observe behaviour, but seems this just turns off screen after timeout which wasn’t case for us, osk was painted on surface and input(touch) was functioning well.

Do you think this protocol violation might be a problem?

-warning- > mirserver: Ignoring layer shell protocol violation: wl_surface destroyed before associated 

The protocol violation is unrelated.

There is nothing in what you describe that suggests Frame is misbehaving. I know nothing about your app to help diagnose problems with that.

Do you see the same behaviour with another app? Wpe-WebKit-Mir-kiosk?

It happened to us once(after a couple of days of no use of application ), couldn’t reproduced again.

What i am planning to update frame to latest 22 stable, and enabling wayland debugs logs of our application. And try to catch it again.

But as far as i am aware snap logs are gone after 1 day, is there a way to keep them longer?