Bug 1841561

Summary: Drift Comparison shows drift in installed packages where is none
Product: Red Hat Hybrid Cloud Console (console.redhat.com) Reporter: Joerg K <joerg.kastning>
Component: DriftAssignee: Eric Herget <eherget>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Sager <msager>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: eherget, jmarc, joerg.kastning
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-03-25 15:42:03 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Description Flags
Screenshot of Drift Comparison view none

Description Joerg K 2020-05-29 13:18:51 UTC
Created attachment 1693374 [details]
Screenshot of Drift Comparison view

Description of problem:
In Insights -> Drift -> Comarison I selected two of my systems to compare them to each other. The drift analysis shows differences for three installed packages. Please see screenshot attached to this bugzilla.

From drift analysis there is a difference in the package architecture. But the mentioned packages are installed as i686 and x86_64 packages on both systems. So while the same packages are installed on both systems there is no reason to show a drift here.

Version-Release number of selected component (if applicable):
kernel 3.10.0-1127.8.2.el7.x86_64
insights-client.noarch 3.0.13-1.el7_7
rpm.x86_64 4.11.3-43.el7
yum.noarch 3.4.3-167.el7

Packages in question:

How reproducible:
I'm not entirely sure on this but I would guess you could reproduce it the following way.

Steps to Reproduce:
1. Install x86_64 version as well as the i686 package version of above packages on two similar systems
2. Compare both systems using Inights Drift

Actual results:
Drift shows different packages for both systems (see screenshot attachted to this bugzilla).

Expected results:
There shouldn't be any differences because both package types are installed on each system.

Additional info:
In case you need additional information to triage this one. Please, tell me which info do yu need and how to collect them. I'm happy to help.

Comment 1 Mike Sager 2020-06-03 14:49:20 UTC
Drift doesn't currently support multiple values for a fact.  This can lead to unexpected comparison states -- in this case, when a package is installed for multiple architectures.  Support for this capability is planned for the next release.

Trello card: https://trello.com/c/WAJDr2bt/1527-bz-1841561-drift-comparison-shows-drift-in-installed-packages-where-there-is-none

Comment 2 Joerg K 2020-06-04 10:51:12 UTC
Sorry, I'm not allowed to access the Trello card you mentioned. Could you post the content of the card regarding this case here, please?

Comment 3 Mike Sager 2020-06-05 19:40:40 UTC
Joerg, sure.  It's pretty much what I posted above.

The customer has packages installed for multiple architectures. Drift doesn't currently support multiple values for a fact. This can lead to unexpected comparison states. Support for this capability is planned for the next release.

Comment 4 Jerome Marc 2021-03-25 15:42:03 UTC
Closing the loop. Support for multi-value fact is now available as part of the Drift service. 

A recent blog post mentioned this new feature: https://www.redhat.com/en/blog/simplify-troubleshooting-rhel-system-configurations-red-hat-insights-drift-service

Multi-value Facts

The new multi-value fact feature aims to solve the problem where packages with multiple versions installed would only display one of them. Drift now stores a list of all installed versions for a given package name. This means you can correctly evaluate and compare all versions installed when performing a comparison.

Previously, each installed_package fact had an associated value that was used to compare systems and baselines. This was a limitation for packages for which multiple values are possible. For example, it is possible to install multiple kernel packages on your RHEL system, and select the version you want to run at startup. Another example is the possibility to have multiple versions or architectures, or the same package installed on your RHEL system. Previously, having only one value associated with each fact was not allowing proper troubleshooting in Drift.