Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 09 Apr 2020 20:31:30 +0200
From: Florian Weimer <fw@...eb.enyo.de>
To: musl@...ts.openwall.com
Cc: Norbert Lange <nolange79@...il.com>
Subject: Re: [BUG] sysconf implementing _SC_NPROCESSORS_(CONF|ONLN) incorrectly

* Szabolcs Nagy:

> * Norbert Lange <nolange79@...il.com> [2020-04-09 12:29:20 +0200]:
>> Hello,
>> 
>> I ran into a bug with trace-cmd when compiled against musl.
>> Turns out musl just returns the affinity mask in both cases.
>> 
>> I know those functions are not standard, but the irony is that if they
>> are implemented,
>> then they prevent applications to use fallbacks.
>> 
>> See the trace-cmd bugreport:
>> https://bugzilla.kernel.org/show_bug.cgi?id=206817
>
> i think there are open unanswered questions about the right
> semantics it's not clear what user code may expect
>
> https://www.openwall.com/lists/musl/2019/03/16/1
> https://www.openwall.com/lists/musl/2019/03/19/1

Stille, returning 1 if the sched_getaffinity system call fails
(because the affinity mask is unexpectedly large) will break some
software that assumes a true uniprocessor system if the processor
count is zero.  (OpenJDK is an example.)

This can also happen if there is some external affinity mask manager.

For glibc, we had to change our logic to artificially inflate the CPU
to 2 if we cannot determine it, as the more conservative choice.

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.