Bug 48430

Summary: mandb значительно замедлился с версии 2.11.2-alt1
Product: Sisyphus Reporter: Vitaly Chikunov <vt>
Component: man-dbAssignee: Alexey Gladkov <legion>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: aen, amakeenk, andy, glebfm, iv, lav, ldv, legion, liannnix, placeholder, sin, zerg
Version: unstable   
Hardware: x86   
OS: Linux   
URL: https://gitlab.com/man-db/man-db/-/issues/4
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=49709
Bug Depends on:    
Bug Blocks: 46625    

Description Vitaly Chikunov 2023-11-14 03:00:11 MSK
На предыдущих версиях апдейт mandb (при обновлении какой-то man страницы) происходил за считанные секунды. Начиная с версии 2.11.2-alt1 такое же обновление уже длится пол минуты и более (на тестовой машине с SSD с 11857 файлов и симлинков в man3).

Reproducer:

  # ls /usr/share/man/man3 | wc -l
  11857
  # touch /usr/share/man/man3
  # time mandb -q
  real 45.26
  user 14.03
  sys 37.44
  # time mandb -q
  real 0.20
  user 0.11
  sys 0.05
  # touch /usr/share/man/man3
  # time mandb -q
  real 51.47
  user 15.92
  sys 42.50

Для пользователя это выглядит как долгая пауза по пол минуты в конце `apt-get install`.
Comment 1 Alexey Gladkov 2023-11-14 03:26:15 MSK
Откат до 2.10.2 помогает ?
Comment 2 Vitaly Chikunov 2023-11-14 03:31:41 MSK
Помогает.

  # mandb --version
  mandb 2.10.2
  # touch /usr/share/man/man3
  # time mandb -q
  real 0.35
  user 0.15
  sys 0.12
  # time mandb -q
  real 0.23
  user 0.10
  sys 0.05
Comment 4 Ivan A. Melnikov 2024-07-30 17:56:27 MSK
Не думаю, что апстримный баг сдвинется с мёртвой точки в ближайшее время. Поэтому предлагаю всё-таки взять патч Алексея себе в Сизиф (и потом p11):

https://gitlab.com/asheplyakov/man-db/-/tree/liblzma-decompression?ref_type=heads
https://gitlab.com/man-db/man-db/-/issues/4#note_1677173856

Например так:

https://git.altlinux.org/tasks/353967/
https://git.altlinux.org/people/iv/packages/man-db.git?a=commitdiff;h=3f75a5933034528e924e6909cf3921fcf7ae2740
Comment 5 Ivan A. Melnikov 2024-07-30 17:59:04 MSK
> https://git.altlinux.org/tasks/353967/

На моей рабочей машине (десктопный Intel и SSD):

Before:
# rm -fr /var/cache/man/*
# time mandb -q
13.02user 24.61system 0:31.64elapsed 118%CPU (0avgtext+0avgdata 19420maxresident)k
0inputs+17416outputs (0major+6733928minor)pagefaults 0swaps

After:
# rm -fr /var/cache/man/*
# time mandb -q
4.76user 0.25system 0:05.25elapsed 95%CPU (0avgtext+0avgdata 27964maxresident)k
0inputs+11432outputs (0major+29972minor)pagefaults 0swaps

То есть, ускорение чуть больше чем в 6 раз.
Comment 6 Ivan A. Melnikov 2024-07-30 18:54:04 MSK
А вот почему я об этом вспомнил.

Виртуалка aarch64 на том же (x86_64) хосте:

Before:

# rm -fr /var/cache/man/*
# time mandb -q
99.03user 326.02system 5:47.09elapsed 122%CPU (0avgtext+0avgdata 6784maxresident)k
38760inputs+8568outputs (29major+1791825minor)pagefaults 0swaps

Почти 6 минут!!!


After:

# rm -fr /var/cache/man/*
# time mandb -q
44.69user 29.81system 1:14.99elapsed 99%CPU (0avgtext+0avgdata 11032maxresident)k
0inputs+3832outputs (0major+4340minor)pagefaults 0swaps
Comment 7 Alexander Makeenkov 2024-10-31 10:36:09 MSK
Проблема актуальна и для p11.
Comment 8 Ivan A. Melnikov 2024-10-31 11:15:33 MSK
> Depends on: 46625

Наверное, зависимости должны быть в другую сторону. Попробую поправить.