Package: puddletag
Version: 1.2.0-1
Severity: normal

Dear Maintainer,

I tried out puddletag today. I started it in a directory with 8 ogg files
and a few extra files. The GUI appeared with the ogg files and then froze,
with puddletag using a full CPU.

strace'ing showed that it started what basically amounted to a full disk scan:

aftewr loading lots of files (python, icons and so on), it starts scanning
the directory it was in:

   [pid  6800] 
stat("/fs/doom/localvol5/mp3/aaahh005_eftb_-_seven/01-paper.ogg", 
{st_mode=S_IFREG|0600, st_size=6631309, ...}) = 0
...

After that, it loaded more python files and then started to scan /fs,
which is an automount mountpint with access to over 50TB of data and many,
many millions of files:

   [pid  6801] open("/fs", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 8
   [pid  6801] stat("/fs/yama_wd", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
   [pid  6801] stat("/fs/rijk_localvol", {st_mode=S_IFDIR|0755, st_size=4096, 
...}) = 0
   ...
   [pid  6801] open("/fs/doom", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 8
   [pid  6801] stat("/fs/doom/backup", {st_mode=S_IFDIR|0700, st_size=122, 
...}) = 0
   ...
   [pid  6801] stat("/fs/doom/localvol2", {st_mode=S_IFDIR|0711, st_size=748, 
...}) = 0
   [pid  6801] statfs("/fs/doom/localvol5/", {f_type=NFS_SUPER_MAGIC, 
f_bsize=1048576, f_blocks=19073432, f_bfree=8481014, f_bavail=8471613, 
f_files=0, f_ffree=0, f_fsid={val=[0, 0]}, f_namelen=255, f_frsize=1048576, 
f_flags=ST_VALID|ST_RELATIME}) = 0

it also started to scan other directories in /:

   open("/bin", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7
   stat("/bin/aclocal", {st_mode=S_IFREG|0755, st_size=36792, ...}) = 0
   ...

after every diretcory, it changed to another directory:

   open("/fs/doom/bin", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7
   stat("/fs/doom/bin/js", {st_mode=S_IFREG|0755, st_size=11312776, ...}) = 0
   ...

Starting it without arguments, or with ".", or the full path to the
directory didn't change the behaviour, puddletag in each case started to
scan the full filesystem hierarchy reachable.

I let it run for a few minutes, scnaning millions of files like this, and
all it did was go deeper and deeper.

Needless to say, there is no reason it would be interested in /etc, /bin
or any of these files at all, and this makes puddletag completely unusable
at least for me, as it takes many hours to stat all files it is able to
reach.

I think at a minimum this should be well documented in the manpage, or
better, be optional, or best, puddletag simply shouldn't attempt a full
filesystem scan.

-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64
 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.4.47-040447-generic (SMP w/8 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/bash
Init: systemd (via /run/systemd/system)

Versions of packages puddletag depends on:
ii  libjs-sphinxdoc   1.4.9-2
ii  python-acoustid   1.1.2-2
ii  python-audioread  2.1.4-1
ii  python-configobj  5.0.6-2
ii  python-mutagen    1.36-1
ii  python-pyparsing  2.1.10+dfsg1-1
ii  python-qt4        4.11.4+dfsg-2+b1
pn  python:any        <none>

Versions of packages puddletag recommends:
ii  libchromaprint-tools  1.4.2-1
ii  python-levenshtein    0.12.0-2+b2
ii  python-mysqldb        1.3.7-1.1

Versions of packages puddletag suggests:
pn  quodlibet  <none>

-- no debconf information

Reply via email to