Error when parsing lsb_release, landscape-package-reporter unable to report package list to server
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Landscape Client |
Fix Committed
|
Undecided
|
Unassigned | ||
landscape-client (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
[ Impact ]
* The version of Landscape Client in the Ubuntu main repository for Focal and Jammy fails to report package information Landscape Server when the client machine has lsb modules installed (ex. lsb-core) as a `ValueError` is raised when attempting to parse the output.
[ Test Plan ]
* `sudo apt update && sudo apt install -y landscape-client`
* `lsb_release -a # Check no lsb modules`
* `sudo apt-get install -y lsb-core # install lsb module`
* `sudo landscape-config --silent --url="
* Accept the machine's registration if needed and wait for package reporting to (try and) check the logs:
* tail /var/log/
* You should see `ValueError: too many values to unpack`.
* In a fresh instance, install an LSB module (ex. `lsb-core`) and the proposed version of Landscape Client.
* Now register the client with Landscape Server, wait for package-reporter to run again and verify no errors are raised.
* Additionally, make sure that package-reporter can report package information to the server properly.
[ Where problems could occur ]
* Because the fix also changed the approach to read the os-release file instead of the lsb_release command output, this could introduce unforeseen behavior with code that was written with the original implementation in mind.
* However, without these fixes, Landscape Client cannot report package data with lsb modules installed so it is hard to imagine how this would be worse.
[ Other Info ]
* GH PR for the fix: https:/
--------
Original bug report below:
--------
Package reporter from landscape client is failing to report to server because seemingly of a lsb parse issue.
/var/log/
2023-08-10 13:42:00,414 ERROR [MainThread] None
Traceback (most recent call last):
File "/usr/lib/
current.result = callback(
File "/usr/lib/
lsb_
File "/usr/lib/
dist, desc, release, code_name, _ = lsb_info.
ValueError: too many values to unpack (expected 5)
Multiple LSB Packages are installed
/usr/bin/
LSB Version: core-9.
lsb_release -a
LSB Version: core-9.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
Related branches
- David McLain: Pending requested
- Ubuntu Sponsors: Pending requested
- Canonical Server Reporter: Pending requested
- git-ubuntu import: Pending requested
-
Diff: 1578 lines (+1550/-0)4 files modifieddebian/changelog (+7/-0)
debian/patches/package-reporter-high-cpu.patch (+110/-0)
debian/patches/parse-lsb-output.patch (+1431/-0)
debian/patches/series (+2/-0)
- Andreas Hasenack: Needs Fixing
- David McLain: Pending requested
- Ubuntu Sponsors: Pending requested
- Canonical Server Reporter: Pending requested
-
Diff: 1661 lines (+1634/-0)4 files modifieddebian/changelog (+7/-0)
debian/patches/package-reporter-high-cpu.patch (+110/-0)
debian/patches/parse-lsb-output.patch (+1515/-0)
debian/patches/series (+2/-0)
description: | updated |
description: | updated |
description: | updated |
Changed in landscape-client: | |
status: | New → In Progress |
Changed in landscape-client: | |
status: | In Progress → Fix Committed |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
I have a workaround to point back to /etc/lsb-release filename in /usr/lib/ python3/ dist-packages/ landscape/ lib/lsb_ release. py
Looks like issue was introduced by
https:/ /git.launchpad. net/~landscape/ landscape- client/ +git/master/ commit/ ?id=78c8c956891 3b02d7df997437a a3aa5d832f7fb1