Webapp checking that CFEngine variables used in Directive are correct takes too much time at startup
We have a check in the bootstrap of the application that ensures that no CFEngine variable contains a "." in their name. This is part of a migration from pre-2.6 versions that allowed using a CFEngine variable name containing ".".
This check is done in such a way that only checking, not actually migrating variable names, is taking a time exponential+with a big I/O based on the totale number of directives. But the "check" part can be done in at least linear time and WITHOUT the big I/O by directive.
On a installation with ~200 directives, it tooks around 60s to do that check. 60s to have Rudder UI available, even if nothing has to be done.
For 2.6, there is little to do.
But since 2.10, we have a way to improve a lot the situation (from 60 000ms to 600ms in my test environment).
And even more, perhaps we could JUST remove that check in 2.10/2.11, since the sole migration path to these version is from 2.6 that already do the check.
Jon, what do you think ? Is it acceptable to remove that check in a 2.10.x release ?
Updated by François ARMAND over 5 years ago
- Assignee changed from Jonathan CLARKE to Nicolas CHARLES
We discussed it (some time ago) and it is OK to remove it because:
- no new installation stable need to check that, and the price is high (we are talking about minutes when there is a lot (hundreds) of directives)
- no migration path exists that didn't already did that check
Updated by Vincent MEMBRÉ over 5 years ago
- Status changed from Pending release to Released
This bug has been fixed in Rudder 2.10.7 and 2.11.4, which were released today.
- Announcement 2.10 2.11 * Changelog 2.10 2.11 * Download information: https://www.rudder-project.org/site/get-rudder/downloads/