Thanks for the quick reply.

On Mon, Jan 7, 2019 at 7:37 PM Julian Andres Klode <[email protected]> wrote:

> On Mon, Jan 07, 2019 at 06:40:02PM +0100, Michael Stapelberg wrote:
> > Package: apt
> > Version: 1.8.0~alpha3
> > Severity: normal
> >
> > For the past few weeks, I haven’t been able to update my Debian system. I
> > finally took some time to look into what’s going wrong.
>
> We'd have to figure out when this started, I guess.
>

Sorry, didn’t keep track of that.


>
> >
> > The symptom is that “apt update” just hung forever after fetching all
> files from
> > my configured mirrors.
> >
> > A closer look revealed 100% CPU usage of 1 core in the
> > /usr/lib/apt/methods/store process, which was writing to files in
> > /var/lib/apt/lists/partial.
> >
> > Attaching gdb revealed that store was spending its time in a zstd
> function:
> >
> > #0  0x00007f376cc0bf78 in ?? () from
> /usr/lib/x86_64-linux-gnu/libzstd.so.1
> > #1  0x00007f376cbcc275 in ?? () from
> /usr/lib/x86_64-linux-gnu/libzstd.so.1
> > #2  0x00007f376cbcdedf in ?? () from
> /usr/lib/x86_64-linux-gnu/libzstd.so.1
> > #3  0x00007f376cbce461 in ZSTD_compressContinue () from
> /usr/lib/x86_64-linux-gnu/libzstd.so.1
> > #4  0x00007f376cbcfe9e in ?? () from
> /usr/lib/x86_64-linux-gnu/libzstd.so.1
> > #5  0x00007f376d9874af in ?? () from
> /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
> > #6  0x00007f376d97ffd1 in FileFd::Write(void const*, unsigned long long)
> () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
> > #7  0x000055afaedf1073 in StoreMethod::Fetch(pkgAcqMethod::FetchItem*)
> () at include/apt-pkg/fileutl.h:168
> > #8  0x00007f376d939f83 in pkgAcqMethod::Run(bool) () from
> /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
> > #9  0x000055afaedf0759 in main () at
> /usr/include/c++/8/bits/basic_string.h:252
> > #10 0x00007f376d32e09b in __libc_start_main (main=0x55afaedf06e0 <main>,
> argc=1, argv=0x7ffe0782f238, init=<optimized out>, fini=<optimized out>,
> rtld_fini=<optimized out>, stack_end=0x7ffe0782f228) at
> ../csu/libc-start.c:308
> > #11 0x000055afaedf083a in _start () at ../methods/store.cc:147
> >
> > Sure enough, raising the cost of the zstd compression in my apt config
> fixed the
> > issue:
> >
> > % cat /etc/apt/apt.conf.d/99disable-zstd
> > APT::Compressor::zstd::Cost "999";
> >
> > I have a few remarks:
> >
> > 1. Why are the lists re-compressed at all?
> >    (Also note that I set Acquire::GzipIndexes "yes", so I have already
> signaled
> >     that I would prefer to accept the lists as they are.)
>
> No. You have indicated that you want them stored compressed. Which picks
> the
> cheapest compressor, that's usually lz4.
>

Ugh. Is there a way to tell apt to not bother re-compressing files ever?


>
> Yes, it used to mean to not uncompress files and take them directly, but
> that
> changed a few years ago, in 1.2 or so, as lz4 basically has not much
> overhead,
> so it's much faster than keeping xz indexes around.
>
> >
> > 2. Why is store only using 1 of 16 CPU cores for compression?
>
> store is using 1 process per file (up to a limit that's a multiple of your
> cores), parallel compression of single files is meh.
>

That’s not what I’m observing. For me, precisely 1 store process is
running, and it seems to be handling all files sequentially.


>
> >
> > 3. Should we disable zstd for the time being, given that it turns a
> 1-minute apt
> >    update into a many-minute apt update, to the point where I had
> assumed it was
> >    hanging?
>
> It's not used by default. It's unclear to me why this happens to you. Do
> you have
> another config file which sets a lower zstd cost perhaps?
>

No, it doesn’t look like it:
% grep -ri zst /etc/apt
/etc/apt/apt.conf.d/99disable-zstd:APT::Compressor::zstd::Cost "999";
%


>
>
>
> --
> debian developer - deb.li/jak | jak-linux.org - free software dev
> ubuntu core developer                              i speak de, en
>


-- 
Best regards,
Michael

Reply via email to