I (with tvoss' help) created some tools to recreate the scenario in a more controlled setup (e.g. no Qt). I have tested the trusted prompt feature at the mir level, as well as the unity8 level, with Camera app and with other apps. I haven't been able to repro the issue after thousands of iterations.
It involves running the camera unconfined like so :
phablet@ubuntu-phablet:/usr/share/click/preinstalled/com.ubuntu.camera/current$ ./camera-app --desktop_file_hint=dialer-app
and then running the following in a script doing thousands of iterations :
mir_demo_client_prompt_helper_provider.bin -p <camera-pid> -m /run/user/32011/mir_socket_trusted -- --desktop_file_hint=dialer-app
mir_demo_client_prompt_helper_provider.bin sets up a trust session and forks a gl app (simulating the dialog box) that renders 20 frames and exits (so it could be run automatically.
This setup didn't yield any panic or crash.
One thing I haven't tried is using trivial code (no Qt) as the actual TPP - this way the timing that TPP cutting in right before Camera starts to render can be recreated. Whereas the above case requires the Camera app to have been launched and rendering already. This involves modifying the lp:trust-store code that I'm not familiar with, but with some help, am willing to give it a try.
I (with tvoss' help) created some tools to recreate the scenario in a more controlled setup (e.g. no Qt). I have tested the trusted prompt feature at the mir level, as well as the unity8 level, with Camera app and with other apps. I haven't been able to repro the issue after thousands of iterations.
It involves running the camera unconfined like so : ubuntu- phablet: /usr/share/ click/preinstal led/com. ubuntu. camera/ current$ ./camera-app --desktop_ file_hint= dialer- app
phablet@
and then running the following in a script doing thousands of iterations : client_ prompt_ helper_ provider. bin -p <camera-pid> -m /run/user/ 32011/mir_ socket_ trusted -- --desktop_ file_hint= dialer- app
mir_demo_
mir_demo_ client_ prompt_ helper_ provider. bin sets up a trust session and forks a gl app (simulating the dialog box) that renders 20 frames and exits (so it could be run automatically.
This setup didn't yield any panic or crash.
One thing I haven't tried is using trivial code (no Qt) as the actual TPP - this way the timing that TPP cutting in right before Camera starts to render can be recreated. Whereas the above case requires the Camera app to have been launched and rendering already. This involves modifying the lp:trust-store code that I'm not familiar with, but with some help, am willing to give it a try.