Project

General

Profile

Bug #5358

Webapp checking that CFEngine variables used in Directive are correct takes too much time at startup

Added by François ARMAND almost 6 years ago. Updated over 5 years ago.

Status:
Released
Priority:
1
Category:
Performance and scalability
Target version:
Severity:
User visibility:
Effort required:
Priority:

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 ?


Related issues

Related to Rudder - Bug #3642: CFEngine variables name in "CFEngine Generic Variable Definition" Directives no more support "dot" and need a migration script to "undot" existing onesReleased2013-06-10François ARMANDActions
#1

Updated by François ARMAND almost 6 years ago

  • Subject changed from Checking for CFEngine variable names tooks forever to Bootstrap check for CFEngine variable names with "." tooks forever
#2

Updated by Jonathan CLARKE almost 6 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.

#3

Updated by François ARMAND almost 6 years ago

The reason of the check is http://www.rudder-project.org/redmine/issues/3642, which was added in migration for 2.4

#4

Updated by Nicolas PERRON almost 6 years ago

  • Target version changed from 2.10.4 to 2.10.5
#5

Updated by Vincent MEMBRÉ almost 6 years ago

  • Target version changed from 2.10.5 to 2.10.6
#6

Updated by Matthieu CERDA over 5 years ago

  • Target version changed from 2.10.6 to 2.10.7
#7

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

#8

Updated by François ARMAND over 5 years ago

  • Status changed from Discussion to Pending technical review
  • Pull Request set to https://github.com/Normation/rudder/pull/621
#9

Updated by François ARMAND over 5 years ago

  • Status changed from Pending technical review to Pending release
  • % Done changed from 0 to 100
#11

Updated by Vincent MEMBRÉ over 5 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
#12

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.

Also available in: Atom PDF