Issues with device configuration are completely undebuggable: layers upon layers of swallowed exceptions
Steps to reproduce:
- Prepare a custom device type.
- Forget to submit it to master (perhaps you mistyped command or it just failed randomly, e.g. network flip, and you missed that).
- Create a device of this custom device type.
- You will never know what's wrong with you device, why LAVA resets its "health" to Bad behind you back, etc.
There's absolutely no reporting in the web UI. But even if you install LAVA locally and look into logs, you will still see nothing except the same mystic resets of health to Bad. If you start to add more logging, you'll see no output, because apparently the most obvious logger to use is misconfigured. When you get around that, you'll still get a mystic output, like loaded device configuration being "None", even though it's completely visible and sane in web UI. Finally, after banging head about it for hours, you'll notice what's written in the title: LAVA swallows important exceptions on multiple layers, leaving pretty simple issues almost impossible to debug.
And all this is aggravated by the fact that you might not actually forget to submit a custom device type - you could submit it very well, but due to known and unfixed bugs in the official LAVA docker setup: lava/pkg/docker-compose#4 (closed) , you can grow thru all this.
Bottom line: swallowing exceptions isn't acceptable programming methodology, these cases should be fixed, and proper (detailed) feedback of any issues should be provided to user.