|
From: | Torrekie |
Subject: | bug#64216: libgnu __spawni fail on Darwin |
Date: | Fri, 11 Aug 2023 18:29:57 +0800 |
Due to the lack of attaching child process feature in LLDB, I cannot see what was happening after a fork() call, but one thing is clear that the alternative `posix_spawn` provided by lib/spawni.c was not quite working as expected on Darwin systems (might only happens under arm64). Same bug mentioned in this GitHub issue, and I have actually attempted to undef REPLACE_POSIX_SPAWN to use system one, but it was still corrupted by malformed file actions which returning 22 (EINVAL) and set errno to ENOENT that may complaining about dup2-ed non-standard stdio fds. One thing is for sure, when REPLACE_POSIX_SPAWN is defined, posix_spawn calls will point to __spawni function as implementation. This function fails before actually calling `execve` (Or I didn't successfully caught that in lldb) This was my test result on macOS 11.2 arm64 /Applications/Xcode.app/Contents/Developer/usr/bin/make check-TESTS test-system-cmds: system* exit status was 127 rather than 42 FAIL: test-system-cmds PASS: test-bad-identifiers PASS: test-require-extension PASS: test-guile-snarf PASS: test-import-order PASS: test-command-line-encoding PASS: test-command-line-encoding2 PASS: test-language error: interrupted by the user PASS: test-guild-compile wrote `/Users/torrekie/proj/guile-3.0.9/cache/guile/ccache/3.0-LE-8-4.6/Users/torrekie/proj/guile-3.0.9/test-suite/standalone/test-signal-fork.go' parent: 53087 ....child: ..53133 ............................................. completed PASS: test-signal-fork PASS: test-num2integral PASS: test-round PASS: test-asmobs PASS: test-ffi PASS: test-foreign-object-scm PASS: test-foreign-object-c PASS: test-list PASS: test-unwind PASS: test-conversion PASS: test-loose-ends PASS: test-fast-slot-ref PASS: test-mb-regexp PASS: test-use-srfi PASS: test-scm-c-read PASS: test-scm-take-locale-symbol PASS: test-scm-take-u8vector PASS: test-scm-to-latin1-string PASS: test-scm-values PASS: test-scm-c-bind-keyword-arguments PASS: test-srfi-4 PASS: test-extensions PASS: test-with-guile-module PASS: test-scm-with-guile PASS: test-scm-spawn-thread PASS: test-pthread-create SKIP: test-pthread-create-secondary PASS: test-smob-mark PASS: test-smob-mark-race wrote `/Users/torrekie/proj/guile-3.0.9/cache/guile/ccache/3.0-LE-8-4.6/Users/torrekie/proj/guile-3.0.9/test-suite/standalone/test-stack-overflow.go' SKIP: test-stack-overflow wrote `/Users/torrekie/proj/guile-3.0.9/cache/guile/ccache/3.0-LE-8-4.6/Users/torrekie/proj/guile-3.0.9/test-suite/standalone/test-out-of-memory.go' SKIP: test-out-of-memory ;;; (child-exception ("scm_fdes_to_port" "~A" ("Bad file descriptor") (9))) ;;; (child-status 256) PASS: test-close-on-exec ================================== 1 of 38 tests failed (3 tests were not run) Please report to bug-guile@gnu.org ================================== make[5]: *** [check-TESTS] Error 1 make[4]: *** [check-am] Error 2 make[3]: *** [check] Error 2 make[2]: *** [check-recursive] Error 1 make[1]: *** [check-recursive] Error 1 make: *** [check] Error 2 |
[Prev in Thread] | Current Thread | [Next in Thread] |