Page MenuHomeSoftware Heritage

Upload package failure due to wrong group permission rights
Closed, MigratedEdits Locked

Description

We have sometimes issue on package upload.

This happens when:

  • a new user uploads a package in an existing arborescence tree (s)he does not own
  • a user renames a package and creates a new arborescence tree through upload. Next time, if another user uploads a new version for that package, (s)he is hit by the same problem.

Example

anlambert recently renamed the package swh-web-ui to swh-web.
Thus, ardumont can't upload a new version.

tony@.../repo/swh/swh-environment $ ./bin/make-package -u swh-web
 signfile dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1.dsc 0D10C3B8

 fixup_buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1.dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1_amd64.buildinfo
 signfile buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1_amd64.buildinfo 0D10C3B8

 fixup_changes dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1.dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1_amd64.changes
 fixup_changes buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1_amd64.buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1_amd64.changes
 signfile changes /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1_amd64.changes 0D10C3B8

Successfully signed dsc, buildinfo, changes files
swh-web_0.0.87-1.dsc                                                                 100% 2004    72.8KB/s   00:00
swh-web_0.0.87.orig.tar.gz                                                           100%  195KB   1.2MB/s   00:00
swh-web_0.0.87-1.debian.tar.xz                                                       100% 1480    55.9KB/s   00:00
python3-swh.web_0.0.87-1_all.deb                                                     100%  180KB   1.9MB/s   00:00
swh-web_0.0.87-1_amd64.buildinfo                                                     100% 8137   286.8KB/s   00:00
swh-web_0.0.87-1_amd64.changes                                                       100% 2671    96.6KB/s   00:00
Error 13 creating hardlink of '/srv/softwareheritage/repository/tmp/swh-web_0.0.87-1.dsc' as '/srv/softwareheritage/repository/pool/main/s/swh-web/swh-web_0.0.87-1.dsc': Permission denied
There have been errors!

Checking the /srv/softwareheritage/repository/pool/main/s directory, indeed, ardumont cannot write to that directory.

ardumont@pergamon:/srv/softwareheritage/repository% ls -l /srv/softwareheritage/repository/pool/main/s
...
drwxrwsr-x 2 olasd     swhdev 4096 Jun 30 13:02 swh-storage
drwxr-sr-x 2 anlambert swhdev 4096 Sep  8 12:11 swh-web
...

As a workaround, fixing the rights to that folder for the group makes it ok.

ardumont@pergamon:/srv/softwareheritage/repository% sudo chmod -v g+w /srv/softwareheritage/repository/pool/main/s/swh-web
ardumont@pergamon:/srv/softwareheritage/repository% sudo ls -l /srv/softwareheritage/repository/pool/main/s/
...
drwxrwsr-x 2 olasd     swhdev 4096 Jun 30 13:02 swh-storage
drwxrwsr-x 2 anlambert swhdev 4096 Sep  8 12:11 swh-web
...

Indeed:

 tony@.../repo/swh/swh-environment $ ./bin/make-package -u swh-web
The .changes file is already signed.
Would you like to use the current signature? [Yn]y
Leaving current signature unchanged.
swh-web_0.0.87-1.dsc                                                                 100% 2004    73.2KB/s   00:00
swh-web_0.0.87.orig.tar.gz                                                           100%  195KB   1.3MB/s   00:00
swh-web_0.0.87-1.debian.tar.xz                                                       100% 1480    51.4KB/s   00:00
python3-swh.web_0.0.87-1_all.deb                                                     100%  180KB   1.7MB/s   00:00
swh-web_0.0.87-1_amd64.buildinfo                                                     100% 8137   355.0KB/s   00:00
swh-web_0.0.87-1_amd64.changes                                                       100% 2671   124.3KB/s   00:00
Skipping swh-web_0.0.87-1_amd64.changes because all packages are skipped!
 signfile dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1.dsc 0D10C3B8

 fixup_buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1.dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1_amd64.buildinfo
 signfile buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1_amd64.buildinfo 0D10C3B8

 fixup_changes dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1.dsc /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1_amd64.changes
 fixup_changes buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1_amd64.buildinfo /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1_amd64.changes
 signfile changes /home/tony/work/inria/repo/swh/swh-environment/packages/swh-web_0.0.87-1~bpo9~swh+1_amd64.changes 0D10C3B8

Successfully signed dsc, buildinfo, changes files
swh-web_0.0.87-1~bpo9~swh+1.dsc                                                      100% 2048    80.2KB/s   00:00
swh-web_0.0.87.orig.tar.gz                                                           100%  195KB   1.5MB/s   00:00
swh-web_0.0.87-1~bpo9~swh+1.debian.tar.xz                                            100% 1520    65.4KB/s   00:00
python3-swh.web_0.0.87-1~bpo9~swh+1_all.deb                                          100%  180KB   2.2MB/s   00:00
swh-web_0.0.87-1~bpo9~swh+1_amd64.buildinfo                                          100% 8230   315.5KB/s   00:00
swh-web_0.0.87-1~bpo9~swh+1_amd64.changes                                            100% 2863   109.0KB/s   00:00
Exporting indices...
Deleting files no longer referenced...
deleting and forgetting pool/main/s/swh-web/python3-swh.web_0.0.86-1~bpo9~swh+1_all.deb
deleting and forgetting pool/main/s/swh-web/swh-web_0.0.86-1~bpo9~swh+1.debian.tar.xz
deleting and forgetting pool/main/s/swh-web/swh-web_0.0.86-1~bpo9~swh+1.dsc
...
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 1.92 KiB | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To ssh://forge.softwareheritage.org/source/swh-web.git
 * [new tag]         v0.0.87 -> v0.0.87

It would be nice to fix it definitely to not have to deal with such shortcomings once in a while when we are not the main packager.

Solution

short term

Connect to the machine and fix right away the group permission.
That's what's being done regularly.

middle term

As we use mainly pergamon for packaging purposes, we could configure umask to 002 for all our uploader logins.

Note:

  • I don't know if it's the proper reasoning nor measure the impacts here. Feel free to enlighten me.
  • I'm only seeing pergamon as our debian package repository but i may be wrong.

This intranet page shows pergamon usage as 'sysadm playground', so it seems to go my way.

long term

As we discussed some time ago with @olasd, this may be a hint as to use a specific user for the packaging upload.
This may help in centralizing the (new) uploaders':

  • gpg public keys to the same login (against each user needs to setup its gpg public key)
  • ssh public key to the same login (~/.ssh/authorized_keys)