Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Too many open files in qemu

6 views
Skip to first unread message

sergio

unread,
Jun 7, 2023, 8:50:03 PM6/7/23
to
Хочу сделать странное: скомпилировать андроед.
Попробовал в чруте -- там не дают, хотят сделать clone(2).
Тогда решил сразу в qemu. Но там говорят "too many open files".
В интырнетах пишут, что дело в ulimit, ну я прописал в
/etc/security/limits.conf от души:

* hard nofile 1024000
* soft nofile 1024000

бутнулся, `ulimit -n` стал выдавать эти 1024000, но ошибка никуда не
пропала.

Я даже сделал тест:

```
#!/usr/bin/perl

my ($N) = @ARGV;
my @fd;
foreach ( 1 .. $N ) {
open($fd[$_], '<', '/tmp/test') or die "Can't open: $!";
}
print "Done\n";
sleep
```

но он отлично работает в qemu и открывает столько файлов, сколько и даёт
ulimit, хоть 1M и это видно в /proc

Сдаётся мне дело не в ulimit, а может, в virtiofs?

chroot и qemu запускаются на одном и том же корне, debian sid,
скопированном с хост-системы.

--
sergio.

Игорь Чумак

unread,
Jun 8, 2023, 2:00:04 AM6/8/23
to
Почему не собрать андройд как в инструкции сказано?

чт, 8 черв. 2023, 03:47 користувач sergio <ser...@outerface.net> пише:

Victor Wagner

unread,
Jun 8, 2023, 1:00:03 PM6/8/23
to
В Thu, 8 Jun 2023 04:21:03 +0400
sergio <ser...@outerface.net> пишет:

> Хочу сделать странное: скомпилировать андроед.
> Попробовал в чруте -- там не дают, хотят сделать clone(2).
> Тогда решил сразу в qemu. Но там говорят "too many open files".
> В интырнетах пишут, что дело в ulimit, ну я прописал в
> /etc/security/limits.conf от души:
>
> * hard nofile 1024000
> * soft nofile 1024000

А что говорит /proc/sys/fs/file-max
(ну и соответственно sysctl fs.file-max?

sergio

unread,
Jun 15, 2023, 9:00:04 PM6/15/23
to
On 08/06/2023 09:50, Игорь Чумак wrote:
> Почему не собрать андройд как в инструкции сказано?

Установив тонны ненужного в свою систему? Не, спасибо. Как в инструкции,
кстати, не работает, но это другая проблема.

--
sergio.

sergio

unread,
Jun 15, 2023, 9:20:04 PM6/15/23
to
On 08/06/2023 20:47, Victor Wagner wrote:

> А что говорит /proc/sys/fs/file-max
> (ну и соответственно sysctl fs.file-max?

Дефолтные 9223372036854775807, и на хосте и на госте.

Дело было в virtiofsd, помогло обновиться на 8 qemu, запустить virtiofsd
с --rlimit-nofile самому, а qemu указать сокет.

--
sergio.

Victor Wagner

unread,
Jun 16, 2023, 12:30:04 AM6/16/23
to
В Fri, 16 Jun 2023 05:10:21 +0400
sergio <ser...@outerface.net> пишет:
Никогда не использовал virtiofsd. Всегда работал с образами дисков
в формате qcow2 и даже raw. Вообще конечно штука интересная.
Возможности подлкючить к виртуалке какую-нибудь хостовую файловую
систему без использования SMB, RDP или чего-нибудь подобного часто не
хватает. Сделали наконец, значит.
--

Игорь Чумак

unread,
Jun 16, 2023, 12:30:04 AM6/16/23
to
Ну, есть docker же. 

пт, 16 черв. 2023, 03:52 користувач sergio <ser...@outerface.net> пише:

Victor Wagner

unread,
Jun 16, 2023, 1:20:04 AM6/16/23
to
В Fri, 16 Jun 2023 04:52:04 +0400
sergio <ser...@outerface.net> пишет:
Если задача только в том, чтобы не засорять систему лишними файлами,
то qemu это немножко overkill. Есть менее суровые решения по изоляции
группы процессов с файловой системой.

Можно, например lxc-контейнеры использовать. Но для сборочных задач я
предпочитаю schroot, который, в отличие от lxc не пытается изолировать
сетевые вещи. lxc хороша сервисы запускать в изолированной среде. А для
сборки schroot вполне достаточен.

Особенно приятной у обоих этих инструментов является возможность
создания эфемерных контейеров/сейссий schroot с использованием
overlayfs. Вот туда ставишь все что угодно, а вышел из сессии, оно
уничтожилось, осталось только оригинальное состояние файловой системы,
какое было на момент старта и результаты комипиляции в
бинд-монтированном home.

sergio

unread,
Jun 16, 2023, 6:10:04 AM6/16/23
to
On 16/06/2023 08:21, Victor Wagner wrote:

> Никогда не использовал virtiofsd. Сделали наконец, значит.

У меня он уже с bullseye работает, но только для /boot
grub на гостях поудалял, а qemu грузится без биоса, прямым указанием
kernel/initrd, которые обновляются с гостя, и доступны с хоста.

Только в булзае это был сторонний virtiofsd а в сиде он уже часть qemu.

--
sergio.

sergio

unread,
Jun 16, 2023, 6:10:04 AM6/16/23
to
On 16/06/2023 09:14, Victor Wagner wrote:

> Можно, например lxc-контейнеры использовать.

Это мой следующий шаг, ога


> Но для сборочных задач я предпочитаю schroot

Дык с него-то я и начал, но как в самом начале написал, андроидное repo
хочет clone(2). а в чруте его нельзя

--
sergio.

sergio

unread,
Jun 16, 2023, 6:20:04 AM6/16/23
to
On 16/06/2023 08:22, Игорь Чумак wrote:
> Ну, есть docker же.

ну есть да, но он делает две помойки в /var/lib/docker и интырфейсах

интырфейсы можно по-человечески назвать, veth которые?

--
sergio.

Maksim Dmitrichenko

unread,
Jun 16, 2023, 8:42:00 AM6/16/23
to
Сорян, что влезаю в дискуссию, но:

пт, 16 июн. 2023 г. в 14:06, sergio <ser...@outerface.net>:
 
Дык с него-то я и начал, но как в самом начале написал, андроидное repo
хочет clone(2). а в чруте его нельзя

Как это clone(2) в чруте нельзя? Это обычный системный вызов, через который создаются новые потоки и процессы. Как минимум из-того, что в schroot можно запустить shell, из которого запускать другие команды, такого запрета не может быть, потому что его не может быть никогда. Ты не путаешь ли с clone(2) с chroot(2)? С последним были какие-то танцы. Но вроде как есть для таких целей fakechroot. 

--
With best regards
  Maksim Dmitrichenko

Victor Wagner

unread,
Jun 16, 2023, 8:50:04 AM6/16/23
to
В Fri, 16 Jun 2023 14:10:10 +0400
sergio <ser...@outerface.net> пишет:

> On 16/06/2023 08:22, Игорь Чумак wrote:
> > Ну, есть docker же.
>
> ну есть да, но он делает две помойки в /var/lib/docker и интырфейсах
>

Это вы еще не во все помойки, которые он делает, наступили.

> интырфейсы можно по-человечески назвать, veth которые?

Прямо даже не верится что дистрибутив Debian который уже четверть века
остается образцом хорошего дизайна, и докер дизайнил один и тот же
человек.

--

Игорь Чумак

unread,
Jun 16, 2023, 9:10:04 AM6/16/23
to
Андройдное repo это python. У вас python странный похоже.

пт, 16 черв. 2023, 13:06 користувач sergio <ser...@outerface.net> пише:

sergio

unread,
Jun 16, 2023, 10:30:04 AM6/16/23
to
On 16/06/2023 16:30, Maksim Dmitrichenko wrote:

> Как это clone(2) в чруте нельзя?

https://manpages.debian.org/clone.2.en.html#EPERM~4

--
sergio.

Maksim Dmitrichenko

unread,
Jun 16, 2023, 11:01:48 AM6/16/23
to
пт, 16 июн. 2023 г. в 18:27, sergio <ser...@outerface.net>:
On 16/06/2023 16:30, Maksim Dmitrichenko wrote:

> Как это clone(2) в чруте нельзя?

https://manpages.debian.org/clone.2.en.html#EPERM~4

А, так это не clone запрещен, а по сути запрещено создавать контейнеры внутри чрута, так как эта фигня создаёт новый namespace (по сути это соответствует определению контейнера). Не знаю зачем build env для андройда это использует, но забавный нюанс.

Max Nikulin

unread,
Jun 16, 2023, 10:50:05 PM6/16/23
to
On 16/06/2023 11:21, Victor Wagner wrote:
> Возможности подлкючить к виртуалке какую-нибудь хостовую файловую
> систему без использования SMB, RDP или чего-нибудь подобного часто не
> хватает. Сделали наконец, значит.

Вроде virtfs-proxy-helper уже несколько лет доступен. Он действительно
недостаточно стабилен или попадает в разряд "чего-нибудь подобного" как
сетевая 9p файловая система для гостя?

Я не против virtiofsd, поскольку не успел его попробовать. Просто
любопытно, где могут лежать грабли.
0 new messages