control: severity -1 minor
control: retitle -1 dhcpd-pools: FTBFS with 
GLIBC_TUNABLES=glibc.malloc.hugetlb=2

Hi,

On 2026-02-25 22:43, Aurelien Jarno wrote:
> control: tag -1 + patch
> 
> Hi,
> 
> On 2026-02-23 13:43, Emanuele Rocca wrote:
> > Source: dhcpd-pools
> > Version: 3.2-1
> > Severity: important
> > Tags: ftbfs upstream
> > Justification: fails to build from source
> > User: [email protected]
> > Usertags: glibc-2.43
> > 
> > Hi,
> > 
> > dhcpd-pools fails to build from source on arm64 when using glibc 2.43,
> > currently in experimental.
> > 
> > The issue is triggered by glibc 2.43 on arm64 enabling 2MB THP by
> > default:
> > https://sourceware.org/git/?p=glibc.git;a=commit;h=321e1fc73f53081d92ba357cdd48c56b79292020
> > 
> > The problem is however not architecture-specific. For example it can be
> > reproduced with glibc 2.42 on amd64 by building the package with the
> > GLIBC_TUNABLES environment variable set to glibc.malloc.hugetlb=2.
> > 
> > Successful build with glibc 2.42, currently in sid:
> > https://people.debian.org/~ema/glibc-2.43-rebuilds/output-2/dhcpd-pools_arm64.build
> > 
> > Logs of a failed build with glibc 2.43 are here:
> > https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/dhcpd-pools_arm64.build
> > 
> > Salient part:
> > 
> > FAIL: tests/errors
> > ==================
> > 
> > --- ./tests/expected/errors     2020-11-27 21:10:58.028560952 +0000
> > +++ tests/outputs/errors        2026-02-20 08:35:52.532293041 +0000
> > @@ -3,7 +3,7 @@
> >  === unknown specifier
> >  dhcpd-pools: unknown --skip specifier: okish
> >  === color mode
> > -dhcpd-pools: unknown color mode: 'sometimes'
> > +dhcpd-pools: unknown color mode: 'sometimes': Cannot allocate memory
> >  === IPv5
> >  dhcpd-pools: unknown --ip-version argument: 5
> >  === missing conf
> 
> The following patch fixes the issue:
> 
> --- dhcpd-pools-3.2.orig/src/dhcpd-pools.c
> +++ dhcpd-pools-3.2/src/dhcpd-pools.c
> @@ -239,7 +239,7 @@ static void parse_command_line_opts(stru
>               case OPT_COLOR:
>                       state->color_mode = parse_color_mode(optarg);
>                       if (state->color_mode == color_unknown)
> -                             error(EXIT_FAILURE, errno, "unknown color mode: 
> %s", quote(optarg));
> +                             error(EXIT_FAILURE, 0, "unknown color mode: 
> %s", quote(optarg));
>                       break;
>               case OPT_SKIP:
>                       skip_arg_parse(state, optarg);
> 
> In short parse_color_mode() does not set or change errno, so it doesn't 
> make sense to print it, as it can just contain random values.

Starting with glibc 2.43-2, glibc uses a different approach to enable
THP on arm64, which doesn't trigger this issue anymore. The bug is still
there though and can still be triggered, even on amd64, by setting the
GLIBC_TUNABLES environment variable to glibc.malloc.hugetlb=2.

I am therefore downgrading the severity of the bug to minor and
retitling it accordingly.

Regards
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
[email protected]                     http://aurel32.net

Reply via email to