Bug 52376 - Apt-get в контейнере зависает при установке или удалении любых пакетов
Summary: Apt-get в контейнере зависает при установке или удалении любых пакетов
Status: UNCONFIRMED
Alias: None
Product: Branch p11
Classification: Unclassified
Component: apt (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P5 normal
Assignee: Ivan Zakharyaschev
QA Contact: qa-p11@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-09 17:37 MSK by pfe
Modified: 2024-12-09 21:15 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description pfe 2024-12-09 17:37:12 MSK
В контейнере alt:p11 на хостовой системе Fedora 41 при попытке установки или удаления любых пакетов apt-get зависает на несколько минут или даже десятков минут.

time apt-get -y install wget
...
62.96user 214.97system 4:40.62elapsed 99%CPU (0avgtext+0avgdata 153644maxresident)k

Эта ситуация описана в тикете на GitHub https://github.com/moby/moby/issues/23137#issuecomment-359097008

При подключении strace к процессу /usr/lib/apt/apt-get выводится то же самое сообщение, что и в тикете - постоянно бежит поток сообщений с увеличивающимся номером:
...
fcntl(358603852, F_GETFD)               = -1 EBADF (Bad file descriptor)
fcntl(358603853, F_GETFD)               = -1 EBADF (Bad file descriptor)
fcntl(358603854, F_GETFD)               = -1 EBADF (Bad file descriptor)
fcntl(358603855, F_GETFD)               = -1 EBADF (Bad file descriptor)
fcntl(358603856, F_GETFD)               = -1 EBADF (Bad file descriptor)
fcntl(358603857, F_GETFD)               = -1 EBADF (Bad file descriptor)
fcntl(358603858, F_GETFD^C)               = -1 EBADF (Bad file descriptor)
strace: Process 54 detached

Указанный в тикете рецепт также помогает, при установке ulimit -n 1024 команды в apt-get начинают выполняться без видимой задержки. Изначально значение ulimit -n такое:

[root@87bd392e1c46 /]# ulimit -n
1073741816

Проблема также воспризводится для alt:p10.

Проблема не воспризводится, если в качестве хостовой системя для Docker используется Ubuntu 24.04 LTS.

ИНформация о Fedora 41, в которой проблема воспроизводится:
# uname -a
Linux *** 6.11.10-300.fc41.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Nov 23 00:51:20 UTC 2024 x86_64 GNU/Linux

Есть подозрение, что ошибка в apt-get.
Comment 1 Ivan A. Melnikov 2024-12-09 18:03:02 MSK
(In reply to pfe from comment #0)
> Эта ситуация описана в тикете на GitHub
> https://github.com/moby/moby/issues/23137#issuecomment-359097008

Описаная в тикете проблема относится к RPM. В апстриме RPM она была исправлена так:

https://github.com/rpm-software-management/rpm/pull/444

Возможно, имеет смысл бекпотировать это в наш RPM.