Re: [PATCH 3/4] vircommand: Make sysconf(_SC_OPEN_MAX) failure non-fatal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 30, 2023 at 08:26:02AM +0200, Michal Prívozník wrote:
> On 8/29/23 17:20, Daniel P. Berrangé wrote:
> > On Tue, Aug 29, 2023 at 05:13:08PM +0200, Michal Privoznik wrote:
> >> The point of calling sysconf(_SC_OPEN_MAX) is to allocate big
> >> enough bitmap so that subsequent call to
> >> virCommandMassCloseGetFDsDir() can just set the bit instead of
> >> expanding memory (this code runs in a forked off child and thus
> >> using async-signal-unsafe functions like malloc() is a bit
> >> tricky).
> >>
> >> But on some systems the limit for opened FDs is virtually
> >> non-existent (typically macOS Ventura started reporting EINVAL).
> >>
> >> But with both glibc and musl using malloc() after fork() is safe.
> >> And with sufficiently new glib too, as it's using malloc() with
> >> newer releases instead of their own allocator.
> >>
> >> Therefore, pick a sufficiently large value (glibc falls back to
> >> 256, [1], so 1024 should be good enough) to fall back to and make
> >> the error non-fatal.
> > 
> > That's not suitable for macOS. THey have a constant OPEN_MAX we
> > should be using that is way bigger than 1024.
> 
> Yeah, it's 2^63-1 per:
> 
> https://github.com/eradman/entr/issues/63#issuecomment-776758771

IIUC, that's referring to the result of sysconf(_SC_OPEN_MAX)
which is returning -1.

I was refering to a literal constant OPEN_MAX which is reported
as being 10k based on the debug logs shown in commit message of

  https://gitlab.com/libvirt/libvirt/-/merge_requests/283


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux