gnu: p11-kit: Update to 0.23.9 fails test.

  • Done
  • quality assurance status badge
Details
2 participants
  • Oleg Pykhalov
  • Ludovic Courtès
Owner
unassigned
Submitted by
Oleg Pykhalov
Severity
normal
O
O
Oleg Pykhalov wrote on 4 Oct 2017 04:50
(address . bug-guix@gnu.org)
87zi9739u6.fsf@gmail.com
Hello Guix,

Latest p11-kit update fails to test and build.

Toggle snippet (31 lines)
FAIL: test-compat
1..2
ok 1 /hash/murmur3
ok 2 /hash/murmur3-incr
1..16
ok 1 /conf/test_parse_conf_1
ok 2 /conf/test_parse_ignore_missing
ok 3 /conf/test_parse_fail_missing
ok 4 /conf/test_merge_defaults
ok 5 /conf/test_load_globals_merge
ok 6 /conf/test_load_globals_no_user
ok 7 /conf/test_load_globals_system_sets_only
ok 8 /conf/test_load_globals_user_sets_only
ok 9 /conf/test_load_globals_system_sets_invalid
ok 10 /conf/test_load_globals_user_sets_invalid
ok 11 /conf/test_load_modules_merge
ok 12 /conf/test_load_modules_no_user
ok 13 /conf/test_load_modules_user_only
ok 14 /conf/test_load_modules_user_none
ok 15 /conf/test_parse_boolean
not ok 16 /conf/setuid
# assertion failed (ret == 18): (33 == 18)
# in test_setuid() at test-conf.c:421
FAIL: test-conf
2 of 47 tests failed

2a6e049a2f850aaa11e0ccabd94415e695e32c81
Attachment: file
O
O
Oleg Pykhalov wrote on 4 Oct 2017 08:21
(address . 28694@debbugs.gnu.org)
87h8vf3025.fsf@gmail.com
Oleg Pykhalov <go.wigust@gmail.com> writes:

[...]

Toggle quote (2 lines)
> Latest p11-kit update fails to test and build.

[...]

By the way, it succeeded on Hydra.

But on my machine build fails on origin/master checkout.
$ guix build --check --no-grafts p11-kit

Does anybody have this issue?
L
L
Ludovic Courtès wrote on 4 Oct 2017 16:34
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 28694@debbugs.gnu.org)
87vajv6kyg.fsf@gnu.org
Oleg Pykhalov <go.wigust@gmail.com> skribis:

Toggle quote (31 lines)
> Latest p11-kit update fails to test and build.
>
> …
> FAIL: test-compat
> 1..2
> ok 1 /hash/murmur3
> ok 2 /hash/murmur3-incr
> …
> 1..16
> ok 1 /conf/test_parse_conf_1
> ok 2 /conf/test_parse_ignore_missing
> ok 3 /conf/test_parse_fail_missing
> ok 4 /conf/test_merge_defaults
> ok 5 /conf/test_load_globals_merge
> ok 6 /conf/test_load_globals_no_user
> ok 7 /conf/test_load_globals_system_sets_only
> ok 8 /conf/test_load_globals_user_sets_only
> ok 9 /conf/test_load_globals_system_sets_invalid
> ok 10 /conf/test_load_globals_user_sets_invalid
> ok 11 /conf/test_load_modules_merge
> ok 12 /conf/test_load_modules_no_user
> ok 13 /conf/test_load_modules_user_only
> ok 14 /conf/test_load_modules_user_none
> ok 15 /conf/test_parse_boolean
> not ok 16 /conf/setuid
> # assertion failed (ret == 18): (33 == 18)
> # in test_setuid() at test-conf.c:421
> FAIL: test-conf
> …
> 2 of 47 tests failed

Do the failures happen reproducibly for you? Is there a test log or
code giving a hint as to what is being tested and how it fails?

Thanks,
Ludo’.
O
O
Oleg Pykhalov wrote on 5 Oct 2017 02:45
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 28694@debbugs.gnu.org)
8760butoam.fsf@gmail.com
Hello Ludovic,

Thanks for hitting this issue!

ludo@gnu.org (Ludovic Courtès) writes:

[...]

Toggle quote (3 lines)
> Do the failures happen reproducibly for you? Is there a test log or
> code giving a hint as to what is being tested and how it fails?

I attached one log in the first message, but here is another one.

I'm on 46cf31868c1b12eec50bc9b8dda64604dd81f986
Attachment: file
I also checked 0.23.8. It fails. I think that I didn't notice this
because it was substituted in past. So bug report subject is wrong now.

I'm on 79ed92be6fb99af36f4173acade384c21acbbd90
Attachment: file
Just for a note I did those tests on Guix checkout without making a new
Git Worktree, but with running make with no errors. I guess this is OK.
L
L
Ludovic Courtès wrote on 5 Oct 2017 10:55
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 28694@debbugs.gnu.org)
87efqi9dok.fsf@gnu.org
Hi Oleg,

Oleg Pykhalov <go.wigust@gmail.com> skribis:

Toggle quote (11 lines)
> ludo@gnu.org (Ludovic Courtès) writes:
>
> [...]
>
>> Do the failures happen reproducibly for you? Is there a test log or
>> code giving a hint as to what is being tested and how it fails?
>
> I attached one log in the first message, but here is another one.
>
> I'm on 46cf31868c1b12eec50bc9b8dda64604dd81f986

[...]

Toggle quote (13 lines)
> calling secure_getenv(BLAH) getenv(BLAH) = 5
> calling secure_getenv(BLAH) getenv(BLAH) = 5
> 1..4
> ok 1 /compat/strndup
> not ok 2 /compat/getauxval
> # assertion failed (ret != 0): (0 != 0)
> # in test_getauxval() at test-compat.c:79
> not ok 3 /compat/secure_getenv
> # assertion failed (ret == 0): (5 == 0)
> # in test_secure_getenv() at test-compat.c:104
> ok 4 /compat/mmap
> FAIL: test-compat

[...]

Toggle quote (20 lines)
> ok 1 /conf/test_parse_conf_1
> ok 2 /conf/test_parse_ignore_missing
> ok 3 /conf/test_parse_fail_missing
> ok 4 /conf/test_merge_defaults
> ok 5 /conf/test_load_globals_merge
> ok 6 /conf/test_load_globals_no_user
> ok 7 /conf/test_load_globals_system_sets_only
> ok 8 /conf/test_load_globals_user_sets_only
> ok 9 /conf/test_load_globals_system_sets_invalid
> ok 10 /conf/test_load_globals_user_sets_invalid
> ok 11 /conf/test_load_modules_merge
> ok 12 /conf/test_load_modules_no_user
> ok 13 /conf/test_load_modules_user_only
> ok 14 /conf/test_load_modules_user_none
> ok 15 /conf/test_parse_boolean
> not ok 16 /conf/setuid
> # assertion failed (ret == 18): (33 == 18)
> # in test_setuid() at test-conf.c:421
> FAIL: test-conf

Both failures have to do with setuid/setgid binaries.

Is there anything special about your system, like use of SELinux or
similar? What are the mount options on /tmp? What kernel do you use?

Could you run “guix build -K p11-kit”, and then:

cd /tmp/guix-build-p11-kit*/p11-kit-0.*
strace -f -s 234 -o log make check

and finally post the excerpt of ‘log’ around the “assertion failed”
messages?

TIA!

Ludo’.
O
O
Oleg Pykhalov wrote on 6 Oct 2017 06:32
(name . Ludovic Courtès)(address . ludo@gnu.org)
87r2ugopz8.fsf@gmail.com
Hello Ludovic,

ludo@gnu.org (Ludovic Courtès) writes:

Toggle quote (57 lines)
> Hi Oleg,
>
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
>>
>> [...]
>>
>>> Do the failures happen reproducibly for you? Is there a test log or
>>> code giving a hint as to what is being tested and how it fails?
>>
>> I attached one log in the first message, but here is another one.
>>
>> I'm on 46cf31868c1b12eec50bc9b8dda64604dd81f986
>
> [...]
>
>> calling secure_getenv(BLAH) getenv(BLAH) = 5
>> calling secure_getenv(BLAH) getenv(BLAH) = 5
>> 1..4
>> ok 1 /compat/strndup
>> not ok 2 /compat/getauxval
>> # assertion failed (ret != 0): (0 != 0)
>> # in test_getauxval() at test-compat.c:79
>> not ok 3 /compat/secure_getenv
>> # assertion failed (ret == 0): (5 == 0)
>> # in test_secure_getenv() at test-compat.c:104
>> ok 4 /compat/mmap
>> FAIL: test-compat
>
> [...]
>
>> ok 1 /conf/test_parse_conf_1
>> ok 2 /conf/test_parse_ignore_missing
>> ok 3 /conf/test_parse_fail_missing
>> ok 4 /conf/test_merge_defaults
>> ok 5 /conf/test_load_globals_merge
>> ok 6 /conf/test_load_globals_no_user
>> ok 7 /conf/test_load_globals_system_sets_only
>> ok 8 /conf/test_load_globals_user_sets_only
>> ok 9 /conf/test_load_globals_system_sets_invalid
>> ok 10 /conf/test_load_globals_user_sets_invalid
>> ok 11 /conf/test_load_modules_merge
>> ok 12 /conf/test_load_modules_no_user
>> ok 13 /conf/test_load_modules_user_only
>> ok 14 /conf/test_load_modules_user_none
>> ok 15 /conf/test_parse_boolean
>> not ok 16 /conf/setuid
>> # assertion failed (ret == 18): (33 == 18)
>> # in test_setuid() at test-conf.c:421
>> FAIL: test-conf
>
> Both failures have to do with setuid/setgid binaries.
>
> Is there anything special about your system, like use of SELinux or
> similar? What are the mount options on /tmp? What kernel do you use?

No, I use pretty much default GNU GuixSD.

No SELinux or similar.

My mount options on /tmp are:

$ findmnt /tmp
/tmp tmpfs tmpfs rw,nosuid,nodev,relatime,size=16777216k

(file-systems (cons* ;; …
(file-system
(device "tmpfs")
(mount-point "/tmp")
(type "tmpfs")
(flags '(no-suid no-dev))
(options "mode=1777,size=16G")
(needed-for-boot? #t)
(check? #f))
%base-file-systems))

Yes, there is a nosuid flag. After removing this, success to build.
/me fills stupid.

Could we have a thing which will check for such flag before running
tests in package builds? Or tell this after 'guix system reconfigure'.
Or maybe to mention in Guix documentation if such a flag present then
you could fail to build some packages?

$ uname -a
Linux magnolia 4.13.4-gnu #1 SMP 1 x86_64 GNU/Linux

[...]

Thanks,
Oleg.
O
O
Oleg Pykhalov wrote on 6 Oct 2017 06:40
Re: Status: gnu: p11-kit: Update to 0.23.9 fails test.
(name . bug#28694)(address . 28694-done@debbugs.gnu.org)
87fuawopmz.fsf@gmail.com

Closed
L
L
Ludovic Courtès wrote on 6 Oct 2017 08:42
Re: bug#28694: gnu: p11-kit: Update to 0.23.9 fails test.
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 28694-done@debbugs.gnu.org)
87y3oosrof.fsf@gnu.org
Hi Oleg,

Oleg Pykhalov <go.wigust@gmail.com> skribis:

Toggle quote (82 lines)
> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Hi Oleg,
>>
>> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>>
>>> ludo@gnu.org (Ludovic Courtès) writes:
>>>
>>> [...]
>>>
>>>> Do the failures happen reproducibly for you? Is there a test log or
>>>> code giving a hint as to what is being tested and how it fails?
>>>
>>> I attached one log in the first message, but here is another one.
>>>
>>> I'm on 46cf31868c1b12eec50bc9b8dda64604dd81f986
>>
>> [...]
>>
>>> calling secure_getenv(BLAH) getenv(BLAH) = 5
>>> calling secure_getenv(BLAH) getenv(BLAH) = 5
>>> 1..4
>>> ok 1 /compat/strndup
>>> not ok 2 /compat/getauxval
>>> # assertion failed (ret != 0): (0 != 0)
>>> # in test_getauxval() at test-compat.c:79
>>> not ok 3 /compat/secure_getenv
>>> # assertion failed (ret == 0): (5 == 0)
>>> # in test_secure_getenv() at test-compat.c:104
>>> ok 4 /compat/mmap
>>> FAIL: test-compat
>>
>> [...]
>>
>>> ok 1 /conf/test_parse_conf_1
>>> ok 2 /conf/test_parse_ignore_missing
>>> ok 3 /conf/test_parse_fail_missing
>>> ok 4 /conf/test_merge_defaults
>>> ok 5 /conf/test_load_globals_merge
>>> ok 6 /conf/test_load_globals_no_user
>>> ok 7 /conf/test_load_globals_system_sets_only
>>> ok 8 /conf/test_load_globals_user_sets_only
>>> ok 9 /conf/test_load_globals_system_sets_invalid
>>> ok 10 /conf/test_load_globals_user_sets_invalid
>>> ok 11 /conf/test_load_modules_merge
>>> ok 12 /conf/test_load_modules_no_user
>>> ok 13 /conf/test_load_modules_user_only
>>> ok 14 /conf/test_load_modules_user_none
>>> ok 15 /conf/test_parse_boolean
>>> not ok 16 /conf/setuid
>>> # assertion failed (ret == 18): (33 == 18)
>>> # in test_setuid() at test-conf.c:421
>>> FAIL: test-conf
>>
>> Both failures have to do with setuid/setgid binaries.
>>
>> Is there anything special about your system, like use of SELinux or
>> similar? What are the mount options on /tmp? What kernel do you use?
>
> No, I use pretty much default GNU GuixSD.
>
> No SELinux or similar.
>
> My mount options on /tmp are:
>
> $ findmnt /tmp
> /tmp tmpfs tmpfs rw,nosuid,nodev,relatime,size=16777216k
>
> (file-systems (cons* ;; …
> (file-system
> (device "tmpfs")
> (mount-point "/tmp")
> (type "tmpfs")
> (flags '(no-suid no-dev))
> (options "mode=1777,size=16G")
> (needed-for-boot? #t)
> (check? #f))
> %base-file-systems))
>
> Yes, there is a nosuid flag. After removing this, success to build.
> /me fills stupid.

No problem, good that we found out!

Toggle quote (5 lines)
> Could we have a thing which will check for such flag before running
> tests in package builds? Or tell this after 'guix system reconfigure'.
> Or maybe to mention in Guix documentation if such a flag present then
> you could fail to build some packages?

There are many subtle ways in which package builds could fail. It could
be this, it could be SELinux weirdness, it could be btrfs (we’ve had
several cases where btrfs behaved slightly differently from ext4,
leading to obscure failures), it could be changes in the kernel, etc.

These are issues that leak through the isolated environments that
guix-daemon creates. If we wanted to avoid them, we’d have to run
builds in VMs, so that we can also choose which kernel we use. But
that’s much more heavyweight.

Thanks,
Ludo’.

PS: The address is NNN-done@debbugs.gnu.org, not done-NNN. :-)
Closed
?