Package: reprepro
Version: 5.3.1-1+deb12u1

reprepro hangs when adding one package, but it does not hang when
reprepro runs under strace. Also it does not hang with every package.
When it hangs, I see unzstd process not finishing.

I'm using 5.3.1-1+deb12u1 on a bookworm system. I have a small
directory containing:

./grub-pc_2.06-2ubuntu7.2_amd64.deb
./M
./M/conf
./M/conf/distributions

$ file grub-pc_2.06-2ubuntu7.2_amd64.deb
grub-pc_2.06-2ubuntu7.2_amd64.deb: Debian binary package (format 2.0), with 
control.tar.zs, data compression zst

$ cat M/conf/distributions
Codename: cskoeln
Architectures: amd64
Components: main
DebIndices: Packages Release .
Description: Package repository created by fai-mirror
Label: fai-project.org
Origin: fai-mirror


[~]$ reprepro -V --ignore=extension -b M includedeb cskoeln 
grub-pc_2.06-2ubuntu7.2_amd64.deb
Created directory "M/db"
<then it hangs>


In another teminal I can see
$ pgrep -a unzst
47472 /usr/bin/unzstd

$ pstree -p
───bash(42341)───reprepro(47461)───unzstd(47472)─┬─{unzstd}(47473)
                                                 └─{unzstd}(47474)


$ find -ls
 36880744      4 drwxr-xr-x   3 lange    user      4096 Nov 22 02:57 .
 36880795    132 -rw-r--r--   1 lange    user    131820 Nov 22 02:57 
./grub-pc_2.06-2ubuntu7.2_amd64.deb
 36880796      4 drwxr-xr-x   4 lange    user      4096 Nov 22 03:02 ./M
 36880763      4 drwxr-xr-x   2 lange    user      4096 Nov 22 03:02 ./M/db
 36880808     64 -rw-r--r--   1 lange    user     65536 Nov 22 03:02 
./M/db/contents.cache.db
 36880803     64 -rw-r--r--   1 lange    user     65536 Nov 22 03:02 
./M/db/packages.db
 36880805     64 -rw-r--r--   1 lange    user     65536 Nov 22 03:02 
./M/db/references.db
 36880801      0 -rw-------   1 lange    user         0 Nov 22 03:02 
./M/db/lockfile
 36880806     64 -rw-r--r--   1 lange    user     65536 Nov 22 03:02 
./M/db/checksums.db
 36880804      4 -rw-r--r--   1 lange    user        31 Nov 22 03:02 
./M/db/version
 36880797      4 drwxr-xr-x   2 lange    user      4096 Nov 22 02:56 ./M/conf
 36880798      4 -rw-r--r--   1 lange    user       184 Nov 22 02:56 
./M/conf/distributions


Now I interrupt the reprepo call. After typing ^C I see

Interruption in progress, interrupt again to force-stop it (and risking 
database corruption!)

grub-pc_2.06-2ubuntu7.2_amd64.deb: component guessed as 'main'
Created directory "M/pool"
Created directory "M/pool/main"
Created directory "M/pool/main/g"
Created directory "M/pool/main/g/grub2"
There have been errors!

faime[~]$ find
.
./grub-pc_2.06-2ubuntu7.2_amd64.deb
./M
./M/db
./M/db/contents.cache.db
./M/db/packages.db
./M/db/references.db
./M/db/checksums.db
./M/db/version
./M/pool
./M/pool/main
./M/pool/main/g
./M/pool/main/g/grub2
./M/pool/main/g/grub2/grub-pc_2.06-2ubuntu7.2_amd64.deb
./M/conf
./M/conf/distributions

The indices are not created.

When I run the same command under strace it does not hang but finished
without errors. Very strange!


$ strace -o /tmp/lll reprepro --ignore=extension -b M includedeb cskoeln 
grub-pc_2.06-2ubuntu7.2_amd64.deb



Now I install an older version of reprepo from bullseye on my bookworm machine:
ii  reprepro       5.3.1-1~bpo11+1 amd64        Debian package repository 
producer


faime[~]$ reprepro -V --ignore=extension -b M includedeb cskoeln 
grub-pc_2.06-2ubuntu7.2_amd64.deb
Created directory "M/db"
zstd: error 70 : Write error : cannot write block : Broken pipe
grub-pc_2.06-2ubuntu7.2_amd64.deb: component guessed as 'main'
Created directory "M/pool"
Created directory "M/pool/main"
Created directory "M/pool/main/g"
Created directory "M/pool/main/g/grub2"
Exporting indices...
Created directory "M/dists"
Created directory "M/dists/cskoeln"
Created directory "M/dists/cskoeln/main"
Created directory "M/dists/cskoeln/main/binary-amd64"


$ find
.
./grub-pc_2.06-2ubuntu7.2_amd64.deb
./M
./M/db
./M/db/contents.cache.db
./M/db/packages.db
./M/db/release.caches.db
./M/db/references.db
./M/db/checksums.db
./M/db/version
./M/dists
./M/dists/cskoeln
./M/dists/cskoeln/Release
./M/dists/cskoeln/main
./M/dists/cskoeln/main/binary-amd64
./M/dists/cskoeln/main/binary-amd64/Release
./M/dists/cskoeln/main/binary-amd64/Packages
./M/pool
./M/pool/main
./M/pool/main/g
./M/pool/main/g/grub2
./M/pool/main/g/grub2/grub-pc_2.06-2ubuntu7.2_amd64.deb
./M/conf
./M/conf/distributions


Although I got an error messages from zstd, it does not hang and
everything looks fine.


-- 
regards Thomas

Reply via email to