Adding to my colleagues’ replies, I was looking at the device now and it seems to be in a different state than earlier today. I see that the device is attempting to start an app release that was pushed “9 hours ago” (ceedce4), but it fails to start because of errors in the application container. If you open a command prompt to the host OS using the web dashboard, then run the command "journalctl -au balena"
, you’ll see some of the error messages printed by the application container. For example, the following is printed in a loop:
$ journalctl -au balena
...
Aug 08 21:05:53 yocto balenad[807]: [2019-08-08T21:05:53.500Z] Event: Service started {"service":{"appId":1392974,"serviceId":221197,"serviceName":"main","releaseId":1023046,"image":"sha256:a0c486d2
Aug 08 21:05:53 yocto balenad[807]: server send: 1
Aug 08 21:05:53 yocto balenad[807]: W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
Aug 08 21:05:53 yocto balenad[807]: [2019-08-08T21:05:53.826Z] Event: Service kill {"service":{"appId":1392974,"serviceId":221197,"serviceName":"main","releaseId":1023046,"image":"sha256:a0c486d29f2
Aug 08 21:05:53 yocto balenad[807]: kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Aug 08 21:06:03 yocto healthdog[807]: time="2019-08-08T21:06:03.833856032Z" level=info msg="Container 58bdaeedb5c243e01bb6d6e1a84c2cffdd6de701038c69a8a4f8065024ddc288 failed to exit within 10 second
Aug 08 21:06:04 yocto balenad[807]: [2019-08-08T21:06:04.175Z] Event: Service exit {"service":{"appId":1392974,"serviceId":221197,"serviceName":"main","releaseId":1023046,"image":"sha256:a0c486d29f2
As if the “pulseaudio main.c” error was key to the issue, though there is additional log output that I didn’t paste above. I suggest you have a look at the full output of that command, in case some of the log messages are meaningful to your application.
I tried to push the last known working commit, but it doesn’t work
Is that release ceedce4? It might be worth investigating the last known working commit further, to find out why it stopped working.
Also, one of the engineers who was investigating the device earlier today left an internal thread note, that I might as well quote:
“systemd-udev needs privileged mode. If they use udev, they should use balenalib base images, no systemd in there, privileged, UDEV=on, that should stop in-container systemd-udev to interfere.”
But if you had a working release, I think a good approach would be to get that release to work again. Changing from the old resin images to the new balenalib images is not always straightforward. Some major breaking changes are listed in the following doc: https://www.balena.io/docs/reference/base-images/base-images/#major-changes