hyperhq / hyperstart

The tiny Init service for HyperContainer
https://www.hypercontainer.io
Apache License 2.0
134 stars 63 forks source link

yum failed even with yum-plugin-ovl #88

Open gnawux opened 8 years ago

gnawux commented 8 years ago

looks this is not the same with #74 , and I have already applied #86 and #87

[root@centos-rpm-build SPECS]# yum install strace
Loaded plugins: fastestmirror, ovl
base                                                     | 3.6 kB     00:00
extras                                                   | 3.4 kB     00:00
updates                                                  | 3.4 kB     00:00
Loading mirror speeds from cached hostfile
 * base: mirror.stjschools.org
 * extras: mirror.keystealth.org
 * updates: mirror.hmc.edu
Resolving Dependencies
--> Running transaction check
---> Package strace.x86_64 0:4.8-11.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch             Version                 Repository      Size
================================================================================
Installing:
 strace           x86_64           4.8-11.el7              base           265 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 265 k
Installed size: 950 k
Is this ok [y/d/N]: y
Downloading packages:
strace-4.8-11.el7.x86_64.rpm                               | 265 kB   00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : strace-4.8-11.el7.x86_64                                     1/1

Rpmdb checksum is invalid: dCDPT(pkg checksums): strace.x86_64 0:4.8-11.el7 - u

There is a warning: Warning: RPMDB altered outside of yum., and failed at last

bergwolf commented 8 years ago

Are you using latest centos image? I am seeing a different error and it is because cpio open got EACESS (https://github.com/hyperhq/hyperstart/issues/74#issuecomment-216864809)

[root@hyperpublic ~]# hyperctl pull centos
Using default tag: latest
latest: Pulling from library/centos

a3ed95caeb02: Already exists
5989106db7fb: Already exists
Digest: sha256:1b9adf413b3ab95ce430c2039954bb0db0c8e2672c48182f2c5b3d30373d5b71
Status: Image is up to date for centos:latest
[root@hyperpublic ~]# hyperctl run -d centos
POD id is pod-WySYrcQjAK
Time to run a POD is 2839 ms
[root@hyperpublic ~]# hyperctl exec -t pod-WySYrcQjAK bash
bash-4.2# yum install -y strace
Loaded plugins: fastestmirror, ovl
base                                                     | 3.6 kB     00:00
extras                                                   | 3.4 kB     00:00
updates                                                  | 3.4 kB     00:00
(1/4): base/7/x86_64/group_gz                              | 155 kB   00:01
(2/4): extras/7/x86_64/primary_db                          | 117 kB   00:01
(3/4): base/7/x86_64/primary_db                            | 5.3 MB   00:05
(4/4): updates/7/x86_64/primary_db                         | 4.1 MB   00:09
Determining fastest mirrors
 * base: mirrors.yun-idc.com
 * extras: mirrors.cug.edu.cn
 * updates: mirrors.opencas.cn
Resolving Dependencies
--> Running transaction check
---> Package strace.x86_64 0:4.8-11.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch             Version                 Repository      Size
================================================================================
Installing:
 strace           x86_64           4.8-11.el7              base           265 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 265 k
Installed size: 950 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/strace-4.8-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for strace-4.8-11.el7.x86_64.rpm is not installed
strace-4.8-11.el7.x86_64.rpm                               | 265 kB   00:04
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@CentOS)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : strace-4.8-11.el7.x86_64                                     1/1
Error unpacking rpm package strace-4.8-11.el7.x86_64
error: unpacking of archive failed on file /usr/bin/strace;572a1a6b: cpio: open
  Verifying  : strace-4.8-11.el7.x86_64                                     1/1

Failed:
  strace.x86_64 0:4.8-11.el7

Complete!
bergwolf commented 8 years ago

Switching on cache=loose does not solve the rpmdb checksum error.

gnawux commented 7 years ago

looks this issue is still existed in the latest release.

bergwolf commented 7 years ago

In overlayfs, opening a file RO first then RW later would cause data inconsistency in the reader part because of data copy up. yum has added ovl plugin to work around it for rpmdb files. However, ovl plugin is present in recent centos images. It seem 9p somehow makes the workaround invalid.

Overlayfs upstream is working on solving the copy-up data inconsistency problem (https://lwn.net/Articles/718062/). OTOH, we still need to fix it for older kernels.

gnawux commented 7 years ago

@bergwolf The proposed overlay fix is applied to the host kernel, right?

bergwolf commented 7 years ago

yes, it should be fixed on the host side.

gnawux commented 7 years ago

could we do some fix in guest 9p and make the rh work around (ovl plugin) work?

bergwolf commented 7 years ago

I think so. I'll look into it. Possibly we need some change in the qemu 9p server.

gnawux commented 7 years ago

I prefer this way if it is not too difficult.