shepherd 0.10.0 test 2 fail on riscv64-linux

  • Open
  • quality assurance status badge
Details
2 participants
  • Z572
  • Ludovic Courtès
Owner
unassigned
Submitted by
Z572
Severity
normal
Z
(address . bug-guix@gnu.org)
tencent_D652EDB2E6FF9275F2CA1B4B4E6AFF366509@qq.com
shepherd 0.10.0 test 2 fail on riscv64-linux. same error use
`guix build shepherd -s riscv64-linux` on x86_64 or
`guix build shepherd` on riscv64.

FAIL tests/pid-file.sh
FAIL: tests/forking-service

at commit e02584b456a3f9c00b303ef4815d892a47edc2e6.

you can use https://cache.z572.onlineas substitute server.

see attachment.
Attachment: test-suite.log
--
over
L
L
Ludovic Courtès wrote on 25 May 2023 16:53
(name . Z572)(address . 873216071@qq.com)
87zg5scvih.fsf@gnu.org
Hi,

(Cc: Efraim as another RISC-V person.)

Z572 <873216071@qq.com> skribis:

Toggle quote (4 lines)
> shepherd 0.10.0 test 2 fail on riscv64-linux. same error use
> `guix build shepherd -s riscv64-linux` on x86_64 or
> `guix build shepherd` on riscv64.

[…]

Toggle quote (1 lines)
> FAIL: tests/forking-service
[…]
Toggle quote (19 lines)
> + herd -s t-socket-3968 start test
> Starting service test...
> Service test has been started.
> + herd -s t-socket-3968 start test2
> Starting service test2...
> Service test2 has been started.
> + grep running
> + herd -s t-socket-3968 status test
> It is running since 03:39:18 (3 seconds ago).
> + test -f t-service-pid-3968
> ++ cat t-service-pid-3968
> + service_pid_value=6499
> + kill 6499
> + kill -0 6499
> + sleep 0.3
> + kill -0 6499
> + sleep 0.3
> + kill -0 6499

Here it looks as though process 6499 (associated with service ‘test’) is
either not receiving SIGHUP as sent by “kill 6499” or is ignoring it.

How reproducible is it? You can run it with
“make check TESTS=tests/forking-service.sh” to see.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 25 May 2023 16:59
(name . Z572)(address . 873216071@qq.com)
87sfbkcv80.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (3 lines)
> Here it looks as though process 6499 (associated with service ‘test’) is
> either not receiving SIGHUP as sent by “kill 6499” or is ignoring it.

It’s a similar issue in ‘tests/pid-file.sh’, it seems.

To get a better understanding of what’s happening, could you replace:

shepherd -I …

by:

strace -f -t -s 80 -o /tmp/shepherd.strace shepherd -I …

at the beginning of ‘tests/forking-service.sh’? Then, once you’ve
managed to get the test to fail again, please send both
‘tests/forking-service.log’ and ‘/tmp/shepherd.strace’.

TIA!

Ludo’.
Z
(name . Ludovic Courtès)(address . ludo@gnu.org)
tencent_9896C45FBECE5E7965895E2DEE6666EA7F06@qq.com
on qemu:
forking-service.sh test always fail.


try use strace but can't:

```
+ /gnu/store/w7a3fxw00y4picvcrkvdxavpj5gqabbb-strace-6.2/bin/strace -f -t -s 80 -o /tmp/she.strace shepherd -I -s t-socket-25862 -c t-conf-25862 -l t-log-25862 --pid=t-pid-25862
+ sleep 0.3
/gnu/store/w7a3fxw00y4picvcrkvdxavpj5gqabbb-strace-6.2/bin/strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Function not implemented
/gnu/store/w7a3fxw00y4picvcrkvdxavpj5gqabbb-strace-6.2/bin/strace: ptrace(PTRACE_TRACEME, ...): Function not implemented
/gnu/store/w7a3fxw00y4picvcrkvdxavpj5gqabbb-strace-6.2/bin/strace: PTRACE_SETOPTIONS: Function not implemented
/gnu/store/w7a3fxw00y4picvcrkvdxavpj5gqabbb-strace-6.2/bin/strace: detach: waitpid(25922): No child processes
```

pid-file.sh fail in check phase, but success at rerun use 'make check TESTS=tests/pid-file.sh'


riscv machine temporarily unable to reproduce.
+ shepherd --version
shepherd (GNU Shepherd) 0.10.1
Copyright (C) 2023 the Shepherd authors
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ herd --version
herd (GNU Shepherd) 0.10.1
Copyright (C) 2023 the Shepherd authors
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ socket=t-socket-3937
+ conf=t-conf-3937
+ log=t-log-3937
+ pid=t-pid-3937
+ service_pid=t-service-pid-3937
+ herd='herd -s t-socket-3937'
+ trap 'cat t-log-3937 || true; rm -f t-socket-3937 t-conf-3937 t-service-pid-3937 t-log-3937;
test -f t-pid-3937 && kill `cat t-pid-3937` || true; rm -f t-pid-3937' EXIT
+ cat
+ rm -f t-pid-3937
+ test -f t-pid-3937
+ sleep 0.3
+ shepherd -I -s t-socket-3937 -c t-conf-3937 -l t-log-3937 --pid=t-pid-3937
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
Starting service root...
Service root started.
Service root running with value #t.
Service root has been started.
+ test -f t-pid-3937
+ sleep 0.3
Starting service test-works...
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
+ test -f t-pid-3937
+ sleep 0.3
Service test-works has been started.
Service test-works started.
Service test-works running with value 5371.
+ test -f t-pid-3937
++ cat t-pid-3937
+ shepherd_pid=4685
+ grep running
+ herd -s t-socket-3937 status test-works
It is running since 14:39:18 (0 seconds ago).
+ test -f t-service-pid-3937
++ cat t-service-pid-3937
+ kill -0 5371
+ herd -s t-socket-3937 stop test-works
Stopping service test-works...
Service test-works stopped.
Service test-works is now stopped.
+ rm t-service-pid-3937
+ herd -s t-socket-3937 start test
Service test could not be started.
herd: error: failed to start service test
+ true
+ herd -s t-socket-3937 status test
+ grep stopped
It is stopped (failing).
+ test -f t-service-pid-3937
++ cat t-service-pid-3937
+ kill -0 7771
./tests/pid-file.sh: line 127: kill: (7771) - No such process
+ true
+ rm -f t-service-pid-3937
+ herd -s t-socket-3937 start test-daemonizes
Service test-daemonizes could not be started.
herd: error: failed to start service test-daemonizes
+ true
+ herd -s t-socket-3937 status test-daemonizes
+ grep stopped
It is stopped (failing).
+ test -f t-service-pid-3937
++ cat t-service-pid-3937
+ kill -0 12006
+ false
+ cat t-log-3937
2023-06-11 14:39:15 Starting service root...
2023-06-11 14:39:15 Service root started.
2023-06-11 14:39:15 Service root running with value #t.
2023-06-11 14:39:15 Service root has been started.
2023-06-11 14:39:16 Starting service test-works...
2023-06-11 14:39:18 Service test-works has been started.
2023-06-11 14:39:18 Service test-works started.
2023-06-11 14:39:18 Service test-works running with value 5371.
2023-06-11 14:39:19 Stopping service test-works...
2023-06-11 14:39:19 Service test-works stopped.
2023-06-11 14:39:19 Service test-works is now stopped.
2023-06-11 14:39:19 Starting service test...
2023-06-11 14:39:25 Service test could not be started.
2023-06-11 14:39:25 Service test failed to start.
2023-06-11 14:39:26 Starting service test-daemonizes...
2023-06-11 14:39:32 Service test-daemonizes could not be started.
2023-06-11 14:39:32 Service test-daemonizes failed to start.
+ rm -f t-socket-3937 t-conf-3937 t-service-pid-3937 t-log-3937
+ test -f t-pid-3937
++ cat t-pid-3937
+ kill 4685
+ rm -f t-pid-3937
Stopping service root...
Exiting shepherd...
Exiting.

Some deprecated features have been used. Set the environment
variable GUILE_WARN_DEPRECATED to "detailed" and rerun the
program to get more information. Set it to "no" to suppress
this message.
FAIL tests/pid-file.sh (exit status: 1)
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (25 lines)
> Ludovic Courtès <ludo@gnu.org> skribis:
>
>> Here it looks as though process 6499 (associated with service
>> ‘test’) is
>> either not receiving SIGHUP as sent by “kill 6499” or is ignoring it.
>
> It’s a similar issue in ‘tests/pid-file.sh’, it seems.
>
> To get a better understanding of what’s happening, could you replace:
>
> shepherd -I …
>
> by:
>
> strace -f -t -s 80 -o /tmp/shepherd.strace shepherd -I …
>
> at the beginning of ‘tests/forking-service.sh’? Then, once you’ve
> managed to get the test to fail again, please send both
> ‘tests/forking-service.log’ and ‘/tmp/shepherd.strace’.
>
> TIA!
>
> Ludo’.


--
over
?