unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* wrong type of agument... where ?
@ 2017-12-31 11:39 Catonano
  2017-12-31 12:23 ` Danny Milosavljevic
  0 siblings, 1 reply; 13+ messages in thread
From: Catonano @ 2017-12-31 11:39 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1045 bytes --]

In attempting to test my trytond service wit hthhis line

make check-system TESTS="trytond"

I get this errror

[...]
adding user 'guixbuilder08'...
adding user 'guixbuilder09'...
adding user 'guixbuilder10'...
adding user 'trytond'...
adding user 'postgres'...
registering public key
'/gnu/store/94y24as2zk3n3n39602vlanqb1g5j0c0-guix-0.13.0-12.0a154c1/share/guix/hydra.gnu.org.pub'...
ERROR: In procedure append:
ERROR: In procedure append: Wrong type argument in position 1 (expecting
empty list): "-c en_US.utf8"

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 2.2.2
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)>


Where does this -c en_US.utf8 string come from ?
Where is append being called ?

Could I have a slighhtly more verbose error message ?

Thanks

[-- Attachment #2: Type: text/html, Size: 1318 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 11:39 wrong type of agument... where ? Catonano
@ 2017-12-31 12:23 ` Danny Milosavljevic
  2017-12-31 13:04   ` Catonano
  0 siblings, 1 reply; 13+ messages in thread
From: Danny Milosavljevic @ 2017-12-31 12:23 UTC (permalink / raw)
  To: Catonano; +Cc: guix-devel

Hi Catonano,

On Sun, 31 Dec 2017 12:39:07 +0100
Catonano <catonano@gmail.com> wrote:

> In attempting to test my trytond service wit hthhis line
> 
> make check-system TESTS="trytond"
> 
> I get this errror
> 
> [...]
> adding user 'guixbuilder08'...
> adding user 'guixbuilder09'...
> adding user 'guixbuilder10'...
> adding user 'trytond'...
> adding user 'postgres'...
> registering public key
> '/gnu/store/94y24as2zk3n3n39602vlanqb1g5j0c0-guix-0.13.0-12.0a154c1/share/guix/hydra.gnu.org.pub'...
> ERROR: In procedure append:
> ERROR: In procedure append: Wrong type argument in position 1 (expecting
> empty list): "-c en_US.utf8"
> 
> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> GNU Guile 2.2.2
> Copyright (C) 1995-2017 Free Software Foundation, Inc.
> 
> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> This program is free software, and you are welcome to redistribute it
> under certain conditions; type `,show c' for details.
> 
> Enter `,help' for help.
> scheme@(guile-user)>
> 
> 
> Where does this -c en_US.utf8 string come from ?
> Where is append being called ?
> 
> Could I have a slighhtly more verbose error message ?

Write ,bt (including the comma)

I agree, the error message could be better.  Let's see where it comes from.

Or is that not an interactive REPL?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 12:23 ` Danny Milosavljevic
@ 2017-12-31 13:04   ` Catonano
  2017-12-31 14:35     ` Danny Milosavljevic
  0 siblings, 1 reply; 13+ messages in thread
From: Catonano @ 2017-12-31 13:04 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2379 bytes --]

2017-12-31 13:23 GMT+01:00 Danny Milosavljevic <dannym@scratchpost.org>:

> Hi Catonano,
>
> On Sun, 31 Dec 2017 12:39:07 +0100
> Catonano <catonano@gmail.com> wrote:
>
> > In attempting to test my trytond service wit hthhis line
> >
> > make check-system TESTS="trytond"
> >
> > I get this errror
> >
> > [...]
> > adding user 'guixbuilder08'...
> > adding user 'guixbuilder09'...
> > adding user 'guixbuilder10'...
> > adding user 'trytond'...
> > adding user 'postgres'...
> > registering public key
> > '/gnu/store/94y24as2zk3n3n39602vlanqb1g5j0c0-guix-0.13.0-12.0a154c1/
> share/guix/hydra.gnu.org.pub'...
> > ERROR: In procedure append:
> > ERROR: In procedure append: Wrong type argument in position 1 (expecting
> > empty list): "-c en_US.utf8"
> >
> > Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> > GNU Guile 2.2.2
> > Copyright (C) 1995-2017 Free Software Foundation, Inc.
> >
> > Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> > This program is free software, and you are welcome to redistribute it
> > under certain conditions; type `,show c' for details.
> >
> > Enter `,help' for help.
> > scheme@(guile-user)>
> >
> >
> > Where does this -c en_US.utf8 string come from ?
> > Where is append being called ?
> >
> > Could I have a slighhtly more verbose error message ?
>
> Write ,bt (including the comma)
>
> I agree, the error message could be better.  Let's see where it comes from.
>
> Or is that not an interactive REPL?
>

Yes, there iis a REPL but

,bt

doesn't return a prrompt. It remains suspended, like this


[...]
adding user 'guixbuilder08'...
adding user 'guixbuilder09'...
adding user 'guixbuilder10'...
adding user 'trytond'...
adding user 'postgres'...
registering public key
'/gnu/store/94y24as2zk3n3n39602vlanqb1g5j0c0-guix-0.13.0-12.0a154c1/share/guix/hydra.gnu.org.pub'...
ERROR: In procedure append:
ERROR: In procedure append: Wrong type argument in position 1 (expecting
empty list): "-c en_US.utf8"

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 2.2.2
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> ,bt

[-- Attachment #2: Type: text/html, Size: 3378 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 13:04   ` Catonano
@ 2017-12-31 14:35     ` Danny Milosavljevic
  2017-12-31 14:48       ` Catonano
  0 siblings, 1 reply; 13+ messages in thread
From: Danny Milosavljevic @ 2017-12-31 14:35 UTC (permalink / raw)
  To: Catonano; +Cc: guix-devel

Is the tryton test using marionette-operating-system ?

marionette-shepherd-service seems to already try to remote-control the system - but it seems that this case has not been handled?

Check out marionette-shepherd-service in gnu/tests.scm for the general mechanism.  Maybe add some (display "XXX") in there in order to find out where it goes off the deep end.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 14:35     ` Danny Milosavljevic
@ 2017-12-31 14:48       ` Catonano
  2017-12-31 23:03         ` Catonano
  2017-12-31 23:39         ` Danny Milosavljevic
  0 siblings, 2 replies; 13+ messages in thread
From: Catonano @ 2017-12-31 14:48 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 738 bytes --]

2017-12-31 15:35 GMT+01:00 Danny Milosavljevic <dannym@scratchpost.org>:

> Is the tryton test using marionette-operating-system ?
>

I believe it is

Anyway, here's the definition of the service
https://gitlab.com/humanitiesNerd/guix-hacks/blob/trytonservice/gnu/services/trytond.scm

And here's the test
https://gitlab.com/humanitiesNerd/guix-hacks/blob/trytonservice/gnu/tests/trytond.scm



> marionette-shepherd-service seems to already try to remote-control the
> system - but it seems that this case has not been handled?
>
> Check out marionette-shepherd-service in gnu/tests.scm for the general
> mechanism.  Maybe add some (display "XXX") in there in order to find out
> where it goes off the deep end


I'll take a look
Thanks

[-- Attachment #2: Type: text/html, Size: 1526 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 14:48       ` Catonano
@ 2017-12-31 23:03         ` Catonano
  2017-12-31 23:39         ` Danny Milosavljevic
  1 sibling, 0 replies; 13+ messages in thread
From: Catonano @ 2017-12-31 23:03 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1017 bytes --]

I made it

the first trytond test (to check if trytond is running) passed successfully

make check-system TESTS="trytond"

And it's exactly midnight !
Happy New Year !



2017-12-31 15:48 GMT+01:00 Catonano <catonano@gmail.com>:

>
>
> 2017-12-31 15:35 GMT+01:00 Danny Milosavljevic <dannym@scratchpost.org>:
>
>> Is the tryton test using marionette-operating-system ?
>>
>
> I believe it is
>
> Anyway, here's the definition of the service
> https://gitlab.com/humanitiesNerd/guix-hacks/blob/trytonservice/gnu/
> services/trytond.scm
>
> And here's the test
> https://gitlab.com/humanitiesNerd/guix-hacks/blob/trytonservice/gnu/tests/
> trytond.scm
>
>
>
>> marionette-shepherd-service seems to already try to remote-control the
>> system - but it seems that this case has not been handled?
>>
>> Check out marionette-shepherd-service in gnu/tests.scm for the general
>> mechanism.  Maybe add some (display "XXX") in there in order to find out
>> where it goes off the deep end
>
>
> I'll take a look
> Thanks
>
>
>

[-- Attachment #2: Type: text/html, Size: 2245 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 14:48       ` Catonano
  2017-12-31 23:03         ` Catonano
@ 2017-12-31 23:39         ` Danny Milosavljevic
  2018-01-01 10:54           ` Catonano
  2018-01-07  1:46           ` Chris Marusich
  1 sibling, 2 replies; 13+ messages in thread
From: Danny Milosavljevic @ 2017-12-31 23:39 UTC (permalink / raw)
  To: Catonano; +Cc: guix-devel

Try this:

diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index 4dd740174..810a0d63f 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -507,7 +507,14 @@ to it are lost."
              (switch-root "/root")
              (format #t "loading '~a'...\n" to-load)
 
-             (primitive-load to-load)
+             (catch #t
+               (lambda ()
+                 (primitive-load to-load))
+               (lambda (key . args)
+                 (format (current-error-port) "Error: ~a: ~a\n" key args)
+                 (reboot))
+               (lambda (key . args)
+                 (display-backtrace (make-stack #t) (current-error-port))))
 
              (format (current-error-port)
                      "boot program '~a' terminated, rebooting~%"

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 23:39         ` Danny Milosavljevic
@ 2018-01-01 10:54           ` Catonano
  2018-01-01 14:01             ` Danny Milosavljevic
  2018-01-07  1:46           ` Chris Marusich
  1 sibling, 1 reply; 13+ messages in thread
From: Catonano @ 2018-01-01 10:54 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2348 bytes --]

Danny,

2018-01-01 0:39 GMT+01:00 Danny Milosavljevic <dannym@scratchpost.org>:

> Try this:
>
> diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
> index 4dd740174..810a0d63f 100644
> --- a/gnu/build/linux-boot.scm
> +++ b/gnu/build/linux-boot.scm
> @@ -507,7 +507,14 @@ to it are lost."
>               (switch-root "/root")
>               (format #t "loading '~a'...\n" to-load)
>
> -             (primitive-load to-load)
> +             (catch #t
> +               (lambda ()
> +                 (primitive-load to-load))
> +               (lambda (key . args)
> +                 (format (current-error-port) "Error: ~a: ~a\n" key args)
> +                 (reboot))
> +               (lambda (key . args)
> +                 (display-backtrace (make-stack #t)
> (current-error-port))))
>
>               (format (current-error-port)
>                       "boot program '~a' terminated, rebooting~%"
>

thank you so much for this !

I don't know if it' s current anymore, though

In fact, I have discovered some errors I made in the code

Now the trytond test succeeds (yay !) and I don't get ushered in a REPL
anymore

There wee seveal problems

First, I hadn't pdated gnulocal.mk with my new files

gnu/services/trytond.scm
gnu/tests/trytond.scm

Also the Gexpression used in my trytond activation was garbled, so the
shepherd serrvice coldn't run

As a consequence, in the test definition this piece of code

            (marionette-eval
             '(begin
                (use-modules (gnu services herd))
                (match (start-service 'trytond)
                  (#f #f)
                  (('service response-parts ...)
                   (match (assq-ref response-parts 'running)
                     ((pid) (number? pid))))))
             marionette))


didn't succeed. In the match clause, the (#f #f) case ensued (I suppose)

I discovered all this by creating a virtual machine based on my trytond
branch and running it manually

After I fixed all these glitches, the system test run as a charm

So now I'm a bit overwhelmed and I don't know if your suggestion is still
currrent

I can tell you, though, that I feel very reassured by the fact that someone
tried to help me out !

I'll keep your suggestion in mind, should I have any further problems with
the marionette service

Happy New Year !
Ciao
Cato

[-- Attachment #2: Type: text/html, Size: 3949 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2018-01-01 10:54           ` Catonano
@ 2018-01-01 14:01             ` Danny Milosavljevic
  0 siblings, 0 replies; 13+ messages in thread
From: Danny Milosavljevic @ 2018-01-01 14:01 UTC (permalink / raw)
  To: Catonano; +Cc: guix-devel

Hi Catonano,

On Mon, 1 Jan 2018 11:54:50 +0100
Catonano <catonano@gmail.com> wrote:

> thank you so much for this !

You're welcome.

> I don't know if it' s current anymore, though

It's always good to improve the error reporting. I'll try to get it into guix master (bug 29922).

> Now the trytond test succeeds (yay !) and I don't get ushered in a REPL
> anymore

Nice :)

Happy new year!

Cheers,
   Danny

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2017-12-31 23:39         ` Danny Milosavljevic
  2018-01-01 10:54           ` Catonano
@ 2018-01-07  1:46           ` Chris Marusich
  2018-01-07 10:46             ` Danny Milosavljevic
  1 sibling, 1 reply; 13+ messages in thread
From: Chris Marusich @ 2018-01-07  1:46 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1092 bytes --]

Danny Milosavljevic <dannym@scratchpost.org> writes:

> Try this:
>
> diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
> index 4dd740174..810a0d63f 100644
> --- a/gnu/build/linux-boot.scm
> +++ b/gnu/build/linux-boot.scm
> @@ -507,7 +507,14 @@ to it are lost."
>               (switch-root "/root")
>               (format #t "loading '~a'...\n" to-load)
>  
> -             (primitive-load to-load)
> +             (catch #t
> +               (lambda ()
> +                 (primitive-load to-load))
> +               (lambda (key . args)
> +                 (format (current-error-port) "Error: ~a: ~a\n" key args)
> +                 (reboot))
> +               (lambda (key . args)
> +                 (display-backtrace (make-stack #t) (current-error-port))))
>  
>               (format (current-error-port)
>                       "boot program '~a' terminated, rebooting~%"
>

In some other languages (e.g., Java, Python), we get stack traces by
default when an unhandled exception is thrown.  Is this not the case in
Guile?

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2018-01-07  1:46           ` Chris Marusich
@ 2018-01-07 10:46             ` Danny Milosavljevic
  2018-01-07 23:22               ` Danny Milosavljevic
  0 siblings, 1 reply; 13+ messages in thread
From: Danny Milosavljevic @ 2018-01-07 10:46 UTC (permalink / raw)
  To: Chris Marusich; +Cc: guix-devel

Hi Chris,

On Sat, 06 Jan 2018 17:46:46 -0800
Chris Marusich <cmmarusich@gmail.com> wrote:

> Danny Milosavljevic <dannym@scratchpost.org> writes:
> 
> > Try this:
> >
> > diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
> > index 4dd740174..810a0d63f 100644
> > --- a/gnu/build/linux-boot.scm
> > +++ b/gnu/build/linux-boot.scm
> > @@ -507,7 +507,14 @@ to it are lost."
> >               (switch-root "/root")
> >               (format #t "loading '~a'...\n" to-load)
> >  
> > -             (primitive-load to-load)
> > +             (catch #t
> > +               (lambda ()
> > +                 (primitive-load to-load))
> > +               (lambda (key . args)
> > +                 (format (current-error-port) "Error: ~a: ~a\n" key args)
> > +                 (reboot))
> > +               (lambda (key . args)
> > +                 (display-backtrace (make-stack #t) (current-error-port))))
> >  
> >               (format (current-error-port)
> >                       "boot program '~a' terminated, rebooting~%"
> >  
> 
> In some other languages (e.g., Java, Python), we get stack traces by
> default when an unhandled exception is thrown.  Is this not the case in
> Guile?

It is the case in Guile, too.  But Guile does even more - it automatically drops you into a debugger prompt.  Then the tester VM hangs waiting for keyboard input (typing a debugger command) - which we

(1) don't want to provide (we want it to fail the unit test automatically and not only after writing "please fail the unit test already" there) and
(2) can't provide through the Makefile (right now).

Also, we already catch some other exceptions in (guix ui) - and I wanted to pre-empt that. 

Also, for some reason, directly modifying (guix ui) (see "call-with-error-handling") to handle our new error doesn't work.

I tried extending (guix ui) to print a message and that message doesn't appear at runtime either for (gnu build linux-boot) - but visual source code inspection says that (gnu build linux-boot) DOES use (guix ui)'s call-with-error-handling.  No idea what's up with that.  Maybe some not-rebuilding problem.

Every testing round (in this thread, Catonano describes how to test it) takes hours on my computer so if I find a better way it will be by doing a little, from time to time, over weeks.  But a quick workaround is the above.

Furthermore, the automatic stack trace printer (which is the same as display-backtrace) does some ellipsizing (to keep the total line length under 78 characters or something) and omits valuable information in the stack trace (cuts strings etc).  I don't know what's the idea with omitting half the stuff in information meant only for *programmers* in the first place.

Therefore, I put a better stack trace printer into bug# 29922 - which is otherwise similar in approach to what I did in this thread here.

Also, I think that there's a further bug in Guix in that marionette-operating-system (which is only used for testing) doesn't even exit on guest kernel panic (it just hangs there forever).  I've also includes a fix for that in the same patch.

I think it's necessary to improve error handling - errors in error handling drive me up a wall.  If some contributor already has to battle his own error, we shouldn't prevent him from finding it by our errors :)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2018-01-07 10:46             ` Danny Milosavljevic
@ 2018-01-07 23:22               ` Danny Milosavljevic
  2018-01-08 18:36                 ` Danny Milosavljevic
  0 siblings, 1 reply; 13+ messages in thread
From: Danny Milosavljevic @ 2018-01-07 23:22 UTC (permalink / raw)
  Cc: guix-devel

> Also, for some reason, directly modifying (guix ui) (see "call-with-error-handling") to handle our new error doesn't work.

Aha, it's using a released "guix" package in the test VM.  Where can I change that to "guix-devel"?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: wrong type of agument... where ?
  2018-01-07 23:22               ` Danny Milosavljevic
@ 2018-01-08 18:36                 ` Danny Milosavljevic
  0 siblings, 0 replies; 13+ messages in thread
From: Danny Milosavljevic @ 2018-01-08 18:36 UTC (permalink / raw)
  Cc: guix-devel

> > Also, for some reason, directly modifying (guix ui) (see "call-with-error-handling") to handle our new error doesn't work.  
> 
> Aha, it's using a released "guix" package in the test VM.  Where can I change that to "guix-devel"?

       (services (modify-services (operating-system-user-services %trytond-os)
                (guix-service-type config =>
                                   (guix-configuration
                                    (inherit config)
                                    (guix (current-guix)))))))

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-01-08 18:36 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-31 11:39 wrong type of agument... where ? Catonano
2017-12-31 12:23 ` Danny Milosavljevic
2017-12-31 13:04   ` Catonano
2017-12-31 14:35     ` Danny Milosavljevic
2017-12-31 14:48       ` Catonano
2017-12-31 23:03         ` Catonano
2017-12-31 23:39         ` Danny Milosavljevic
2018-01-01 10:54           ` Catonano
2018-01-01 14:01             ` Danny Milosavljevic
2018-01-07  1:46           ` Chris Marusich
2018-01-07 10:46             ` Danny Milosavljevic
2018-01-07 23:22               ` Danny Milosavljevic
2018-01-08 18:36                 ` Danny Milosavljevic

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).