-
Bug
-
Resolution: Unresolved
-
Critical
-
None
-
quay-v3.16.0
-
False
-
-
False
-
-
Description:
After several pulls, in tag view "Pull Count" columns value keeps 1(or other like 4), but the "Last Pulled" updated
Env:
Quay stable-3-16-v4-19 https://quay.io/redhat-user-workloads/quay-eng-tenant/stable-3-16-v4-19@sha256:d562543a047e3d58ac99364d46b302430815422d5c46e8fc3f19a331df23cc63
Steps:
- Set FEATURE_IMAGE_PULL_STATS: true
change config.py REDIS_FLUSH_INTERVAL_SECONDS: 30 - Push busybox or ubuntu images to a repo, like quayorg/repo1

- Pull the multiple times

- Check tag view page Pull statistics column status
Result:
"Last Pulled" updated but "Pull Count" keeps 1
.
1st pull, timestamp: 4:30PM

Second pull, timestamp updated: 5:09PM

Quay log: (full log is attached)
app2.log:83834:pullstatsredisflushworker stdout | 2025-11-04 08:31:47,958 [80] [INFO] [apscheduler.executors.default] Job "RedisFlushWorker._flush_pull_metrics (trigger: interval[0:00:30], next run at: 2025-11-04 08:32:17 GMT)" executed successfully app2.log:85729:pullstatsredisflushworker stdout | 2025-11-04 08:32:12,421 [80] [ERROR] [util.metrics.prometheus] failed to push registry to pushgateway at http://localhost:9091 with grouping key {'host': 'quayregistry-quay-app-d85d7f54b-cdd7n', 'process_name': 'pullstatsredisflushworker.py', 'pid': '80'} app2.log:85730:pullstatsredisflushworker stdout | Traceback (most recent call last): app2.log:85731:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/urllib/request.py", line 1344, in do_open app2.log:85732:pullstatsredisflushworker stdout | h.request(req.get_method(), req.selector, req.data, headers, app2.log:85733:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/http/client.py", line 1338, in request app2.log:85734:pullstatsredisflushworker stdout | self._send_request(method, url, body, headers, encode_chunked) app2.log:85735:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/http/client.py", line 1384, in _send_request app2.log:85736:pullstatsredisflushworker stdout | self.endheaders(body, encode_chunked=encode_chunked) app2.log:85737:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/http/client.py", line 1333, in endheaders app2.log:85738:pullstatsredisflushworker stdout | self._send_output(message_body, encode_chunked=encode_chunked) app2.log:85739:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/http/client.py", line 1093, in _send_output app2.log:85740:pullstatsredisflushworker stdout | self.send(msg) app2.log:85741:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/http/client.py", line 1037, in send app2.log:85742:pullstatsredisflushworker stdout | self.connect() app2.log:85743:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/http/client.py", line 1003, in connect app2.log:85744:pullstatsredisflushworker stdout | self.sock = self._create_connection( app2.log:85745:pullstatsredisflushworker stdout | ^^^^^^^^^^^^^^^^^^^^^^^^ app2.log:85746:pullstatsredisflushworker stdout | File "/usr/lib64/python3.12/socket.py", line 865, in create_connection app2.log:85747:pullstatsredisflushworker stdout | raise exceptions[0]
Quay Config: config.yaml
BROWSER_API_CALLS_XHR_ONLY: false PERMANENTLY_DELETE_TAGS: true RESET_CHILD_MANIFEST_EXPIRATION: true FEATURE_EXTENDED_REPOSITORY_NAMES: true CREATE_NAMESPACE_ON_PUSH: true FEATURE_QUOTA_MANAGEMENT: true FEATURE_PROXY_CACHE: true FEATURE_USER_INITIALIZE: true FEATURE_PROXY_STORAGE: true FEATURE_UI_V2: true FEATURE_SUPERUSERS_FULL_ACCESS: true FEATURE_AUTO_PRUNE: true FEATURE_IMAGE_EXPIRY_TRIGGER: true NOTIFICATION_TASK_RUN_MINIMUM_INTERVAL_MINUTES: 5 SUPER_USERS: - quay - admin GLOBAL_READONLY_SUPER_USERS: - superglobalro FEATURE_IMAGE_PULL_STATS: true REDIS_FLUSH_INTERVAL_SECONDS: 30 PULL_METRICS_REDIS: host: quayregistry-quay-redis port: 6379 db: 1