Project

General

Profile

Actions

Bug #5358

closed

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

Added by François ARMAND over 10 years ago. Updated about 10 years ago.

Status:
Released
Priority:
1 (highest)
Category:
Performance and scalability
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
Name check:
Fix check:
Regression:

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 1 (0 open1 closed)

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 onesReleasedFrançois ARMAND2013-06-10Actions
Actions #1

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
Actions #2

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.

Actions #3

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

Actions #4

Updated by Nicolas PERRON over 10 years ago

  • Target version changed from 2.10.4 to 2.10.5
Actions #5

Updated by Vincent MEMBRÉ about 10 years ago

  • Target version changed from 2.10.5 to 2.10.6
Actions #6

Updated by Matthieu CERDA about 10 years ago

  • Target version changed from 2.10.6 to 2.10.7
Actions #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

Actions #8

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
Actions #9

Updated by François ARMAND about 10 years ago

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

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
Actions #12

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.

Actions

Also available in: Atom PDF