Bug 1843702 - registry-server fails to start on systems where /tmp is unavailable
Summary: registry-server fails to start on systems where /tmp is unavailable
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: OLM
Version: 4.5
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
: 4.6.0
Assignee: Evan Cordell
QA Contact: Jian Zhang
URL:
Whiteboard:
Depends On:
Blocks: 1843705 1846016
TreeView+ depends on / blocked
 
Reported: 2020-06-03 21:22 UTC by Nick Hale
Modified: 2020-10-27 16:05 UTC (History)
0 users

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1843705 (view as bug list)
Environment:
Last Closed: 2020-10-27 16:04:47 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github operator-framework operator-registry pull 343 0 None closed Bug 1843702: fix(copy): make tmpdir relative to current directory 2021-01-14 16:40:07 UTC
Github operator-framework operator-registry pull 353 0 None closed Bug 1843702: fix(copy): make tmpdir relative to current directory 2021-01-14 16:40:07 UTC
Red Hat Product Errata RHBA-2020:4196 0 None None None 2020-10-27 16:05:18 UTC

Description Nick Hale 2020-06-03 21:22:31 UTC
Description of problem:

The registry-server command fails to start on any system that does not have a /tmp directory available and writable.

This means that any indexes with scratch or binary-only bases are affected.

Version-Release number of selected component (if applicable):

4.5.0

How reproducible:

Always

Steps to Reproduce:
1. Create an index using opm: opm index add --bundles <bundle-img-ref> --tag <index-img-ref> (this should use the binary-only upstream-opm-builder image)
2. Attempt to run the index w/ docker or podman: docker run -it <index-img-ref>

Actual results:

docker run -it <index-img-ref>                                                                                                                                                                                                      ✘ 130
Error: open /tmp/db-085883360: no such file or directory
Usage:
   [flags]

Flags:
  -d, --database string          relative path to sqlite db (default "bundles.db")
  -h, --help                     help for this command
  -p, --port string              port number to serve on (default "50051")
      --skip-migrate             do  not attempt to migrate to the latest db revision when starting
  -t, --termination-log string   path to a container termination log file (default "/dev/termination-log")

time="2020-06-03T20:51:33Z" level=panic msg="open /tmp/db-085883360: no such file or directory"
panic: (*logrus.Entry) (0x1084020,0xc0001436c0)

goroutine 1 [running]:
github.com/sirupsen/logrus.Entry.log(0xc0000b8000, 0xc0001854a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /build/vendor/github.com/sirupsen/logrus/entry.go:239 +0x2db
github.com/sirupsen/logrus.(*Entry).Log(0xc000143570, 0xc000000000, 0xc00010ff40, 0x1, 0x1)
        /build/vendor/github.com/sirupsen/logrus/entry.go:268 +0xeb
github.com/sirupsen/logrus.(*Logger).Log(0xc0000b8000, 0x0, 0xc00010ff40, 0x1, 0x1)
        /build/vendor/github.com/sirupsen/logrus/logger.go:192 +0x7d
github.com/sirupsen/logrus.(*Logger).Panic(...)
        /build/vendor/github.com/sirupsen/logrus/logger.go:233
github.com/sirupsen/logrus.Panic(...)
        /build/vendor/github.com/sirupsen/logrus/exported.go:129
main.main()
        /build/cmd/registry-server/main.go:51 +0xbe


Expected results:


The registry-server starts normally; no panic logs.

Comment 4 Jian Zhang 2020-06-11 08:33:54 UTC
1, Build the latest version: opm
[root@preserve-olm-env operator-registry]# ./bin/opm version
Version: version.Version{OpmVersion:"1.12.3", GitCommit:"b3fdc91", BuildDate:"2020-06-11T08:07:39Z", GoOs:"linux", GoArch:"amd64"}

2, run the `index add`
[root@preserve-olm-env operator-registry]# ./bin/opm index add -b quay.io/olmqe/etcd-bundle:0.9.0 -t quay.io/olmqe/etcd-index:1843702
INFO[0000] building the index                            bundles="[quay.io/olmqe/etcd-bundle:0.9.0]"
INFO[0000] resolved name: quay.io/olmqe/etcd-bundle:0.9.0 
INFO[0000] fetched                                       digest="sha256:df6e623ed57f46c4ff80fd2fb027859986066570f7e6aae6435cd74908ed3333"
INFO[0000] fetched                                       digest="sha256:b107658da605b5721c34b3fc2abf9e6515aba4d0a7020e407131f783d77148f3"
INFO[0000] fetched                                       digest="sha256:e2e833ebbda87e017110ab08bd2c03b46540409d9014e4685d2736e206caf0f2"
INFO[0000] fetched                                       digest="sha256:78a6cdfac35dc99cea2ae6e012ddd6d556c163ecf55e694767efb1593f1eeb2c"
INFO[0001] unpacking layer: {application/vnd.docker.image.rootfs.diff.tar.gzip sha256:78a6cdfac35dc99cea2ae6e012ddd6d556c163ecf55e694767efb1593f1eeb2c 8006 [] map[] <nil>} 
INFO[0001] unpacking layer: {application/vnd.docker.image.rootfs.diff.tar.gzip sha256:b107658da605b5721c34b3fc2abf9e6515aba4d0a7020e407131f783d77148f3 260 [] map[] <nil>} 
INFO[0001] Could not find optional dependencies file     dir=bundle_tmp972628853 file=bundle_tmp972628853/metadata load=annotations
INFO[0001] found csv, loading bundle                     dir=bundle_tmp972628853 file=bundle_tmp972628853/manifests load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp972628853/manifests file=etcdbackups.etcd.database.coreos.com.crd.yaml load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp972628853/manifests file=etcdclusters.etcd.database.coreos.com.crd.yaml load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp972628853/manifests file=etcdoperator.v0.9.0.clusterserviceversion.yaml load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp972628853/manifests file=etcdrestores.etcd.database.coreos.com.crd.yaml load=bundle
INFO[0001] Generating dockerfile                         bundles="[quay.io/olmqe/etcd-bundle:0.9.0]"
INFO[0001] writing dockerfile: index.Dockerfile188207883  bundles="[quay.io/olmqe/etcd-bundle:0.9.0]"
INFO[0001] running podman build                          bundles="[quay.io/olmqe/etcd-bundle:0.9.0]"
INFO[0001] [podman build --format docker -f index.Dockerfile188207883 -t quay.io/olmqe/etcd-index:1843702 .]  bundles="[quay.io/olmqe/etcd-bundle:0.9.0]"

3, Run the podman command, it works well, LGTM, verify it.
[root@preserve-olm-env operator-registry]# podman run -ti quay.io/olmqe/etcd-index:1843702
time="2020-06-11T08:17:08Z" level=info msg="serving registry" database=/database/index.db port=50051

Comment 6 errata-xmlrpc 2020-10-27 16:04:47 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:4196


Note You need to log in before you can comment on or make changes to this bug.