AttributeError: module 'semver' has no attribute 'Version'

When doing the most recent core update on one of my servers running NS8, I received an error while it was updating and the update stopped. All my other servers went through the update fine. Now, when I try to force the update via api-cli as well as when it tries to “retrieve available apps” for the dash board, I get this error:

AttributeError: module ‘semver’ has no attribute ‘Version’

Looking for a way to get past this.

Thanks

Please tell me more about the server: base os, first install date and version, previous upgrades etc.

Base OS is Rocky Linux 9.4, It’s been installed for a couple months and has been through multiple updates and had no problems to this point. All my NS8 servers are of the same version.

Please, share the full error message from a log excerpt.

See also this topic

1 Like

Sorry took so long. Here is the trace that shows in the web interface:

Traceback (most recent call last):
File “/usr/local/agent/pypkg/cluster/modules.py”, line 175, in _parse_version_object
vinfo = semver.Version.parse(v)
AttributeError: module ‘semver’ has no attribute ‘Version’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/var/lib/nethserver/cluster/actions/list-modules/50read”, line 36, in
installed = cluster.modules.list_installed(rdb, skip_core_modules = True)
File “/usr/local/agent/pypkg/cluster/modules.py”, line 295, in list_installed
instances.sort(key=lambda v: _parse_version_object(v[“version”]), reverse=True)
File “/usr/local/agent/pypkg/cluster/modules.py”, line 295, in
instances.sort(key=lambda v: _parse_version_object(v[“version”]), reverse=True)
File “/usr/local/agent/pypkg/cluster/modules.py”, line 177, in _parse_version_object
vinfo = semver.Version(0)
AttributeError: module ‘semver’ has no attribute ‘Version’

When I run the python version checks, the first comes back with:

Python 3.9.18

Even though I have also installed Python3.11
runagent python3 -msemver --version gives a long list of errors


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 608, in main.VersionInfo.getitem
Failed example:
ver = semver.VersionInfo.parse(“3.4.5”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.getitem[0]>”, line 1, in
ver = semver.VersionInfo.parse(“3.4.5”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 609, in main.VersionInfo.getitem
Failed example:
ver[0], ver[1], ver[2]
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.getitem[1]>”, line 1, in
ver[0], ver[1], ver[2]
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 177, in main.VersionInfo._asdict
Failed example:
semver.VersionInfo(3, 2, 1).to_dict()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo._asdict[0]>”, line 1, in
semver.VersionInfo(3, 2, 1).to_dict()
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 176, in main.VersionInfo._astuple
Failed example:
semver.VersionInfo(5, 3, 1).to_tuple()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo._astuple[0]>”, line 1, in
semver.VersionInfo(5, 3, 1).to_tuple()
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 463, in main.VersionInfo.bump_build
Failed example:
ver = semver.VersionInfo.parse(“3.4.5-rc.1+build.9”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_build[0]>”, line 1, in
ver = semver.VersionInfo.parse(“3.4.5-rc.1+build.9”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 464, in main.VersionInfo.bump_build
Failed example:
ver.bump_build()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_build[1]>”, line 1, in
ver.bump_build()
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 399, in main.VersionInfo.bump_major
Failed example:
ver = semver.VersionInfo.parse(“3.4.5”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_major[0]>”, line 1, in
ver = semver.VersionInfo.parse(“3.4.5”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 400, in main.VersionInfo.bump_major
Failed example:
ver.bump_major()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_major[1]>”, line 1, in
ver.bump_major()
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 414, in main.VersionInfo.bump_minor
Failed example:
ver = semver.VersionInfo.parse(“3.4.5”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_minor[0]>”, line 1, in
ver = semver.VersionInfo.parse(“3.4.5”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 415, in main.VersionInfo.bump_minor
Failed example:
ver.bump_minor()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_minor[1]>”, line 1, in
ver.bump_minor()
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 429, in main.VersionInfo.bump_patch
Failed example:
ver = semver.VersionInfo.parse(“3.4.5”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_patch[0]>”, line 1, in
ver = semver.VersionInfo.parse(“3.4.5”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 430, in main.VersionInfo.bump_patch
Failed example:
ver.bump_patch()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_patch[1]>”, line 1, in
ver.bump_patch()
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 445, in main.VersionInfo.bump_prerelease
Failed example:
ver = semver.VersionInfo.parse(“3.4.5-rc.1”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_prerelease[0]>”, line 1, in
ver = semver.VersionInfo.parse(“3.4.5-rc.1”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 446, in main.VersionInfo.bump_prerelease
Failed example:
ver.bump_prerelease()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.bump_prerelease[1]>”, line 1, in
ver.bump_prerelease()
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 482, in main.VersionInfo.compare
Failed example:
semver.VersionInfo.parse(“1.0.0”).compare(“2.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.compare[0]>”, line 1, in
semver.VersionInfo.parse(“1.0.0”).compare(“2.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 484, in main.VersionInfo.compare
Failed example:
semver.VersionInfo.parse(“2.0.0”).compare(“1.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.compare[1]>”, line 1, in
semver.VersionInfo.parse(“2.0.0”).compare(“1.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 486, in main.VersionInfo.compare
Failed example:
semver.VersionInfo.parse(“2.0.0”).compare(“2.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.compare[2]>”, line 1, in
semver.VersionInfo.parse(“2.0.0”).compare(“2.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 488, in main.VersionInfo.compare
Failed example:
semver.VersionInfo.parse(“2.0.0”).compare(dict(major=2, minor=0, patch=0))
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.compare[3]>”, line 1, in
semver.VersionInfo.parse(“2.0.0”).compare(dict(major=2, minor=0, patch=0))
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 653, in main.VersionInfo.finalize_version
Failed example:
str(semver.VersionInfo.parse(‘1.2.3-rc.5’).finalize_version())
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.finalize_version[0]>”, line 1, in
str(semver.VersionInfo.parse(‘1.2.3-rc.5’).finalize_version())
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 673, in main.VersionInfo.match
Failed example:
semver.VersionInfo.parse(“2.0.0”).match(“>=1.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.match[0]>”, line 1, in
semver.VersionInfo.parse(“2.0.0”).match(“>=1.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 675, in main.VersionInfo.match
Failed example:
semver.VersionInfo.parse(“1.0.0”).match(“>1.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.match[1]>”, line 1, in
semver.VersionInfo.parse(“1.0.0”).match(“>1.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 535, in main.VersionInfo.next_version
Failed example:
str(semver.VersionInfo.parse(“0.1.4”).next_version(“prerelease”))
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.next_version[0]>”, line 1, in
str(semver.VersionInfo.parse(“0.1.4”).next_version(“prerelease”))
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 720, in main.VersionInfo.parse
Failed example:
semver.VersionInfo.parse(‘3.4.5-pre.2+build.4’)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.parse[0]>”, line 1, in
semver.VersionInfo.parse(‘3.4.5-pre.2+build.4’)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 340, in main.VersionInfo.to_dict
Failed example:
semver.VersionInfo(3, 2, 1).to_dict()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.to_dict[0]>”, line 1, in
semver.VersionInfo(3, 2, 1).to_dict()
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 323, in main.VersionInfo.to_tuple
Failed example:
semver.VersionInfo(5, 3, 1).to_tuple()
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.VersionInfo.to_tuple[0]>”, line 1, in
semver.VersionInfo(5, 3, 1).to_tuple()
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 177, in main.bump_build
Failed example:
semver.bump_build(‘3.4.5-rc.1+build.9’)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.bump_build[0]>”, line 1, in
semver.bump_build(‘3.4.5-rc.1+build.9’)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 176, in main.bump_major
Failed example:
semver.bump_major(“3.4.5”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.bump_major[0]>”, line 1, in
semver.bump_major(“3.4.5”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 176, in main.bump_minor
Failed example:
semver.bump_minor(“3.4.5”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.bump_minor[0]>”, line 1, in
semver.bump_minor(“3.4.5”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 176, in main.bump_patch
Failed example:
semver.bump_patch(“3.4.5”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.bump_patch[0]>”, line 1, in
semver.bump_patch(“3.4.5”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 177, in main.bump_prerelease
Failed example:
semver.bump_prerelease(‘3.4.5’, ‘dev’)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.bump_prerelease[0]>”, line 1, in
semver.bump_prerelease(‘3.4.5’, ‘dev’)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 175, in main.compare
Failed example:
semver.compare(“1.0.0”, “2.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.compare[0]>”, line 1, in
semver.compare(“1.0.0”, “2.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 177, in main.compare
Failed example:
semver.compare(“2.0.0”, “1.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.compare[1]>”, line 1, in
semver.compare(“2.0.0”, “1.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 179, in main.compare
Failed example:
semver.compare(“2.0.0”, “2.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.compare[2]>”, line 1, in
semver.compare(“2.0.0”, “2.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 179, in main.finalize_version
Failed example:
semver.finalize_version(‘1.2.3-rc.5’)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.finalize_version[0]>”, line 1, in
semver.finalize_version(‘1.2.3-rc.5’)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 180, in main.format_version
Failed example:
semver.format_version(3, 4, 5, ‘pre.2’, ‘build.4’)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.format_version[0]>”, line 1, in
semver.format_version(3, 4, 5, ‘pre.2’, ‘build.4’)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 180, in main.match
Failed example:
semver.match(“2.0.0”, “>=1.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.match[0]>”, line 1, in
semver.match(“2.0.0”, “>=1.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 182, in main.match
Failed example:
semver.match(“1.0.0”, “>1.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.match[1]>”, line 1, in
semver.match(“1.0.0”, “>1.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 174, in main.max_ver
Failed example:
semver.max_ver(“1.0.0”, “2.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.max_ver[0]>”, line 1, in
semver.max_ver(“1.0.0”, “2.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 174, in main.min_ver
Failed example:
semver.min_ver(“1.0.0”, “2.0.0”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.min_ver[0]>”, line 1, in
semver.min_ver(“1.0.0”, “2.0.0”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 178, in main.parse
Failed example:
ver = semver.parse(‘3.4.5-pre.2+build.4’)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse[0]>”, line 1, in
ver = semver.parse(‘3.4.5-pre.2+build.4’)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 179, in main.parse
Failed example:
ver[‘major’]
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse[1]>”, line 1, in
ver[‘major’]
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 181, in main.parse
Failed example:
ver[‘minor’]
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse[2]>”, line 1, in
ver[‘minor’]
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 183, in main.parse
Failed example:
ver[‘patch’]
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse[3]>”, line 1, in
ver[‘patch’]
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 185, in main.parse
Failed example:
ver[‘prerelease’]
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse[4]>”, line 1, in
ver[‘prerelease’]
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 187, in main.parse
Failed example:
ver[‘build’]
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse[5]>”, line 1, in
ver[‘build’]
NameError: name ‘ver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 179, in main.parse_version_info
Failed example:
version_info = semver.VersionInfo.parse(“3.4.5-pre.2+build.4”)
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse_version_info[0]>”, line 1, in
version_info = semver.VersionInfo.parse(“3.4.5-pre.2+build.4”)
NameError: name ‘semver’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 180, in main.parse_version_info
Failed example:
version_info.major
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse_version_info[1]>”, line 1, in
version_info.major
NameError: name ‘version_info’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 182, in main.parse_version_info
Failed example:
version_info.minor
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse_version_info[2]>”, line 1, in
version_info.minor
NameError: name ‘version_info’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 184, in main.parse_version_info
Failed example:
version_info.patch
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse_version_info[3]>”, line 1, in
version_info.patch
NameError: name ‘version_info’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 186, in main.parse_version_info
Failed example:
version_info.prerelease
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse_version_info[4]>”, line 1, in
version_info.prerelease
NameError: name ‘version_info’ is not defined


File “/usr/local/agent/pyenv/lib64/python3.9/site-packages/semver.py”, line 188, in main.parse_version_info
Failed example:
version_info.build
Exception raised:
Traceback (most recent call last):
File “/usr/lib64/python3.9/doctest.py”, line 1334, in __run
exec(compile(example.source, filename, “single”,
File “<doctest main.parse_version_info[5]>”, line 1, in
version_info.build
NameError: name ‘version_info’ is not defined


28 items had failures:
2 of 2 in main.VersionInfo.getitem
1 of 1 in main.VersionInfo._asdict
1 of 1 in main.VersionInfo._astuple
2 of 2 in main.VersionInfo.bump_build
2 of 2 in main.VersionInfo.bump_major
2 of 2 in main.VersionInfo.bump_minor
2 of 2 in main.VersionInfo.bump_patch
2 of 2 in main.VersionInfo.bump_prerelease
4 of 4 in main.VersionInfo.compare
1 of 1 in main.VersionInfo.finalize_version
2 of 2 in main.VersionInfo.match
1 of 1 in main.VersionInfo.next_version
1 of 1 in main.VersionInfo.parse
1 of 1 in main.VersionInfo.to_dict
1 of 1 in main.VersionInfo.to_tuple
1 of 1 in main.bump_build
1 of 1 in main.bump_major
1 of 1 in main.bump_minor
1 of 1 in main.bump_patch
1 of 1 in main.bump_prerelease
3 of 3 in main.compare
1 of 1 in main.finalize_version
1 of 1 in main.format_version
2 of 2 in main.match
1 of 1 in main.max_ver
1 of 1 in main.min_ver
6 of 6 in main.parse
6 of 6 in main.parse_version_info
Test Failed 51 failures.

1 Like

I now have a second server with the same issue. Here is the trace:

{“context”:{“action”:“update-core”,“data”:{“nodes”:[1]},“extra”:{“description”:“Processing”,“eventId”:“1f98ab1a-a105-42f1-9b3b-c189c126f749”,“title”:“Update core”},“id”:“1aff4cca-b9d8-4088-9207-786ce28124c6”,“parent”:“”,“queue”:“cluster/tasks”,“timestamp”:“2024-08-06T16:25:59.402493991Z”,“user”:“admin”},“status”:“aborted”,“progress”:0,“subTasks”:[{“context”:{“action”:“list-actions”,“data”:{},“extra”:{},“id”:“2a573b0e-ccd8-4cdf-9853-df759024990c”,“parent”:“1aff4cca-b9d8-4088-9207-786ce28124c6”},“status”:“completed”,“progress”:100,“subTasks”:,“result”:{“error”:“”,“exit_code”:0,“file”:“task/node/1/2a573b0e-ccd8-4cdf-9853-df759024990c”,“output”:[“start-support-session”,“stop-support-session”,“add-module”,“get-fqdn”,“get-info”,“get-support-session”,“remove-module”,“remove-tun”,“update-core”,“add-tun”,“get-firewall-status”,“set-fqdn”,“set-name”,“add-public-service”,“remove-custom-zone”,“update-os”,“add-custom-zone”,“get-facts”,“get-name”,“get-node-status”,“remove-public-service”,“validate-leader-fqdn”,“list-actions”,“cancel-task”]}}],“validated”:false,“result”:{“error”:“Traceback (most recent call last):\n File "/usr/local/agent/pypkg/cluster/modules.py", line 175, in _parse_version_object\n vinfo = semver.Version.parse(v)\nAttributeError: module ‘semver’ has no attribute ‘Version’\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "/var/lib/nethserver/cluster/actions/update-core/50update_core", line 22, in \n core_url = cluster.modules.get_latest_module(‘core’, rdb)\n File "/usr/local/agent/pypkg/cluster/modules.py", line 149, in get_latest_module\n available = list_available(rdb)\n File "/usr/local/agent/pypkg/cluster/modules.py", line 258, in list_available\n rmod[‘versions’].sort(key=lambda v: _parse_version_object(v["tag"]), reverse=True)\n File "/usr/local/agent/pypkg/cluster/modules.py", line 258, in \n rmod[‘versions’].sort(key=lambda v: _parse_version_object(v["tag"]), reverse=True)\n File "/usr/local/agent/pypkg/cluster/modules.py", line 177, in _parse_version_object\n vinfo = semver.Version(0)\nAttributeError: module ‘semver’ has no attribute ‘Version’\n”,“exit_code”:1,“file”:“task/cluster/1aff4cca-b9d8-4088-9207-786ce28124c6”,“output”:“”}}

And:

Traceback (most recent call last):
File “/usr/local/agent/pypkg/cluster/modules.py”, line 175, in _parse_version_object
vinfo = semver.Version.parse(v)
AttributeError: module ‘semver’ has no attribute ‘Version’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/var/lib/nethserver/cluster/actions/update-core/50update_core”, line 22, in
core_url = cluster.modules.get_latest_module(‘core’, rdb)
File “/usr/local/agent/pypkg/cluster/modules.py”, line 149, in get_latest_module
available = list_available(rdb)
File “/usr/local/agent/pypkg/cluster/modules.py”, line 258, in list_available
rmod[‘versions’].sort(key=lambda v: _parse_version_object(v[“tag”]), reverse=True)
File “/usr/local/agent/pypkg/cluster/modules.py”, line 258, in
rmod[‘versions’].sort(key=lambda v: _parse_version_object(v[“tag”]), reverse=True)
File “/usr/local/agent/pypkg/cluster/modules.py”, line 177, in _parse_version_object
vinfo = semver.Version(0)
AttributeError: module ‘semver’ has no attribute ‘Version’

1 Like

In Rocky Linux you should have both Python 3.9 and Python 3.11 installed at the same time. By default python3 points to Python 3.9, but under runagent it points to Python 3.11.

From the attached messages we see Python 3.9 is running instead. I don’t know why, but you can start from the Beta 2 upgrade instructions and try to switch the Python virtual environment from 3.9 to 3.11.

Look at the instructions here: Release notes — NS8 documentation

2 Likes

Thank you, I had missed that the script was needed for Rocky as well as Debian. I ran that, and it is fixed. Secondary question, I am am wondering if I then need to run the instructions for moving through the RC candidates to the final. I am not noticing any other issues at this point, but want to make sure it’s functioning as it should.

If you started with Beta 2, you need to follow all the upgrade instructions from that point onward.

As alternative, consider also to reinstall, with backup/restore of individual application instances.

1 Like