Hi Paul,
thanks for your feedback about running Genode with the park of your machines. :-)
For accommodating older machines, you may give one of the other kernels a try, i.e., OKL4.
Regarding NOVA, some of the stability glitches that you observed may stem from the fact that dynamic system scenarios (scenarios where programs are repeatedly started and stopped) are not yet fully supported for base-nova. In fact, the official kernel version is not complete in this respect. For this reason, there is currently rapid progress to enable such work load. This involves us to complement the kernel with prior missing functionality, adding support for destroying kernel objects. So this issue is actively being worked on. If you are interested in this line of work, please follow the branches created by Alexander (https://github.com/alex-ab) at GitHub.
The messages "tried to call an invalid object:..." are not always a reason to get worried. There are situations where they are actually expected. For example, let us assume there is a program that enters a main loop like this:
... static Timer::Connection timer; for (;;) { ... timer.msleep(20); }
The program will periodically wake up every 20ms, do some work, and sleep again by doing an RPC call to the timer service. Now, when the parent decides to kill the program (e.g., the user presses the X-button on launchpad), the parent will close all the program's sessions in reverse order as they had been created. So it will close the timer session before closing the other basic sessions like CPU, RM, and PD. After the parent closed the timer session, the main thread is still running and may attempt just another call of 'timer.msleep(20)'. Because the timer session does not exist anymore, you will see the message about the attempt to call an invalid object.
Best regards Norman