Project

General

Profile

Actions

Bug #3995

closed

/etc/{init.d,default,cron.d}/rudder-agent is removed if the package rudder-agent is upgraded from 2.6.4, 2.6.5, 2.7.1 or 2.7.2 on SuSE or RHEL/CentOS

Added by Nicolas PERRON over 10 years ago. Updated about 9 years ago.

Status:
Released
Priority:
1
Assignee:
Nicolas PERRON
Category:
Packaging
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
Name check:
Fix check:
Regression:

Description

The upgrade of rudder-agent from the versions 2.6.4, 2.6.5, 2.7.1 or 2.7.2 on SuSE or RHEL/CentOS will lead to a serious bug which is the removal of /etc/{init.d,default,cron.d}/rudder-agent


Related issues 2 (0 open2 closed)

Related to Rudder - Bug #3997: /etc/{init.d,default}/rudder-agent is removed if the package rudder-agent is upgraded from 2.4.8 on SuSE or RHEL/CentOSReleasedJonathan CLARKE2013-10-04Actions
Related to Rudder - Bug #4000: Backup process of /etc/{init.d,default,conf.d}/rudder-agent in preinst of rudder-agent RPM should not be made a first install bu during upgradeReleasedJonathan CLARKE2013-10-07Actions
Actions #1

Updated by Nicolas PERRON over 10 years ago

  • Status changed from New to Discussion
  • Assignee set to Jonathan CLARKE
  • Priority changed from N/A to 1
  • Target version set to 2.4.10

With the fix of #3996, the Rudder agent will be safely relaunched but the files /etc/{init.d,default,cron.d}/rudder-agent will still be absent.

There is no backup of them and it seems overkill to have a copy of them in the Techniques to copy them back. Maybe a warning saying "please reinstall the package" will be sufficient ?

What's your opinion Jon ?

  • Modifying the file /opt/rudder/bin/check-rudder-agent to check presence of /etc/{init.d,default,cron.d}/rudder-agent and display a "WARNING: Files /etc/{init.d,default,cron.d}/rudder-agent are missing ! Please reinstal rudder-agent package"
  • Adding these files to the system Techniques and adding a logic to replace them if they are missing (like for logrotate and cron.d) ?
Actions #2

Updated by Nicolas CHARLES over 10 years ago

Could it be possible to have the packaging put these 3 missing files somewhere in the /opt/rudder branch, and then three solutions could be used:
  1. improve initial promises to check that the uuid file is there, and if not restore the backup; check that the /etc/{init.d,default,cron.d}/rudder-agent files are there, if not copy them from the /opt/rudder branch
  2. edit the cron that checks the uuid to copy these files if missing
  3. have the command to restore these file in the %post of the new package, but run in background and with a long wait (like 30 secondes), so that it would restore the files automagically.

Or another solution could be to update the system promises to do all of these, and force user to update first the server, and then the clients; but it's usually not the prefered method

Actions #3

Updated by Nicolas PERRON over 10 years ago

Nicolas CHARLES wrote:

Could it be possible to have the packaging put these 3 missing files somewhere in the /opt/rudder branch, and then three solutions could be used:
  1. improve initial promises to check that the uuid file is there, and if not restore the backup; check that the /etc/{init.d,default,cron.d}/rudder-agent files are there, if not copy them from the /opt/rudder branch

It needs to force reinstallation of initial promises at each upgrade of the packages.

  1. edit the cron that checks the uuid to copy these files if missing
  2. have the command to restore these file in the %post of the new package, but run in background and with a long wait (like 30 secondes), so that it would restore the files automagically.

I've tested and pre/post inst/uninst do not wait for the end of a background command.

Or another solution could be to update the system promises to do all of these, and force user to update first the server, and then the clients; but it's usually not the prefered method

Actions #4

Updated by Nicolas PERRON over 10 years ago

Nicolas CHARLES wrote:

Could it be possible to have the packaging put these 3 missing files somewhere in the /opt/rudder branch, and then three solutions could be used:

[...]

  1. edit the cron that checks the uuid to copy these files if missing

[...]
It seems to be the easiest solution

Actions #5

Updated by Nicolas PERRON over 10 years ago

  • Status changed from Discussion to Pending technical review
  • % Done changed from 0 to 100
  • Pull Request set to https://github.com/Normation/rudder-packages/pull/136
Actions #6

Updated by Nicolas PERRON over 10 years ago

  • Status changed from Pending technical review to Pending release

Applied in changeset commit:63978b96a8ac9e4fc915973806c28844e64d3360.

Actions #7

Updated by Nicolas PERRON over 10 years ago

Applied in changeset commit:d30042384a82d59ef853f3a5aa172b6be846f5c3.

Actions #8

Updated by Nicolas PERRON over 10 years ago

There is a problem here: on branch 2.4, the cron file is not yet /etc/cron.d/rudder-agent but /etc/crontab.

The package upgrade will fail at the preinst stage and the file check-rudder-agent will fail too. We need to revert it and redo the commit without cron for branch 2.4. I'll open a new ticket for it

Actions #9

Updated by Nicolas PERRON over 10 years ago

  • Subject changed from /etc/{init.d,default,cron.d}/rudder-agent is removed if the package rudder-agent is upgraded from 2.4.8, 2.6.4, 2.6.5, 2.7.1 or 2.7.2 on SuSE or RHEL/CentOS to /etc/{init.d,default,cron.d}/rudder-agent is removed if the package rudder-agent is upgraded from 2.6.4, 2.6.5, 2.7.1 or 2.7.2 on SuSE or RHEL/CentOS
  • Description updated (diff)
Actions #10

Updated by Nicolas PERRON over 10 years ago

  • Target version changed from 2.4.10 to 2.6.7
Actions #11

Updated by Nicolas PERRON over 10 years ago

  • Status changed from Pending release to In progress
  • % Done changed from 100 to 90

Nicolas PERRON wrote:

There is a problem here: on branch 2.4, the cron file is not yet /etc/cron.d/rudder-agent but /etc/crontab.

The package upgrade will fail at the preinst stage and the file check-rudder-agent will fail too. We need to revert it and redo the commit without cron for branch 2.4. I'll open a new ticket for it

See #3997

We need to fix it before to made a new PR for this issue. It will concern 2.6 instead of 2.4.
The code will be the same as the actual PR but only for branch 2.6+

Actions #12

Updated by Nicolas PERRON over 10 years ago

  • Assignee changed from Jonathan CLARKE to Nicolas PERRON
  • % Done changed from 90 to 0

Reverted by #3997

Actions #13

Updated by Nicolas PERRON over 10 years ago

  • Status changed from In progress to Pending technical review
  • Assignee changed from Nicolas PERRON to Jonathan CLARKE
  • % Done changed from 0 to 100
  • Pull Request changed from https://github.com/Normation/rudder-packages/pull/136 to https://github.com/Normation/rudder-packages/pull/138
Actions #14

Updated by Anonymous over 10 years ago

  • Status changed from Pending technical review to Pending release

Applied in changeset commit:bb77354939f78dffd067928f9b4229e8cc7e698b.

Actions #15

Updated by Nicolas PERRON over 10 years ago

Applied in changeset commit:c6c147902b81b9aaa5b6a6d3d14cf80810f2108a.

Actions #16

Updated by Nicolas PERRON over 10 years ago

  • Status changed from Pending release to In progress
  • Assignee changed from Jonathan CLARKE to Nicolas PERRON

I reopen this bug since the code has been erased (!!) by the merge of #3998 from branch 2.4 to 2.6+.

I have to redo the same modification...

Actions #17

Updated by Nicolas PERRON over 10 years ago

Nicolas PERRON wrote:

I reopen this bug since the code has been erased (!!) by the merge of #3998 from branch 2.4 to 2.6+.

This is strange. The code is good here: commit:c6c147902b81b9aaa5b6a6d3d14cf80810f2108a
But no more here (just the next commit): commit:498ed2e93660c2cff2cf08f2c296c68004ff8724
This commit is from #3998, merged on branch 2.4 and then merged on other branches.

I have to redo the same modification...

Here again the same modification: https://github.com/Normation/rudder-packages/pull/149

Actions #18

Updated by Nicolas PERRON over 10 years ago

  • Status changed from In progress to Pending release

Applied in changeset commit:7e8d94c22fef8c7c8a4f5a635c2185eeb0bb12c0.

Actions #19

Updated by Nicolas PERRON over 10 years ago

Applied in changeset commit:6d358e722cf64ca8b7e06322689c3b4cc82ca022.

Actions #20

Updated by Nicolas PERRON over 10 years ago

  • Status changed from Pending release to Released

This bug has been fixed in Rudder 2.6.7 but was not publicly annouced as it unfortunately did not meet our quality and assurance requirements. It has also been fixed in Rudder 2.6.8, which was released today.
Check out:

Actions #21

Updated by Daniel Stan over 10 years ago

Hello
We are trying to updated our agents to 2.8 version and we noticed that during update we encountered a similar problem on our centos5(32bit) instances when updating from 2.7.1 or 2.7.2:

CT-x-bash-3.2# echo "[Rudder_2.8]
> name=Rudder 2.8 Repository
> baseurl=http://www.rudder-project.org/rpm-2.8/RHEL_5/
> gpgcheck=0
> " > /etc/yum.repos.d/rudder.repo
CT-x-bash-3.2# yum update rudder-agent
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: mirrors.manchester.m247.com
 * base: mirrors.manchester.m247.com
 * extras: mirrors.ukfast.co.uk
 * updates: mirrors.melbourne.co.uk
Rudder_2.8                                                                                                                                                             |  951 B     00:00
Rudder_2.8/primary                                                                                                                                                     | 1.8 kB     00:00
Rudder_2.8                                                                                                                                                                                3/3
addons                                                                                                                                                                 | 1.9 kB     00:00
base                                                                                                                                                                   | 1.1 kB     00:00
extras                                                                                                                                                                 | 2.1 kB     00:00
updates                                                                                                                                                                | 1.9 kB     00:00
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package rudder-agent.i386 1398866025:2.8.1.release-1.EL.5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================
 Package                                    Arch                               Version                                                         Repository                                Size
==============================================================================================================================================================================================
Updating:
 rudder-agent                               i386                               1398866025:2.8.1.release-1.EL.5                                 Rudder_2.8                                22 M

Transaction Summary
==============================================================================================================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total download size: 22 M
Is this ok [y/N]: y
Downloading Packages:
rudder-agent-2.8.1.release-1.EL.5.i386.rpm                                                                                                                             |  22 MB     00:09
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
INFO: A back up copy of the /etc/init.d/rudder-agent has been created in /var/backups/rudder
INFO: A back up copy of the /etc/default/rudder-agent has been created in /var/backups/rudder
INFO: A back up copy of the /etc/cron.d/rudder-agent has been created in /var/backups/rudder
  Updating       : rudder-agent                                                                                                                                                           1/2
Making sure that the permissions on the CFEngine key directory are correct...
rudder-agent[14549]: [INFO] Using /etc/default/rudder-agent for configuration
rudder-agent[14552]: [INFO] Using /var/rudder/cfengine-community for CFEngine workdir
rudder-agent[14553]: [INFO] Halting CFEngine Community cf-serverd...
rudder-agent[14559]: [OK] CFEngine Community cf-serverd stopped after 2 seconds
rudder-agent[14560]: [INFO] Halting CFEngine Community cf-execd...
rudder-agent[14568]: [OK] CFEngine Community cf-execd stopped after 2 seconds
CFEngine binaries copied to workdir
rudder-agent[14605]: [INFO] Using /etc/default/rudder-agent for configuration
rudder-agent[14608]: [INFO] Using /var/rudder/cfengine-community for CFEngine workdir
rudder-agent[14609]: [INFO] Launching CFEngine Community cf-serverd...
2013-12-04T12:18:21+0000   notice: Server is starting...
rudder-agent[14641]: [OK] CFEngine Community cf-serverd started after 1 seconds
rudder-agent[14642]: [INFO] Launching CFEngine Community cf-execd...
rudder-agent[14667]: [OK] CFEngine Community cf-execd started after 1 seconds
INFO: A back up copy of the /opt/rudder/etc/uuid.hive has been created in /var/backups/rudder
  Cleanup        : rudder-agent                                                                                                                                                           2/2
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

Updated:
  rudder-agent.i386 1398866025:2.8.1.release-1.EL.5

Complete!
CT-x-bash-3.2# grep rudd /var/log/yum.log
Aug 29 19:03:34 Installed: 1398866025:rudder-agent-2.7.0.release-1.EL.5.i386
Sep 06 16:19:56 Updated: 1398866025:rudder-agent-2.7.1.release-1.EL.5.i386
Dec 04 12:18:23 Updated: 1398866025:rudder-agent-2.8.1.release-1.EL.5.i386
CT-x-bash-3.2# ps aux | grep rudd
root     18483  0.0  0.0   3100   720 pts/0    S+   12:39   0:00 grep rudd
CT-x-bash-3.2#
CT-x-bash-3.2# ls /etc/{init.d,default,conf.d}/rudder-agent
ls: /etc/init.d/rudder-agent: No such file or directory
ls: /etc/default/rudder-agent: No such file or directory
ls: /etc/conf.d/rudder-agent: No such file or directory
CT-x-bash-3.2#

<pre>

The centos 6 versions seems to be updated ok. I also noticed that if the update is performed from 2.7.2 the files are still there and process is still running but the same error is received from yum update command. Can you please check if this is related and if the fixes were pushed to centos 5 rpm's too? Also we have a few servers broken after applying the update , can you tell us if it is safe to just restore the files from  /var/backups/rudder/ or we need to reinstall the package?

Actions #22

Updated by Benoît PECCATTE about 9 years ago

  • Project changed from 34 to Rudder
  • Category set to Packaging
Actions

Also available in: Atom PDF