Machine State Address Inst id Base AZ Message
0 started 10.139.162.98 juju-c9bfb2-0 ubuntu@22.04 Running
1 started 10.139.162.189 juju-c9bfb2-1 ubuntu@22.04 Running
juju ssh 0
$$ sudo -i
$$ cd /var/log/juju
# grep -rnI "downloading "
machine-0.log:106:2024-04-05 14:37:14 INFO juju.downloader download.go:109 downloading from ch:amd64/jammy/github-runner-140
unit-gh-stable-0.log:11:2024-04-05 14:37:14 INFO juju.worker.uniter.charm bundles.go:81 downloading ch:amd64/jammy/github-runner-140 from API server
juju ssh 1
$$ sudo -i
$$ cd /var/log/juju
root@juju-c9bfb2-1:/var/log/juju# grep -rnI "downloading "
machine-1.log:118:2024-04-05 14:37:21 INFO juju.downloader download.go:109 downloading from ch:amd64/jammy/github-runner-141
unit-gh-edge-0.log:11:2024-04-05 14:37:21 INFO juju.worker.uniter.charm bundles.go:81 downloading ch:amd64/jammy/github-runner-141 from API server
So both of those certainly believe that they are downloading and installing the versions that you have asked for.
I downloaded r 140, 141, 143, 145 to try and figure out what the differences are. If I strip it down too much:
$ diff -x "venv" -x "*.so" -x "*.pyc" -ur github-runner_r140 github-runner_r141
diff -x venv -x '*.so' -x '*.pyc' -ur github-runner_r140/manifest.yaml github-runner_r141/manifest.yaml
--- github-runner_r140/manifest.yaml 2024-03-06 06:05:32.000000000 -0500
+++ github-runner_r141/manifest.yaml 2024-03-12 04:53:28.000000000 -0400
@@ -9,5 +9,5 @@
- amd64
channel: '22.04'
name: ubuntu
-charmcraft-started-at: '2024-03-06T06:03:07.684053Z'
+charmcraft-started-at: '2024-03-12T04:51:25.680319Z'
charmcraft-version: 2.5.5
Which seems to say that the only thing that differed between 140 and 141 was maybe a charmcraft.yaml file (that doesn't end up in the rendered charm) that maybe had different dependencies?
Pulling that back a bit I get:
--- github-runner_r140/venv/wheel/vendored/vendor.txt 2024-03-06 06:05:24.000000000 -0500
+++ github-runner_r141/venv/wheel/vendored/vendor.txt 2024-03-12 04:53:18.000000000 -0400
@@ -1 +1 @@
-packaging==23.2
+packaging==24.0
diff -x '*.so' -x '*.pyc' -ur github-runner_r140/venv/wheel/wheelfile.py github-runner_r141/venv/wheel/wheelfile.py
--- github-runner_r140/venv/wheel/wheelfile.py 2024-03-06 06:05:24.000000000 -0500
+++ github-runner_r141/venv/wheel/wheelfile.py 2024-03-12 04:53:18.000000000 -0400
@@ -81,8 +81,8 @@
if algorithm.lower() in {"md5", "sha1"}: raise WheelError(
- "Weak hash algorithm ({}) is not permitted by PEP "
- "427".format(algorithm)
+ f"Weak hash algorithm ({algorithm}) is not permitted by "
+ f"PEP 427" )
self._file_hashes[path] = (
So I can look for wheelfile.py and see what is in it.
I did try to reproduce with these steps:
snap refresh juju --channel 3.1
juju bootstrap lxd lxd31
juju add-model gh-test
juju deploy github-runner --channel latest/stable --revision 140 gh-stable
juju deploy github-runner --channel latest/edge --revision 141 gh-edge
$ juju status
Model Controller Cloud/Region Version SLA Timestamp
gh-test lxd31 localhost/localhost 3.1.7 unsupported 10:39:25-04:00
App Version Status Scale Charm Channel Rev Exposed Message
gh-edge blocked 1 github-runner latest/edge 141 no Missing path configuration
gh-stable blocked 1 github-runner latest/stable 140 no Missing path configuration
Unit Workload Agent Machine Public address Ports Message
gh-edge/0* blocked idle 1 10.139.162.189 Missing path configuration
gh-stable/0* blocked idle 0 10.139.162.98 Missing path configuration
Machine State Address Inst id Base AZ Message
0 started 10.139.162.98 juju-c9bfb2-0 ubuntu@22.04 Running
1 started 10.139.162.189 juju-c9bfb2-1 ubuntu@22.04 Running
juju ssh 0 0.log:106: 2024-04- 05 14:37:14 INFO juju.downloader download.go:109 downloading from ch:amd64/ jammy/github- runner- 140 stable- 0.log:11: 2024-04- 05 14:37:14 INFO juju.worker. uniter. charm bundles.go:81 downloading ch:amd64/ jammy/github- runner- 140 from API server
$$ sudo -i
$$ cd /var/log/juju
# grep -rnI "downloading "
machine-
unit-gh-
juju ssh 1 c9bfb2- 1:/var/ log/juju# grep -rnI "downloading " 1.log:118: 2024-04- 05 14:37:21 INFO juju.downloader download.go:109 downloading from ch:amd64/ jammy/github- runner- 141 edge-0. log:11: 2024-04- 05 14:37:21 INFO juju.worker. uniter. charm bundles.go:81 downloading ch:amd64/ jammy/github- runner- 141 from API server
$$ sudo -i
$$ cd /var/log/juju
root@juju-
machine-
unit-gh-
So both of those certainly believe that they are downloading and installing the versions that you have asked for.
I downloaded r 140, 141, 143, 145 to try and figure out what the differences are. If I strip it down too much: runner_ r140/manifest. yaml github- runner_ r141/manifest. yaml runner_ r140/manifest. yaml 2024-03-06 06:05:32.000000000 -0500 runner_ r141/manifest. yaml 2024-03-12 04:53:28.000000000 -0400 started- at: '2024-03- 06T06:03: 07.684053Z' started- at: '2024-03- 12T04:51: 25.680319Z' version: 2.5.5
$ diff -x "venv" -x "*.so" -x "*.pyc" -ur github-runner_r140 github-runner_r141
diff -x venv -x '*.so' -x '*.pyc' -ur github-
--- github-
+++ github-
@@ -9,5 +9,5 @@
- amd64
channel: '22.04'
name: ubuntu
-charmcraft-
+charmcraft-
charmcraft-
Which seems to say that the only thing that differed between 140 and 141 was maybe a charmcraft.yaml file (that doesn't end up in the rendered charm) that maybe had different dependencies?
Pulling that back a bit I get: runner_ r140/venv/ wheel/vendored/ vendor. txt 2024-03-06 06:05:24.000000000 -0500 runner_ r141/venv/ wheel/vendored/ vendor. txt 2024-03-12 04:53:18.000000000 -0400 runner_ r140/venv/ wheel/wheelfile .py github- runner_ r141/venv/ wheel/wheelfile .py runner_ r140/venv/ wheel/wheelfile .py 2024-03-06 06:05:24.000000000 -0500 runner_ r141/venv/ wheel/wheelfile .py 2024-03-12 04:53:18.000000000 -0400
--- github-
+++ github-
@@ -1 +1 @@
-packaging==23.2
+packaging==24.0
diff -x '*.so' -x '*.pyc' -ur github-
--- github-
+++ github-
@@ -81,8 +81,8 @@
- "Weak hash algorithm ({}) is not permitted by PEP "
- "427".format(
+ f"Weak hash algorithm ({algorithm}) is not permitted by "
+ f"PEP 427"
So I can look for wheelfile.py and see what is in it.