Error when parsing lsb_release, landscape-package-reporter unable to report package list to server

Bug #2031036 reported by Steven LaCosse
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Landscape Client
Fix Committed
Undecided
Unassigned

Bug Description

Package reporter from landscape client is failing to report to server because seemingly of a lsb parse issue.

/var/log/landscape/package-reporter.log

2023-08-10 13:42:00,414 ERROR [MainThread] None
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 653, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/lib/python3/dist-packages/landscape/client/package/taskhandler.py", line 217, in got_server_uuid
    lsb_release_info = parse_lsb_release(self.lsb_release_filename)
  File "/usr/lib/python3/dist-packages/landscape/lib/lsb_release.py", line 31, in parse_lsb_release
    dist, desc, release, code_name, _ = lsb_info.decode().split("\n")
ValueError: too many values to unpack (expected 5)

Multiple LSB Packages are installed

/usr/bin/lsb_release
LSB Version: core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch

lsb_release -a
LSB Version: core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic

description: updated
description: updated
description: updated
Revision history for this message
Steven LaCosse (motosteven) wrote :

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=78c8c9568913b02d7df997437aa3aa5d832f7fb1

Revision history for this message
Juanmi Taboada (juanmitaboada) wrote (last edit ):

I have:
- Added tests for no LSB modules and several modules
- Improved parse_lsb_release() function to recognize modules

The solution has been provided in:
https://github.com/canonical/landscape-client/pull/170

Changed in landscape-client:
status: New → In Progress
Revision history for this message
Mitch Burton (mitchburton) wrote :

May I suggest we move away from parsing lsb_release output (or file) and instead use /etc/os-release or /usr/lib/os-release? I think generally it's more standardized.

See example: https://github.com/Perfect5th/landscape-client/blob/c5f6a4b673eb5f86281a8183242ae26e8580ca6b/landscape/lib/lsb_release.py#L73-L87

Revision history for this message
Juanmi Taboada (juanmitaboada) wrote : Re: [Bug 2031036] Re: Error when parsing lsb_release, landscape-package-reporter unable to report package list to server

I agree with you. I will have a look on it.

On Fri, 11 Aug 2023, 23:55 Mitch Burton, <email address hidden> wrote:

> May I suggest we move away from parsing lsb_release output (or file) and
> instead use /etc/os-release or /usr/lib/os-release? I think generally
> it's more standardized.
>
> See example: https://github.com/Perfect5th/landscape-
>
> client/blob/c5f6a4b673eb5f86281a8183242ae26e8580ca6b/landscape/lib/lsb_release.py#L73-L87
>
> --
> You received this bug notification because you are subscribed to
> Landscape Project.
> Matching subscriptions: Landscape Project
> https://bugs.launchpad.net/bugs/2031036
>
> Title:
> Error when parsing lsb_release, landscape-package-reporter unable to
> report package list to server
>
> Status in Landscape Client:
> In Progress
>
> Bug description:
> Package reporter from landscape client is failing to report to server
> because seemingly of a lsb parse issue.
>
> /var/log/landscape/package-reporter.log
>
> 2023-08-10 13:42:00,414 ERROR [MainThread] None
> Traceback (most recent call last):
> File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line
> 653, in _runCallbacks
> current.result = callback(current.result, *args, **kw)
> File
> "/usr/lib/python3/dist-packages/landscape/client/package/taskhandler.py",
> line 217, in got_server_uuid
> lsb_release_info = parse_lsb_release(self.lsb_release_filename)
> File "/usr/lib/python3/dist-packages/landscape/lib/lsb_release.py",
> line 31, in parse_lsb_release
> dist, desc, release, code_name, _ = lsb_info.decode().split("\n")
> ValueError: too many values to unpack (expected 5)
>
> Multiple LSB Packages are installed
>
> /usr/bin/lsb_release
> LSB Version:
> core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
>
> lsb_release -a
> LSB Version:
> core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
> Distributor ID: Ubuntu
> Description: Ubuntu 18.04.3 LTS
> Release: 18.04
> Codename: bionic
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/landscape-client/+bug/2031036/+subscriptions
>
>

Revision history for this message
Juanmi Taboada (juanmitaboada) wrote :

I just sent an update on the PR related to this issue.

Changed in landscape-client:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.