#5253 Missing koji mount on staging builders
Closed: Fixed None Opened 8 years ago by lsedlar.

= bug description =

Some of the staging Koji builders do not have access to production volume. It should be
mounted read-only.

This caused failure of a test compose running in stage environment:
http://koji.stg.fedoraproject.org/koji/taskinfo?taskID=90113453

= bug analysis =

List of all hosts: http://koji.stg.fedoraproject.org/koji/hosts

Correct hosts:
koji01.stg.phx2.fedoraproject.org

Hosts with missing production mount:
buildvm-01.stg.phx2.fedoraproject.org
buildvm-02.stg.phx2.fedoraproject.org
buildvm-03.stg.phx2.fedoraproject.org
buildvm-04.stg.phx2.fedoraproject.org
* buildvm-05.stg.phx2.fedoraproject.org

I can't ssh to buildvm 06–10.

These hosts don't even mount staging instance, instead /mnt/koji is just a local directory.
arm01-builder22.arm.fedoraproject.org
arm01-builder23.arm.fedoraproject.org


Well, this all depends on what channel(s) the builders are in. ;)

All builders do not automatically have a koji mount.

If they are in the 'compose' channel, they need a rw koji mount (because they run runroot and need to write results to the mount). They should also not be in other channels.

If they are in the 'createrepo' channel, then they need ro koji mount (they need to read rpms from the nfs mount to make the new repos, but they upload to the hub, so they don't need write).

If they are not in those two, they do not need a koji mount at all.

So, it just depends on what builders we want to have in what channels.

In stg currently:

{{{
% koji list-hosts --enabled --channel=compose
Hostname Enb Rdy Load/Cap Arches Last Update
arm01-builder22.arm.fedoraproject.org Y N 5.9/2.0 armhfp 2016-04-21 14:19:45
arm01-builder23.arm.fedoraproject.org Y N 2.1/2.0 armhfp 2016-04-21 14:19:39
buildvm-01.stg.phx2.fedoraproject.org Y Y 0.0/2.0 i386,x86_64 2016-04-21 14:19:41
koji01.stg.phx2.fedoraproject.org Y N 5.9/2.0 i386,x86_64 2016-04-21 14:19:44
}}}

buildvm-01.stg does have a rw mount of /mnt/koji. It looks like it might need /mnt/fedora_koji_prod ro as well? This failure looks like something around the split volumes...

The arm builders in compose channel don't have the mount, I can fix that... but that doesn't seem to be the failure in this case.

ok, buildvm-01.stg and koji01.stg should now both have /mnt/fedora_koji and /mnt/fedora_koji_prod

The arm builders I need to get a firewall change from RHIT before we can mount things on them, but then they should have the same mounts.

Thank you very much for the explanation.

I certainly don't need all builders in the compose channel. As long as there is one for each arch I a happy man.

However, even when production is mounted (and I can see the files when connected via ssh), the runroot still can't find packages on that volume. I believe it is because /mnt/koji/vol/prod is a symlink to /mnt/fedora_koji_prod/. When runroot mounts /mnt/koji, the symlink is broken inside chroot.

http://koji.stg.fedoraproject.org/koji/taskinfo?taskID=90113927

I can't add /mnt/fedora_koji_prod mount when starting the runroot task (GenericError: read-write mount point is not safe: /mnt/koji/vol/prod/packages).

Can this be worked around on builder side somehow?

Replying to [comment:3 lsedlar]:

Thank you very much for the explanation.

I certainly don't need all builders in the compose channel. As long as there is one for each arch I a happy man.

However, even when production is mounted (and I can see the files when connected via ssh), the runroot still can't find packages on that volume. I believe it is because /mnt/koji/vol/prod is a symlink to /mnt/fedora_koji_prod/. When runroot mounts /mnt/koji, the symlink is broken inside chroot.

http://koji.stg.fedoraproject.org/koji/taskinfo?taskID=90113927

I can't add /mnt/fedora_koji_prod mount when starting the runroot task (GenericError: read-write mount point is not safe: /mnt/koji/vol/prod/packages).

This needs runroot.conf changes on the builders and is the likely issue

Changing the runroot configuration to this could do it. It adds the {{{[path2]}}} section and lists the path in {{{default_mounts}}}.

{{{
[paths]
default_mounts = /mnt/koji,/mnt/fedora_koji_prod/koji

safe_roots = /mnt/koji/compose

[path0]
mountpoint = /mnt/koji/compose
path = /mnt/koji/compose
fstype = bind
options = bind

[path1]
mountpoint = /mnt/koji
path = /mnt/koji
fstype = bind
options = bind

[path2]
mountpoint = /mnt/fedora_koji_prod/koji
path = /mnt/fedora_koji_prod/koji
fstype = bind
options = ro,bind
}}}

ok. I have made this change in staging... however, I am still waiting on some firewall adjustments in order to allow the arm builders to mount the staging koji storage.

You did need the arm builders too right?

It would be nice to have an arm builder as well. I can exclude that arch from testing composes though, so it is not blocking anything.

arm builders are finally all set. ;)

Login to comment on this ticket.

Metadata