Bug #5358
closedWebapp checking that CFEngine variables used in Directive are correct takes too much time at startup
Description
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 10 years ago
- Subject changed from Checking for CFEngine variable names tooks forever to Bootstrap check for CFEngine variable names with "." tooks forever
Updated by Jonathan CLARKE over 10 years ago
- Subject changed from Bootstrap check for CFEngine variable names with "." tooks forever to Bootstrap migration for CFEngine variable names with "." tooks forever
- Description updated (diff)
Clarified ticket.
Updated by François ARMAND over 10 years ago
The reason of the check is http://www.rudder-project.org/redmine/issues/3642, which was added in migration for 2.4
Updated by Nicolas PERRON over 10 years ago
- Target version changed from 2.10.4 to 2.10.5
Updated by Vincent MEMBRÉ over 10 years ago
- Target version changed from 2.10.5 to 2.10.6
Updated by Matthieu CERDA about 10 years ago
- Target version changed from 2.10.6 to 2.10.7
Updated by François ARMAND about 10 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 François ARMAND about 10 years ago
- Status changed from Discussion to Pending technical review
- Pull Request set to https://github.com/Normation/rudder/pull/621
Updated by François ARMAND about 10 years ago
- Status changed from Pending technical review to Pending release
- % Done changed from 0 to 100
Applied in changeset de52fab881342fb2d8fb05836493552678afc03d.
Updated by Nicolas CHARLES about 10 years ago
Applied in changeset bca23ca4b0e90e73c10734b1568968fcd11b0c3e.
Updated by Vincent MEMBRÉ about 10 years ago
- Subject changed from Bootstrap migration for CFEngine variable names with "." tooks forever to Webapp checking that CFEngine variables used in Directive are correct takes too much time at startup
Updated by Vincent MEMBRÉ about 10 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/