[20.05][xenial] AttributeError: 'NoneType' object has no attribute 'ver_str'

Bug #1879378 reported by Dmitrii Shcherbakov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack RabbitMQ Server Charm
Triaged
Medium
Unassigned

Bug Description

Version comparison during upgrade-charm handling fails as follows:

Traceback (most recent call last):
  File "./hooks/upgrade-charm", line 973, in <module>
    try:
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/hookenv.py", line 934, in execute
    self._hooks[hook_name]()
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/contrib/hardening/harden.py", line 93, in _harden_inner2
    return f(*args, **kwargs)
  File "./hooks/upgrade-charm", line 758, in upgrade_charm
    rabbit.cluster_with()
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/hooks/rabbit_utils.py", line 536, in cluster_with
    if node in running_nodes():
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/hookenv.py", line 84, in wrapper
    res = func(*args, **kwargs)
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/hooks/rabbit_utils.py", line 833, in running_nodes
    return nodes(get_running=True)
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/hookenv.py", line 84, in wrapper
    res = func(*args, **kwargs)
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/hooks/rabbit_utils.py", line 808, in nodes
    if caching_cmp_pkgrevno('rabbitmq-server', '3.8.2') >= 0:
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/hookenv.py", line 84, in wrapper
    res = func(*args, **kwargs)
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/hooks/rabbit_utils.py", line 308, in caching_cmp_pkgrevno
    return cmp_pkgrevno(package, revno, pkgcache)
  File "/var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py", line 103, in cmp_pkgrevno
    return apt_pkg.version_compare(pkg.current_ver.ver_str, revno)
AttributeError: 'NoneType' object has no attribute 'ver_str'

Revision history for this message
Dmitrii Shcherbakov (dmitriis) wrote :

[10] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/hooks/rabbit_utils.py(308)caching_cmp_pkgrevno()
-> return cmp_pkgrevno(package, revno, pkgcache)
(Pdb++) s
--Call--
[11] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py(87)cmp_pkgrevno()
-> def cmp_pkgrevno(package, revno, pkgcache=None):
(Pdb++) l
 82 :rtype: str
 83 """
 84 return lsb_release()['DISTRIB_CODENAME'].lower()
 85
 86
 87 -> def cmp_pkgrevno(package, revno, pkgcache=None):
 88 """Compare supplied revno with the revno of the installed package.
 89
 90 * 1 => Installed revno is greater than supplied arg
 91 * 0 => Installed revno is the same as supplied arg
 92 * -1 => Installed revno is less than supplied arg
(Pdb++) package
'rabbitmq-server'
(Pdb++) revno
'3.8.2'
(Pdb++) n
[11] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py(98)cmp_pkgrevno()
-> from charmhelpers.fetch import apt_pkg
(Pdb++) n
[11] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py(99)cmp_pkgrevno()
-> if not pkgcache:
(Pdb++) n
[11] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py(100)cmp_pkgrevno()
-> from charmhelpers.fetch import apt_cache
(Pdb++) n
[11] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py(101)cmp_pkgrevno()
-> pkgcache = apt_cache()
(Pdb++) n
[11] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py(102)cmp_pkgrevno()
-> pkg = pkgcache[package]
(Pdb++) n
[11] > /var/lib/juju/agents/unit-rabbitmq-server-2/charm/charmhelpers/core/host_factory/ubuntu.py(103)cmp_pkgrevno()
-> return apt_pkg.version_compare(pkg.current_ver.ver_str, revno)
(Pdb++) pkg
{'name': 'rabbitmq-server', 'homepage': 'http://www.rabbitmq.com/', 'version': '3.5.7-1ubuntu0.16.04.2', 'sha256': 'e75f8948813db79a3d384bad7bf7ecf96a6a5ab565fa6f4095
b5d6755ac36dfd', 'depends': 'adduser, erlang-nox (>= 1:13.b.3) | esl-erlang, logrotate, init-system-helpers (>= 1.18~)', 'current_ver': None, 'bugs': 'https://bugs.la
unchpad.net/ubuntu/+filebug', 'supported': '5y', 'architecture': None, 'sha1': '3eaf4e69802ce7ecc26bad71f6f6cc46b3dbead5', 'description-md5': '78e91bfb996ee4ae5d16c93
298f5f6e8', 'filename': 'pool/main/r/rabbitmq-server/rabbitmq-server_3.5.7-1ubuntu0.16.04.2_all.deb', 'maintainer': 'Ubuntu Developers <<email address hidden>
ntu.com>', 'description-en': 'AMQP server written in Erlang\nRabbitMQ is an implementation of AMQP, the emerging standard for high\nperformance enterprise messaging.
The RabbitMQ server is a robust and\nscalable implementation of an AMQP broker.', 'installed-size': '5120', 'md5sum': '21b25f9cb60e61cb0f585c9916675426', 'priority':
'extra', 'original-maintainer': 'PKG OpenStack <email address hidden>', 'size': '4251634', 'section': 'net', 'origin': 'Ubuntu'}
(Pdb++) pkg.current_ver
(Pdb++) pkg.current_ver.ver_str
*** AttributeError: 'NoneType' object has no attribute 'ver_str'

description: updated
Revision history for this message
Dmitrii Shcherbakov (dmitriis) wrote :

This would work on xenial:

apt_pkg.version_compare(pkg.version, revno)

summary: - AttributeError: 'NoneType' object has no attribute 'ver_str'
+ [20.05][xenial] AttributeError: 'NoneType' object has no attribute
+ 'ver_str'
James Page (james-page)
Changed in charm-rabbitmq-server:
status: New → Triaged
importance: Undecided → Medium
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.