HEADSUP: /etc/malloc.conf format change

Ruslan Ermilov ru at FreeBSD.org
Wed Apr 25 16:39:51 UTC 2012


On Tue, Apr 17, 2012 at 12:34:20PM -0700, Jason Evans wrote:
> As a result of the recent jemalloc update, the format for
> /etc/malloc.conf has changed.  If your system has an old-style
> /etc/malloc.conf, you will want to delete it prior to
> installworld, and optionally re-create it using the new format
> after rebooting.  See malloc.conf(5) for details (specifically
> the TUNING section and the "opt.*" entries in the MALLCTL
> NAMESPACE section).
> 
> The MALLOC_OPTIONS environment variable and the _malloc_options
> global do not pose the same headache, because their new
> counterparts are named MALLOC_CONF and malloc_conf,
> respectively.

So you removed _malloc_options that was part of the documented
programming API, while some software made use of it.

While removing part of the documented API was definitely a bad
idea, you didn't provide any mean to detect this change 
programmatically, neither through a macro test, nor by bumping
__FreeBSD_version.  The only way now is to try and see if it
compiles, which is far from perfect.

The way how _malloc_options is handled for binary compatibility,
by simply ignoring its value, is (ahem) questionable.

Why do I care?  The developers of the nginx web server have 
been notified today that it could not be built on FreeBSD
10.0-CURRENT anymore, due to this change, when compiled with 
"nginx malloc debugging".  It's activated by the DEBUG option
of the www/nginx-devel port, if you care to try it out.

Please explore the possibility to add backwards compatiblity for 
the documented API, or at the very least provide a mean to 
detect this otherwise disruptive and hard to detect change
for a programmer.


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer


More information about the freebsd-current mailing list