Project

General

Profile

Actions

Bug #4110

closed

Upgrading a node with invalid promises to rudder 2.8 fails

Added by Vincent MEMBRÉ about 11 years ago. Updated over 9 years ago.

Status:
Released
Priority:
1 (highest)
Assignee:
Jonathan CLARKE
Category:
Packaging
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
Name check:
Fix check:
Regression:

Description

A not accepted node (only applies initial promises). but in latest 2.4.X/2.6 and 2.7 latest promises are not CFEngine 3.5 compliant.

When upgrading that node to 2.8, the node cannot complete the upgrade process because the initial promises are still the one used in 2.4/2.6/2.8

The error message i get when upgrading is:

udder-agent[3713]: [INFO] Using /etc/default/rudder-agent for configuration
rudder-agent[3716]: [INFO] Using /var/rudder/cfengine-community for CFEngine workdir
rudder-agent[3717]: [INFO] Halting CFEngine Community cf-serverd...
rudder-agent[3719]: [OK] CFEngine Community cf-serverd stopped after 1 seconds
rudder-agent[3720]: [INFO] Halting CFEngine Community cf-execd...
rudder-agent[3722]: [OK] CFEngine Community cf-execd stopped after 1 seconds
CFEngine binaries copied to workdir
rudder-agent[3735]: [INFO] Using /etc/default/rudder-agent for configuration
rudder-agent[3738]: [INFO] Using /var/rudder/cfengine-community for CFEngine workdir
rudder-agent[3739]: [INFO] Launching CFEngine Community cf-serverd...
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:306:55: error: syntax error
        "$(index)=$($(tab)[$(sectionName)][$(index)])",
                                                      ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:306:55: error: Expected attribute, got ','
        "$(index)=$($(tab)[$(sectionName)][$(index)])",
                                                      ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:307:29: error: Expected promiser string, got 'select_region'
                select_region => INI_section("$(sectionName)"),
                            ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:307:32: error: Expected ';', got '=>'
                select_region => INI_section("$(sectionName)"),
                               ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:307:44: error: Expected promiser string, got 'INI_section'
                select_region => INI_section("$(sectionName)"),
                                           ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:307:45: error: Expected ';', got '('
                select_region => INI_section("$(sectionName)"),
                                            ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:307:62: error: Expected ';', got ')'
                select_region => INI_section("$(sectionName)"),
                                                             ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:307:63: error: Expected promiser string, got ','
                select_region => INI_section("$(sectionName)"),
                                                              ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:374:55: error: syntax error
        "$(index)=$($(tab)[$(sectionName)][$(index)])",
                                                      ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:374:55: error: Expected attribute, got ','
        "$(index)=$($(tab)[$(sectionName)][$(index)])",
                                                      ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:375:29: error: Expected promiser string, got 'select_region'
                select_region => INI_section("$(sectionName)"),
                            ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:375:32: error: Expected ';', got '=>'
                select_region => INI_section("$(sectionName)"),
                               ^
/var/rudder/cfengine-community/inputs/common/1.0/cfengine_stdlib.cf:375:44: error: Expected promiser string, got 'INI_section'
                select_region => INI_section("$(sectionName)"),
                                           ^
Too many errors2013-10-28T16:26:14+0000    error: Policy failed validation with command '"/var/rudder/cfengine-community/bin/cf-promises" -c "/var/rudder/cfengine-community/inputs/promises.cf"'

The solution is to repair the initial promises to be CFEngine 3.5 compliant.

A workaround can be to disable agent before upgrading

touch /opt/rudder/etc/disable-agent
# Upgrade
# sudo yum upgrade rudder-agent
# sudo apt-get install rudder-agent
rm /opt/rudder/etc/disable-agent
Actions

Also available in: Atom PDF