Project

General

Profile

Actions

Bug #17997

open

Inventory failing - lodable libs and perl binaries mismatch

Added by Nicolas Ecarnot about 1 year ago. Updated 7 days ago.

Status:
New
Priority:
N/A
Assignee:
-
Category:
Architecture - Internal libs
Target version:
Severity:
Major - prevents use of part of Rudder | no simple workaround
User visibility:
Operational - other Techniques | Rudder settings | Plugins
Effort required:
Priority:
43

Description

On a Debian 10 (buster), after having upgraded the agent from rudder-agent:amd64 from 6.0.6-debian10 to 6.1.1-ubuntu18.04, the rudder agent inventory command is failing.

Running it with -v, I see :

rudder     info: Executing 'no timeout' ... '/opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/sit-glpi-tst01-55caaec0-4398-48e1-95bc-e430501fc8ef.ocs'
rudder  verbose: Setting umask to 77
   error: Finished command related to promiser '/opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/sit-glpi-tst01-55caaec0-4398-48e1-95bc-e430501fc8ef.ocs' -- an error occurred, returned 1
rudder  verbose: C:    + promise outcome class 'inventory_failed'
  notice: Q: "...-inventory --lo": [info] FusionInventory instance: builtin - Perl instance: system
Q: "...-inventory --lo": [info] running task Inventory
Q: "...-inventory --lo": Magic.c: loadable library and perl binaries are mismatched (got handshake key 0xde00080, needed 0xce00080)
rudder     info: Last 3 quoted lines were generated by promiser '/opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/sit-glpi-tst01-55caaec0-4398-48e1-95bc-e430501fc8ef.ocs'
rudder     info: Completed execution of '/opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/sit-glpi-tst01-55caaec0-4398-48e1-95bc-e430501fc8ef.ocs'

Thus, no inventory updates are sent back to the root server.

The rudder agent has been upgrade with a Rudder directive.

Actions #1

Updated by Benoît PECCATTE about 1 year ago

Hi Nicolas, how could you upgrade from 6.0.6-debian10 to 6.1.1-ubuntu18.04 since it's not the same distribution.

However this explains clearly the error, it's not the same version of perl.

Actions #2

Updated by Nicolas Ecarnot about 1 year ago

Benoît PECCATTE wrote in #note-1:

Hi Nicolas, how could you upgrade from 6.0.6-debian10 to 6.1.1-ubuntu18.04 since it's not the same distribution.

However this explains clearly the error, it's not the same version of perl.

Ok, I understand the origin of the issue :
In my directive about upgrading the rudder agent, I'm using a parameter that was mis-interpreted, sometimes as "buster", sometimes as other strings.
When the upgrades came, they upgraded using the wrong package.

I'm using this :

deb http://repository.rudder.io/apt/6.1/ ${debiancodename} main
but I have to find a better suited and generic variable...

Actions #3

Updated by Nicolas Ecarnot about 1 year ago

Wait a minute, this variable looks good, so there must be something else...

Actions #4

Updated by Nicolas Ecarnot about 1 year ago

Another example with Debian 9 :
- apt purge rudder-agent
- force cleanup of /var/rudder /opt/rudder /var/backups/rudder
- apt install rudder-agent
The rudder agent 6.1.1-debian9 is installing OK
- reboot

Then :
- reboot
M| State         Technique                 Component                 Key                Message
E| repaired      Common                    Compute inventory splay   rudder_run_invent| Scheduling rudder_run_inventory was repaired
   error: Finished command related to promiser '/opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/sit-web-8d4becee-211f-43d3-9a0d-744a6fb2f6ec.ocs' -- an error occurred, returned 1
Start execution with config [0]

E| error         Inventory                 inventory                                    Could not execute the inventory
   error: Method 'fusionAgent' failed in some repairs
   error: Method 'doInventory_always' failed in some repairs
info     Rudder agent was run on a subset of policies - not all policies were checked

## Summary #####################################################################
2 components verified in 4 directives
   => 2 components in Enforce mode
      -> 1 repaired
      -> 1 error
Execution time: 0.95s
################################################################################
 Done
FINISH: Rudder agent check ran properly, please look at messages above to see if there has been any error.
root@sit-web:~# /opt/rudder/bin/run-inventory --local=/var/rudder/tmp/inventory/sit-web-8d4becee-211f-43d3-9a0d-744a6fb2f6ec.ocs
[info] FusionInventory instance: builtin - Perl instance: system
ListUtil.c: loadable library and perl binaries are mismatched (got handshake key 0xdb80080, needed 0xce00080)
root@sit-web:~# rudder agent inventory -v|less -R
root@sit-web:~# lsb_release -a
No LSB modules are available.
Distributor ID:    Debian
Description:    Debian GNU/Linux 9.6 (stretch)
Release:    9.6
Codename:    stretch
root@sit-web:~# dpkg --list|grep rudder-agent
ii  rudder-agent                    6.1.1-debian9                  amd64        Configuration management and audit tool - agent
root@sit-web:~# rudder agent version
Rudder agent 6.1.1-debian9
Actions #5

Updated by Nicolas Ecarnot about 1 year ago

On some Debian 10 buster nodes, I'm force to :
- apt purge rudder-agent
- rm fr /var/rudder/ /var/backups/rudder/ /opt/rudder/
apt update && apt install rudder-agent
- echo 'a.b.c.d' > blablabla policy_server.dat...
- accept the node
unless this PERL binaries mismatch keeps bugging me.

Actions #6

Updated by Benoît PECCATTE about 1 year ago

could you also run a "perl --version" on this debian 9 ?
Than you

Actions #7

Updated by Vincent MEMBRÉ about 1 year ago

  • Target version changed from 6.1.2 to 6.1.3
Actions #8

Updated by Nicolas Ecarnot about 1 year ago

Benoît PECCATTE wrote in #note-6:

could you also run a "perl --version" on this debian 9 ?
Than you

Let's not focus on debian version, as it appears on debian 9 and 10, and I may have seen it on ubuntu and maybe centos nodes.
For instance, our root server is a debian 10 and is hit by this issue.
perl --version is giving :

perl 5, version 28, subversion 1 (v5.28.1) built for x86_64-linux-gnu-thread-multi
(with 61 registered patches, see perl -V for more detail)
Actions #9

Updated by François ARMAND 12 months ago

  • Target version changed from 6.1.3 to 6.1.4
Actions #10

Updated by Nicolas CHARLES 12 months ago

One user also reported this issue, and it was caused by old .so files in /opt/rudder/lib/perl5/x86_64-linux-gnu-thread-multi/

Actions #11

Updated by Vincent MEMBRÉ 11 months ago

  • Target version changed from 6.1.4 to 6.1.5
  • Priority changed from 52 to 51
Actions #12

Updated by Vincent MEMBRÉ 10 months ago

  • Target version changed from 6.1.5 to 6.1.6
  • Priority changed from 51 to 50
Actions #13

Updated by Vincent MEMBRÉ 9 months ago

  • Target version changed from 6.1.6 to 6.1.7
Actions #14

Updated by Vincent MEMBRÉ 8 months ago

  • Target version changed from 6.1.7 to 6.1.8
  • Priority changed from 50 to 49
Actions #15

Updated by Vincent MEMBRÉ 6 months ago

  • Target version changed from 6.1.8 to 6.1.9
  • Priority changed from 49 to 48
Actions #16

Updated by Vincent MEMBRÉ 6 months ago

  • Target version changed from 6.1.9 to 6.1.10
  • Priority changed from 48 to 47
Actions #17

Updated by Vincent MEMBRÉ 4 months ago

  • Target version changed from 6.1.10 to 6.1.11
  • Priority changed from 47 to 46
Actions #18

Updated by Vincent MEMBRÉ 4 months ago

  • Target version changed from 6.1.11 to 6.1.12
Actions #19

Updated by Vincent MEMBRÉ 4 months ago

  • Target version changed from 6.1.12 to 6.1.13
  • Priority changed from 46 to 45
Actions #20

Updated by Vincent MEMBRÉ 2 months ago

  • Target version changed from 6.1.13 to 6.1.14
Actions #21

Updated by Vincent MEMBRÉ 20 days ago

  • Target version changed from 6.1.14 to 6.1.15
  • Priority changed from 45 to 43
Actions #22

Updated by Vincent MEMBRÉ 7 days ago

  • Target version changed from 6.1.15 to 6.1.16
Actions

Also available in: Atom PDF