Comment 3 for bug 2060271

Revision history for this message
John A Meinel (jameinel) wrote :

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
$$ 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.