ERROR when tracking information is not available (snap installed via resource)

Bug #1938271 reported by Yoshi Kadokawa
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Snap Layer
Fix Released
Undecided
Yoshi Kadokawa

Bug Description

When get_installed_channel function is called for a snap that is installed via a snap resource,
the following error will happen (example with Graylog charm).
This is easily reproducible with the following bundle.
https://pastebin.ubuntu.com/p/Ny3fsS3Mfg/

2021-07-28 07:19:20 INFO unit.graylog/0.juju-log server.go:314 Get channel for snap graylog
2021-07-28 07:20:00 ERROR unit.graylog/0.juju-log server.go:314 Hook error:
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/__init__.py", line 74, in main
    bus.dispatch(restricted=restricted_mode)
  File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 390, in dispatch
    _invoke(other_handlers)
  File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 359, in _invoke
    handler.invoke()
  File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 181, in invoke
    self._action(*args)
  File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 129, in refresh_graylog
    report_status()
  File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 333, in report_status
    channel_change_status = get_channel_change_status()
  File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/graylog/snap_change.py", line 46, in get_channel_change_status
    cur_channel = snap.get_installed_channel(SNAP_NAME)
  File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/snap.py", line 303, in get_installed_channel
    return subprocess.check_output(cmd).decode("utf-8", errors="replace").partition("tracking:")[-1].split()[0]
IndexError: list index out of range

2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 Traceback (most recent call last):
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/hooks/install", line 22, in <module>
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 main()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/__init__.py", line 74, in main
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 bus.dispatch(restricted=restricted_mode)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 390, in dispatch
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 _invoke(other_handlers)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 359, in _invoke
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 handler.invoke()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/.venv/lib/python3.8/site-packages/charms/reactive/bus.py", line 181, in invoke
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 self._action(*args)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 129, in refresh_graylog
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 report_status()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/reactive/graylog.py", line 333, in report_status
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 channel_change_status = get_channel_change_status()
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/graylog/snap_change.py", line 46, in get_channel_change_status
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 cur_channel = snap.get_installed_channel(SNAP_NAME)
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 File "/var/lib/juju/agents/unit-graylog-0/charm/lib/charms/layer/snap.py", line 303, in get_installed_channel
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 return subprocess.check_output(cmd).decode("utf-8", errors="replace").partition("tracking:")[-1].split()[0]
2021-07-28 07:20:00 WARNING unit.graylog/0.install logger.go:60 IndexError: list index out of range
2021-07-28 07:20:00 ERROR juju.worker.uniter.operation runhook.go:139 hook "install" (via explicit, bespoke hook script) failed: exit status 1

Related branches

Changed in layer-snap:
status: New → In Progress
assignee: nobody → Yoshi Kadokawa (yoshikadokawa)
Revision history for this message
Nobuto Murata (nobuto) wrote :
Changed in layer-snap:
status: In Progress → Fix Released
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.