run-program fails on clisp linux x64 2c exit code matches? FAIL

Bug #1639532 reported by Faré
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ASDF
Won't Fix
Low
Faré

Bug Description

2 wait-process
 a exit code after exit: synchronous
 b exit code after exit: asynchronous (repeated)
   ......................................................... NOT IMPLEMENTED
 c exit code after signal: synchronous
   exit code matches?....................................... FAIL
...
 2 sub-tests failed.
13 sub-tests could not be run on this platform (not implemented).
Exiting with non-zero code because of unexpected test failures.
Using clisp, test-run-program-unix.script failed
you can retry compilation with:
./test/run-tests.sh clisp test-run-program-unix.script

NB: The summary says 2 sub-tests failed, but I see only one occurrence of FAIL in the logs.

Using /nix/store/g8kyk8d4pfsaq185a9hb280d902kygx5-clisp-2.49/bin/clisp from NixOS with channel /nix/store/6cqdzx8h6ir2mnphjh8gkhjh48ka82ld-user-environment (nixpkgs at 210b3b31 on linux x64).

Revision history for this message
pipping (pipping) wrote :

The test suite assumes the FHS and thus hardcodes /bin/sh. Since I see the word NixOS in your bug report, I would assume its complete disregard for the FHS to be the reason for this test failure (and I would expect this to be independent of clisp).

Revision history for this message
pipping (pipping) wrote :

This does not just affect the test suite, however. This part of uiop/run-program:

354- (etypecase command
355: #+os-unix (string `("/bin/sh" "-c" ,command))

should affect any CL platform, while this

1015- #+clisp
1016- (let ((raw-exit-code
1017- (or
1018- #.`(#+os-windows ,@'(ext:run-shell-command %command)
1019: #+os-unix ,@'(ext:run-program "/bin/sh" :arguments `("-c" ,%command))

should affect only clisp.

Revision history for this message
pipping (pipping) wrote :

Hm. Then again, http://nixos.org/nixos/about.html says...

  [..] The only exception is a symlink /bin/sh to Bash in the Nix store [..]

so that there is actually a /bin/sh, yes? Then the issue must be something else...

Revision history for this message
pipping (pipping) wrote :

What happens when you do

  ./asdf/test/killer.sh; echo $?

or

  sh asdf/test/killer.sh; echo $?

directly on nixos?

Revision history for this message
Faré (fahree) wrote :

NixOS has /bin/sh and /usr/bin/env, because they are mandated by POSIX, and that's all.

The tests pass on other implementation s, so whatever breaks on CLISP, it's more subtle than that.

NB: I needed a trivial fix to run-tests.sh to get it to run since pwd isn't in /bin. It's in the fixes branch.

Revision history for this message
pipping (pipping) wrote :

Have you tried running

This is what the test does (from within the test dir, where the killer.sh script lives): It checks if

  (nth-value 2 (uiop:run-program "./killer.sh" :ignore-error-status t))

equals 143 and fails otherwise. What does that return from within clisp on nixos for you?

Revision history for this message
Faré (fahree) wrote :

CLISP returns the exit code 0, which I'll blame on NixOS using an ancient release tarball rather than a recent checkout.

Revision history for this message
Faré (fahree) wrote :

Closing. This is a bug due to NixOS using an ancient release tarball, and CLISP not having released their bugfixes in years.

Changed in asdf:
assignee: nobody → Faré (fahree)
importance: Undecided → Low
milestone: none → asdf3.2
status: New → Won't Fix
Revision history for this message
pipping (pipping) wrote :

I actually regularly test with (a manually built) clisp 2.49 on fedora and there I'm not seeing any issues of this type. Hm...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.