Last week we successfully released Icinga for Windows v1.4.0 and received great feedback for the new features and improvements so far. However, it wouldn’t be a mayor software release if a hotfix would not be imminent shortly after the release!
Long story short, we (and in that case I mean myself) messed up and broke the execution of plugins using [SecureString] arguments.
What happend?
We moved with our new Icinga configuration and check execution, to load only minimal features of the Framework and improve things from this point in the future. While this works for 95% of our plugins, we partly missed the MSSQL plugins. There you have the option to connect to the database with a username and password, instead of using integrated security. While we tested sadly with integrated security only, we missed the user and password authentication.
Passwords are transported as “plain text” to the PowerShell session, and converted internally to a [SecureString] with a custom function of the Icinga PowerShell Framework. However, we missed to include this function for the basic loading of the Framework, causing exceptions being thrown for an unknown function ConvertTo-IcingaSecureString.
The solution
To resolve this issue, we just released Icinga for Windows v1.4.1, which will add the missing includes to the Icinga PowerShell Framework. If you are not using any plugins with [SecureString] arguments or you do not use the new configuration files for check execution, you are still fine. If you want to move to the new configuration and use plugins like our MSSQL plugins with user and password authentication, you will require to upgrade the Framework to v1.4.1 to work properly.
Side fixes
In addition to the biggest issue with failing plugin execution, we tracked down some additional issues caused by our background daemon, resulting in memory leaks in very edge cases. As our goal is to ensure that everything is handled properly, we added additional improvements and fixes as well. This includes that in case of failed plugin execution, the error stack is now cleared properly and in addition we manually trigger the PowerShell garbage collection to free memory as soon as possible instead of waiting for the operating system to tell PowerShell when it should flush no longer required memory. More of this can be read inside the GitHub Issue.
Thank you everyone for all the positive feedback so far. We are glad this release found great responses so far and looking forward to v1.5.0 already!