group specified in `build-users-group' does not exist

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Tomas Cech
Owner
unassigned
Submitted by
Tomas Cech
Severity
normal
T
T
Tomas Cech wrote on 15 Jun 2014 19:02
(address . bug-guix@gnu.org)
20140615170229.GD5647@venom
Hi,

I'm fighting with guix building:

guix package: error: build failed: the group `"guix-builders"' specified in
`build-users-group' does not exist

# grep guix /etc/passwd
guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
# grep guix /etc/group
guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5

Nothing seems to be obviously wrong, but guix ends with this error.

Trying
# su guix-builder1

works as well.

Any ideas?

Best regards,

Tomas Cech
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iEYEARECAAYFAlOd0aUACgkQ37XrCapiVCMlpwCg088GsKtpiRARHDTHsYDrWMPV
E7wAoI+O8zI5tgCCSb9UlLWgHmJGfb0B
=zT8l
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 16 Jun 2014 09:48
(name . Tomas Cech)(address . tcech@suse.cz)(address . 17786@debbugs.gnu.org)
87d2e9fg6g.fsf@gnu.org
Hello,

Tomas Cech <tcech@suse.cz> skribis:

Toggle quote (14 lines)
> guix package: error: build failed: the group `"guix-builders"' specified in
> `build-users-group' does not exist
>
> # grep guix /etc/passwd
> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
> guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
> guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
> guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
> guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
> # grep guix /etc/group
> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>
> Nothing seems to be obviously wrong, but guix ends with this error.

Hmm, what does “getent group guix-builders” return?
And “getent passwd guix-builder1”?

How did you create the accounts?

Thanks for the report,
Ludo’.
L
L
Ludovic Courtès wrote on 16 Jun 2014 13:53
(name . Tomas Cech)(address . tcech@suse.cz)(address . 17786@debbugs.gnu.org)
87fvj5cbq7.fsf@gnu.org
Tomas Cech <tcech@suse.cz> skribis:

Toggle quote (27 lines)
> On Mon, Jun 16, 2014 at 09:48:39AM +0200, Ludovic Courtès wrote:
>>Hello,
>>
>>Tomas Cech <tcech@suse.cz> skribis:
>>
>>> guix package: error: build failed: the group `"guix-builders"' specified in
>>> `build-users-group' does not exist
>>>
>>> # grep guix /etc/passwd
>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>> guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
>>> guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
>>> guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
>>> guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
>>> # grep guix /etc/group
>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>
>>> Nothing seems to be obviously wrong, but guix ends with this error.
>>
>>Hmm, what does “getent group guix-builders” return?
>>And “getent passwd guix-builder1”?
>
> # getent group guix-builders
> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
> # getent passwd guix-builder1
> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin

So that’s all good.

The daemon simply does that (build.cc):

Toggle snippet (7 lines)
/* Get the members of the build-users-group. */
struct group * gr = getgrnam(settings.buildUsersGroup.c_str());
if (!gr)
throw Error(format("the group `%1%' specified in `build-users-group' does not exist")
% settings.buildUsersGroup);

Can you try getgrnam("guix-builders") in C or some other language (from
Guile: (getgrnam "guix-builders")) ?

Does it make a difference if nscd is stopped or restarted?

Thanks,
Ludo’.
T
T
Tomas Cech wrote on 16 Jun 2014 22:42
(name . Ludovic Courtès)(address . ludo@gnu.org)
20140616204238.GG5647@venom
On Mon, Jun 16, 2014 at 01:52:36PM +0200, Ludovic Courtès wrote:
Toggle quote (44 lines)
>Tomas Cech <tcech@suse.cz> skribis:
>
>> On Mon, Jun 16, 2014 at 09:48:39AM +0200, Ludovic Courtès wrote:
>>>Hello,
>>>
>>>Tomas Cech <tcech@suse.cz> skribis:
>>>
>>>> guix package: error: build failed: the group `"guix-builders"' specified in
>>>> `build-users-group' does not exist
>>>>
>>>> # grep guix /etc/passwd
>>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>>> guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
>>>> guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
>>>> guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
>>>> guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
>>>> # grep guix /etc/group
>>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>>
>>>> Nothing seems to be obviously wrong, but guix ends with this error.
>>>
>>>Hmm, what does “getent group guix-builders” return?
>>>And “getent passwd guix-builder1”?
>>
>> # getent group guix-builders
>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>> # getent passwd guix-builder1
>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>
>So that’s all good.
>
>The daemon simply does that (build.cc):
>
>--8<---------------cut here---------------start------------->8---
> /* Get the members of the build-users-group. */
> struct group * gr = getgrnam(settings.buildUsersGroup.c_str());
> if (!gr)
> throw Error(format("the group `%1%' specified in `build-users-group' does not exist")
> % settings.buildUsersGroup);
>--8<---------------cut here---------------end--------------->8---
>
>Can you try getgrnam("guix-builders") in C or some other language (from
>Guile: (getgrnam "guix-builders")) ?

scheme@(guile-user)> (getgrnam "guix-builders")
$2 = #("guix-builders" "x" 479 ("guix-builder1" "guix-builder2" "guix-builder3" "guix-builder4" "guix-builder5"))

Toggle quote (2 lines)
>Does it make a difference if nscd is stopped or restarted?

No, it behaves the same with or without running nscd.

Thanks,

Tomas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iEYEARECAAYFAlOfVr0ACgkQ37XrCapiVCNacQCcDPbd9i3NMX8epc9E8EGvKjdx
FD4AoIxEVwk/fxRm1OBM/px67UXLw/2B
=SdEX
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 17 Jun 2014 11:57
(name . Tomas Cech)(address . tcech@suse.cz)(address . 17786@debbugs.gnu.org)
87mwdbg8oz.fsf@gnu.org
Hello,

Please keep 17786@debbugs.gnu.org Cc’d.

Tomas Cech <tcech@suse.cz> skribis:

Toggle quote (48 lines)
> On Mon, Jun 16, 2014 at 01:52:36PM +0200, Ludovic Courtès wrote:
>>Tomas Cech <tcech@suse.cz> skribis:
>>
>>> On Mon, Jun 16, 2014 at 09:48:39AM +0200, Ludovic Courtès wrote:
>>>>Hello,
>>>>
>>>>Tomas Cech <tcech@suse.cz> skribis:
>>>>
>>>>> guix package: error: build failed: the group `"guix-builders"' specified in
>>>>> `build-users-group' does not exist
>>>>>
>>>>> # grep guix /etc/passwd
>>>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>>>> guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
>>>>> guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
>>>>> guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
>>>>> guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
>>>>> # grep guix /etc/group
>>>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>>>
>>>>> Nothing seems to be obviously wrong, but guix ends with this error.
>>>>
>>>>Hmm, what does “getent group guix-builders” return?
>>>>And “getent passwd guix-builder1”?
>>>
>>> # getent group guix-builders
>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>> # getent passwd guix-builder1
>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>
>>So that’s all good.
>>
>>The daemon simply does that (build.cc):
>>
>>--8<---------------cut here---------------start------------->8---
>> /* Get the members of the build-users-group. */
>> struct group * gr = getgrnam(settings.buildUsersGroup.c_str());
>> if (!gr)
>> throw Error(format("the group `%1%' specified in `build-users-group' does not exist")
>> % settings.buildUsersGroup);
>>--8<---------------cut here---------------end--------------->8---
>>
>>Can you try getgrnam("guix-builders") in C or some other language (from
>>Guile: (getgrnam "guix-builders")) ?
>
> scheme@(guile-user)> (getgrnam "guix-builders")
> $2 = #("guix-builders" "x" 479 ("guix-builder1" "guix-builder2" "guix-builder3" "guix-builder4" "guix-builder5"))

Then there’s something weird: Guile’s getgrnam directly corresponds to
libc’s getgrnam(3), which is what guix-daemon uses in the snippet above.

Oh, I see the error message you gave above reads:

the group `"guix-builders"'

Note the extra double quotes.

Could it be that the script that launches guix-daemon does something
that amounts to:

guix-daemon '--build-users-group="guix-builders"'

That is, it leaves the double quotes as is in the argument?

Thanks,
Ludo’.
T
T
Tomas Cech wrote on 17 Jun 2014 12:04
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 17786@debbugs.gnu.org)
20140617100449.GD3416@crashnator.suse.cz
Hello,

On Tue, Jun 17, 2014 at 11:57:16AM +0200, Ludovic Courtès wrote:
Toggle quote (70 lines)
>Hello,
>
>Please keep 17786@debbugs.gnu.org Cc’d.
>
>Tomas Cech <tcech@suse.cz> skribis:
>
>> On Mon, Jun 16, 2014 at 01:52:36PM +0200, Ludovic Courtès wrote:
>>>Tomas Cech <tcech@suse.cz> skribis:
>>>
>>>> On Mon, Jun 16, 2014 at 09:48:39AM +0200, Ludovic Courtès wrote:
>>>>>Hello,
>>>>>
>>>>>Tomas Cech <tcech@suse.cz> skribis:
>>>>>
>>>>>> guix package: error: build failed: the group `"guix-builders"' specified in
>>>>>> `build-users-group' does not exist
>>>>>>
>>>>>> # grep guix /etc/passwd
>>>>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>>>>> guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
>>>>>> guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
>>>>>> guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
>>>>>> guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
>>>>>> # grep guix /etc/group
>>>>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>>>>
>>>>>> Nothing seems to be obviously wrong, but guix ends with this error.
>>>>>
>>>>>Hmm, what does “getent group guix-builders” return?
>>>>>And “getent passwd guix-builder1”?
>>>>
>>>> # getent group guix-builders
>>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>> # getent passwd guix-builder1
>>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>>
>>>So that’s all good.
>>>
>>>The daemon simply does that (build.cc):
>>>
>>>--8<---------------cut here---------------start------------->8---
>>> /* Get the members of the build-users-group. */
>>> struct group * gr = getgrnam(settings.buildUsersGroup.c_str());
>>> if (!gr)
>>> throw Error(format("the group `%1%' specified in `build-users-group' does not exist")
>>> % settings.buildUsersGroup);
>>>--8<---------------cut here---------------end--------------->8---
>>>
>>>Can you try getgrnam("guix-builders") in C or some other language (from
>>>Guile: (getgrnam "guix-builders")) ?
>>
>> scheme@(guile-user)> (getgrnam "guix-builders")
>> $2 = #("guix-builders" "x" 479 ("guix-builder1" "guix-builder2" "guix-builder3" "guix-builder4" "guix-builder5"))
>
>Then there’s something weird: Guile’s getgrnam directly corresponds to
>libc’s getgrnam(3), which is what guix-daemon uses in the snippet above.
>
>Oh, I see the error message you gave above reads:
>
> the group `"guix-builders"'
>
>Note the extra double quotes.
>
>Could it be that the script that launches guix-daemon does something
>that amounts to:
>
> guix-daemon '--build-users-group="guix-builders"'
>
>That is, it leaves the double quotes as is in the argument?

It seems to be that case. Thank you and sorry for the noise...

Best regards,

Tomas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iEYEARECAAYFAlOgEsAACgkQ37XrCapiVCP5jACfUjU/y8/HTUePRiOCWbhhLpPT
QMgAn1gKcG+jJrrPwVeEjfinFVfoJFmW
=SYTf
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 17 Jun 2014 13:45
(name . Tomas Cech)(address . tcech@suse.cz)(address . 17786@debbugs.gnu.org)
87fvj3g3p9.fsf@gnu.org
close 17786
tags 17786 notabug
thanks

Tomas Cech <tcech@suse.cz> skribis:

Toggle quote (73 lines)
> On Tue, Jun 17, 2014 at 11:57:16AM +0200, Ludovic Courtès wrote:
>>Hello,
>>
>>Please keep 17786@debbugs.gnu.org Cc’d.
>>
>>Tomas Cech <tcech@suse.cz> skribis:
>>
>>> On Mon, Jun 16, 2014 at 01:52:36PM +0200, Ludovic Courtès wrote:
>>>>Tomas Cech <tcech@suse.cz> skribis:
>>>>
>>>>> On Mon, Jun 16, 2014 at 09:48:39AM +0200, Ludovic Courtès wrote:
>>>>>>Hello,
>>>>>>
>>>>>>Tomas Cech <tcech@suse.cz> skribis:
>>>>>>
>>>>>>> guix package: error: build failed: the group `"guix-builders"' specified in
>>>>>>> `build-users-group' does not exist
>>>>>>>
>>>>>>> # grep guix /etc/passwd
>>>>>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>>>>>> guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
>>>>>>> guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
>>>>>>> guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
>>>>>>> guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
>>>>>>> # grep guix /etc/group
>>>>>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>>>>>
>>>>>>> Nothing seems to be obviously wrong, but guix ends with this error.
>>>>>>
>>>>>>Hmm, what does “getent group guix-builders” return?
>>>>>>And “getent passwd guix-builder1”?
>>>>>
>>>>> # getent group guix-builders
>>>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>>> # getent passwd guix-builder1
>>>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>>>
>>>>So that’s all good.
>>>>
>>>>The daemon simply does that (build.cc):
>>>>
>>>>--8<---------------cut here---------------start------------->8---
>>>> /* Get the members of the build-users-group. */
>>>> struct group * gr = getgrnam(settings.buildUsersGroup.c_str());
>>>> if (!gr)
>>>> throw Error(format("the group `%1%' specified in `build-users-group' does not exist")
>>>> % settings.buildUsersGroup);
>>>>--8<---------------cut here---------------end--------------->8---
>>>>
>>>>Can you try getgrnam("guix-builders") in C or some other language (from
>>>>Guile: (getgrnam "guix-builders")) ?
>>>
>>> scheme@(guile-user)> (getgrnam "guix-builders")
>>> $2 = #("guix-builders" "x" 479 ("guix-builder1" "guix-builder2" "guix-builder3" "guix-builder4" "guix-builder5"))
>>
>>Then there’s something weird: Guile’s getgrnam directly corresponds to
>>libc’s getgrnam(3), which is what guix-daemon uses in the snippet above.
>>
>>Oh, I see the error message you gave above reads:
>>
>> the group `"guix-builders"'
>>
>>Note the extra double quotes.
>>
>>Could it be that the script that launches guix-daemon does something
>>that amounts to:
>>
>> guix-daemon '--build-users-group="guix-builders"'
>>
>>That is, it leaves the double quotes as is in the argument?
>
> It seems to be that case. Thank you and sorry for the noise...

OK, good to know.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 17 Jun 2014 13:45
(no subject)
(address . control@debbugs.gnu.org)
87bntrg3on.fsf@gnu.org
close 17786
tags 17786 notabug
thanks
?