Project

General

Profile

Actions

Bug #21657

closed

`arvados-client diagnostics` fails trying to introspect OCIv2 Docker image

Added by Brett Smith 8 months ago. Updated 7 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Deployment
Story points:
-
Release:
Release relationship:
Auto

Description

This is the arvados-client version of an issue we previously fixed in arv-keepdocker. See #21417 for background and discussion, and 5f1b2148d042323bd1a6c963aae1bdbe2ef8e73e for the fix we implemented there.

On a Debian 12 system:

$ docker version
Client: Docker Engine - Community
 Version:           26.0.0
 API version:       1.45
 Go version:        go1.21.8
 Git commit:        2ae903e
 Built:             Wed Mar 20 15:18:01 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.0.0
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.8
  Git commit:       8b79278
  Built:            Wed Mar 20 15:18:01 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

$ arvados-client diagnostics -internal-client
INFO       5: running health check (same as `arvados-server check`) 
INFO      ... skipping because config could not be loaded: open /etc/arvados/config.yml: no such file or directory 
INFO      10: getting discovery document from https://z2a07.arvadosapi.com/discovery/v1/apis/arvados/v1/rest 
INFO      20: getting exported config from https://z2a07.arvadosapi.com/arvados/v1/config 
INFO      30: getting current user record            
INFO      40: connecting to service endpoint https://keep.z2a07.arvadosapi.com:443/ 
INFO      41: connecting to service endpoint https://*.collections.z2a07.arvadosapi.com:443/ 
INFO      42: connecting to service endpoint https://download.z2a07.arvadosapi.com:443/ 
INFO      43: connecting to service endpoint wss://ws.z2a07.arvadosapi.com/websocket 
INFO      44: connecting to service endpoint https://workbench.z2a07.arvadosapi.com:443/ 
INFO      45: connecting to service endpoint https://workbench2.z2a07.arvadosapi.com:443/ 
INFO      50: checking CORS headers at https://z2a07.arvadosapi.com:443/ 
INFO      51: checking CORS headers at https://keep.z2a07.arvadosapi.com:443/d41d8cd98f00b204e9800998ecf8427e+0 
INFO      52: checking CORS headers at https://download.z2a07.arvadosapi.com:443/ 
INFO      60: checking internal/external client detection 
INFO      ... controller returned only non-proxy services, this host is treated as "internal" 
INFO      61: reading+writing via keep service at http://10.1.2.13:25107/ 
INFO      80: finding/creating "scratch area for diagnostics" project 
INFO      90: creating temporary collection          
[+] Building 9.8s (8/8) FINISHED                                                           docker:default
 => [internal] load build definition from Dockerfile                                                 0.0s
 => => transferring dockerfile: 241B                                                                 0.0s
 => [internal] load metadata for docker.io/library/debian:stable-slim                                0.3s
 => [internal] load .dockerignore                                                                    0.0s
 => => transferring context: 2B                                                                      0.0s
 => [internal] load build context                                                                    0.1s
 => => transferring context: 17.84MB                                                                 0.1s
 => [1/3] FROM docker.io/library/debian:stable-slim@sha256:d10f0545d14bad5f4d230301f7e4fd904384f2dd  2.2s
 => => resolve docker.io/library/debian:stable-slim@sha256:d10f0545d14bad5f4d230301f7e4fd904384f2dd  0.0s
 => => sha256:d10f0545d14bad5f4d230301f7e4fd904384f2dd16fda16d708f936c2fa1db3e 1.85kB / 1.85kB       0.0s
 => => sha256:55693b5c400737391c2653f1d6e38d52bbe86158e4f41fe14c24e106b56fc1d7 529B / 529B           0.0s
 => => sha256:7d59f4f1025000685174899bd0868cda8ecf1898324185214f454659ae2ca263 1.46kB / 1.46kB       0.0s
 => => sha256:dd4fe0c525b47207b1d1cf48adbeb07bebf852b5acb3efc4a9637e30296b80d0 29.12MB / 29.12MB     0.4s
 => => extracting sha256:dd4fe0c525b47207b1d1cf48adbeb07bebf852b5acb3efc4a9637e30296b80d0            1.6s
 => [2/3] RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-r  6.9s
 => [3/3] COPY /arvados-client /arvados-client                                                       0.1s 
 => exporting to image                                                                               0.2s 
 => => exporting layers                                                                              0.1s 
 => => writing image sha256:e3687a4e180ffdc19bafb93990bd26aed4cbed8ff64c39c72066ea9290f39e02         0.0s 
 => => naming to docker.io/library/arvados-client-diagnostics:8b674423a                              0.0s 
INFO      ... arvados-client version: /arvados-client 2.8.0~dev20240402211858 (go1.20.6)                  
INFO      ... docker image size is 124898304         
ERROR   internal error/bug: cannot find {sha256}.json file in docker image tar file 
INFO    9990: deleting temporary collection          

--- cut here --- error summary ---

ERROR   internal error/bug: cannot find {sha256}.json file in docker image tar file 

Subtasks 1 (0 open1 closed)

Task #21675: Review 21657-diag-docker-formatResolvedTom Clegg04/11/2024Actions

Related issues

Related to Arvados - Bug #21417: Stop trying to read image timestamp from docker metadata in arv-keepdockerResolvedBrett Smith02/02/2024Actions
Blocks Arvados - Feature #21666: provision.sh uses arvados-client diagnostics instead of run-test.shResolvedLucas Di PentimaActions
Actions #1

Updated by Brett Smith 8 months ago

  • Related to Bug #21417: Stop trying to read image timestamp from docker metadata in arv-keepdocker added
Actions #2

Updated by Brett Smith 8 months ago

  • Description updated (diff)
Actions #3

Updated by Peter Amstutz 8 months ago

  • Target version set to Development 2024-04-24 sprint
Actions #4

Updated by Peter Amstutz 8 months ago

  • Category set to Deployment
Actions #5

Updated by Peter Amstutz 8 months ago

  • Blocks Feature #21666: provision.sh uses arvados-client diagnostics instead of run-test.sh added
Actions #6

Updated by Tom Clegg 7 months ago

  • Assigned To set to Tom Clegg
Actions #7

Updated by Tom Clegg 7 months ago

  • Status changed from New to In Progress

21657-diag-docker-format @ efc7e2a46e0a82bf9d1af0761f2970076c6f1203 -- developer-run-tests: #4163

    21657: Update docker archive ID introspection code for OCIv2.

    Also, when not using the built-in image, we already rely on having
    docker tools available, so use `docker inspect` instead of trying to
    read the tarball.

    This way the introspection code now only needs to work on the built-in
    image.  And now there's a test for that.
Actions #8

Updated by Lucas Di Pentima 7 months ago

This LGTM, thanks.

Actions #9

Updated by Tom Clegg 7 months ago

  • Status changed from In Progress to Resolved
Actions #10

Updated by Peter Amstutz 7 months ago

  • Release set to 70
Actions

Also available in: Atom PDF