diff mbox series

[bug#48541] gnu: Fix build for ldc.

Message ID 2b42fec5-8266-4953-4a6d-8b73e2105fff@gnu.org
State Accepted
Headers show
Series [bug#48541] gnu: Fix build for ldc. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Roel Janssen May 20, 2021, 4:08 p.m. UTC
Dear Guix,

I looked into why our LDC package fails to build, and it seems that all 
tests that make use of "ptrace" fail because the build environment 
doesn't allow it.
So I disabled these tests by removing the relevant files, and completed 
a successful build.

If there is a way to provide the build environment with the ability to 
use ptrace, and if that is preferred to removing tests, then please let 
me know so I can prepare another patch.

Kind regards,
Roel Janssen

Comments

Ludovic Courtès May 21, 2021, 10:09 a.m. UTC | #1
Hi Roel,

Roel Janssen <roel@gnu.org> skribis:

> I looked into why our LDC package fails to build, and it seems that
> all tests that make use of "ptrace" fail because the build environment 
> doesn't allow it.
> So I disabled these tests by removing the relevant files, and
> completed a successful build.
>
> If there is a way to provide the build environment with the ability to
> use ptrace, and if that is preferred to removing tests, then please
> let me know so I can prepare another patch.

The build environment doesn’t prevent the use of ptrace per se, AFAIK.
However, some systems may have /proc/sys/kernel/yama/ptrace_scope set to
1 (as a system-level setting), which prevents ptracing one’s own
processes, unless they’re a child.

I thought this could have been the reason but I see that ldc fails to
build on berlin, where ptrace_scope is 0 (it’s Guix System), so maybe
there’s something else.  Unfortunately the build log at
<https://ci.guix.gnu.org/build/290794/log/raw> doesn’t show anything.

Do you have more info about these failures?

>>From 191aa4cc2f131453d9ffc902d72dbe16307aa0c0 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Thu, 20 May 2021 18:04:05 +0200
> Subject: [PATCH] gnu: Fix build for ldc.
>
> * gnu/packages/dlang.scm (ldc): Disable tests that use ptrace.
> ---
>  gnu/packages/dlang.scm | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
> index da3b818c26..33be779ba3 100644
> --- a/gnu/packages/dlang.scm
> +++ b/gnu/packages/dlang.scm
> @@ -240,6 +240,16 @@ bootstrapping more recent compilers written in D.")
>                 (delete-file "tests/compilable/ctfe_math.d")
>                 (delete-file "tests/debuginfo/nested_gdb.d")
>                 (delete-file "tests/debuginfo/classtypes_gdb.d")
> +               ;; the following tests need special permissions for ptrace:
> +               (delete-file "tests/d2/dmd-testsuite/runnable/b18504.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14225.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14276.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14313.d")
> +               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14330.d")

In the interim, perhaps you can commit it with a link to this issue
and/or additional info about the problem?

Thanks,
Ludo’.
Roel Janssen May 21, 2021, 10:24 a.m. UTC | #2
Hi Ludo’,

Thank you for looking at the patch so quickly! :)

On Fri, 2021-05-21 at 12:09 +0200, Ludovic Courtès wrote:
> Hi Roel,
> 
> Roel Janssen <roel@gnu.org> skribis:
> 
> > I looked into why our LDC package fails to build, and it seems that
> > all tests that make use of "ptrace" fail because the build
> > environment 
> > doesn't allow it.
> > So I disabled these tests by removing the relevant files, and
> > completed a successful build.
> > 
> > If there is a way to provide the build environment with the ability
> > to
> > use ptrace, and if that is preferred to removing tests, then please
> > let me know so I can prepare another patch.
> 
> The build environment doesn’t prevent the use of ptrace per se, AFAIK.
> However, some systems may have /proc/sys/kernel/yama/ptrace_scope set
> to
> 1 (as a system-level setting), which prevents ptracing one’s own
> processes, unless they’re a child.
> 
> I thought this could have been the reason but I see that ldc fails to
> build on berlin, where ptrace_scope is 0 (it’s Guix System), so maybe
> there’s something else.  Unfortunately the build log at
> <https://ci.guix.gnu.org/build/290794/log/raw> doesn’t show anything.
> 
> Do you have more info about these failures?
> 

I attached the test suite's logs for the failed tests. The complete log
can be found in 'build/Testing/Temporary/LastTest.log' of the build
directory of a failed build.  It is too large to attach though.

The log shows the following:
------
Test runnable/b18504.d failed.  The logged output:
/tmp/guix-build-ldc-1.10.0.drv-0/build/bin/ldmd2 -conf= -m64 -Irunnable
-g -g -link-defaultlib-debug  -od../../../../build/dmd-testsuite-
debug/runnable -of../../../../build/dmd-testsuite-
debug/runnable/b18504_0  runnable/b18504.d 
gdb ../../../../build/dmd-testsuite-debug/runnable/b18504_0 --batch -x
../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb
warning: Could not trace the inferior process.
warning: ptrace: Operation not permitted
../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb:2: Error in
sourced command file:
During startup program exited with code 127.

------

> > > From 191aa4cc2f131453d9ffc902d72dbe16307aa0c0 Mon Sep 17 00:00:00
> > > 2001
> > From: Roel Janssen <roel@gnu.org>
> > Date: Thu, 20 May 2021 18:04:05 +0200
> > Subject: [PATCH] gnu: Fix build for ldc.
> > 
> > * gnu/packages/dlang.scm (ldc): Disable tests that use ptrace.
> > ---
> >  gnu/packages/dlang.scm | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
> > index da3b818c26..33be779ba3 100644
> > --- a/gnu/packages/dlang.scm
> > +++ b/gnu/packages/dlang.scm
> > @@ -240,6 +240,16 @@ bootstrapping more recent compilers written in
> > D.")
> >                 (delete-file "tests/compilable/ctfe_math.d")
> >                 (delete-file "tests/debuginfo/nested_gdb.d")
> >                 (delete-file "tests/debuginfo/classtypes_gdb.d")
> > +               ;; the following tests need special permissions for
> > ptrace:
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/b18504.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14225.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14276.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14313.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14330.d")
> 
> In the interim, perhaps you can commit it with a link to this issue
> and/or additional info about the problem?
> 

I'd like to resolve the build failure quickly indeed.  Perhaps we can
have one more look in the attached logs before I push a (wrong)
solution prematurely.

> Thanks,
> Ludo’.
>
Ludovic Courtès May 21, 2021, 2:57 p.m. UTC | #3
Hi!

Roel Janssen <roel@gnu.org> writes:

> I attached the test suite's logs for the failed tests. The complete log
> can be found in 'build/Testing/Temporary/LastTest.log' of the build
> directory of a failed build.  It is too large to attach though.
>
> The log shows the following:
> ------
> Test runnable/b18504.d failed.  The logged output:
> /tmp/guix-build-ldc-1.10.0.drv-0/build/bin/ldmd2 -conf= -m64 -Irunnable
> -g -g -link-defaultlib-debug  -od../../../../build/dmd-testsuite-
> debug/runnable -of../../../../build/dmd-testsuite-
> debug/runnable/b18504_0  runnable/b18504.d 
> gdb ../../../../build/dmd-testsuite-debug/runnable/b18504_0 --batch -x
> ../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb
> warning: Could not trace the inferior process.
> warning: ptrace: Operation not permitted
> ../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb:2: Error in
> sourced command file:
> During startup program exited with code 127.
>
> ------

Interesting.  Looking at ptrace(2), it’s not supposed to fail with EPERM
in the build environment, unless again that’s because of the Yama thing
I mentioned.  What’s the value of /proc/sys/kernel/yama/ptrace_scope on
your build machine?

So I’d say: adjust the comment with a link to
<https://issues.guix.gnu.org/48541>, saying that ptrace(2) fails with
EPERM, and push it.

We can always improve later if/when we find more info.

Thanks,
Ludo’.
Roel Janssen May 21, 2021, 4:10 p.m. UTC | #4
On Fri, 2021-05-21 at 16:57 +0200, Ludovic Courtès wrote:
> Hi!
> 
> Roel Janssen <roel@gnu.org> writes:
> 
> > I attached the test suite's logs for the failed tests. The complete
> > log
> > can be found in 'build/Testing/Temporary/LastTest.log' of the build
> > directory of a failed build.  It is too large to attach though.
> > 
> > The log shows the following:
> > ------
> > Test runnable/b18504.d failed.  The logged output:
> > /tmp/guix-build-ldc-1.10.0.drv-0/build/bin/ldmd2 -conf= -m64 -
> > Irunnable
> > -g -g -link-defaultlib-debug  -od../../../../build/dmd-testsuite-
> > debug/runnable -of../../../../build/dmd-testsuite-
> > debug/runnable/b18504_0  runnable/b18504.d 
> > gdb ../../../../build/dmd-testsuite-debug/runnable/b18504_0 --batch
> > -x
> > ../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb
> > warning: Could not trace the inferior process.
> > warning: ptrace: Operation not permitted
> > ../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb:2:
> > Error in
> > sourced command file:
> > During startup program exited with code 127.
> > 
> > ------
> 
> Interesting.  Looking at ptrace(2), it’s not supposed to fail with
> EPERM
> in the build environment, unless again that’s because of the Yama
> thing
> I mentioned.  What’s the value of /proc/sys/kernel/yama/ptrace_scope
> on
> your build machine?
> 

Interesting indeed.  Then I don't know why it fails.
It is set to 0 on my build machine.

> So I’d say: adjust the comment with a link to
> <https://issues.guix.gnu.org/48541>, saying that ptrace(2) fails with
> EPERM, and push it.
> 
> We can always improve later if/when we find more info.
> 

I adjusted the comment in the recipe, and pushed in
082988afac8ddac7525b40fb7ef8da7ff40f8ad3.
Thanks for the quick reviewing!

> 
> Thanks,
> Ludo’.
>
diff mbox series

Patch

From 191aa4cc2f131453d9ffc902d72dbe16307aa0c0 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Thu, 20 May 2021 18:04:05 +0200
Subject: [PATCH] gnu: Fix build for ldc.

* gnu/packages/dlang.scm (ldc): Disable tests that use ptrace.
---
 gnu/packages/dlang.scm | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index da3b818c26..33be779ba3 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -240,6 +240,16 @@  bootstrapping more recent compilers written in D.")
                (delete-file "tests/compilable/ctfe_math.d")
                (delete-file "tests/debuginfo/nested_gdb.d")
                (delete-file "tests/debuginfo/classtypes_gdb.d")
+               ;; the following tests need special permissions for ptrace:
+               (delete-file "tests/d2/dmd-testsuite/runnable/b18504.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14225.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14276.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14313.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14330.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb1.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb4149.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb4181.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/gdb15729.sh")
                ;; the following tests plugins we don't have.
                (delete-file "tests/plugins/addFuncEntryCall/testPlugin.d")
                ;; the following tests requires AVX instruction set in the CPU.
-- 
2.31.1