Subject: bug#50931: 28.0.50; Tramp test suites fails when remote is MacOS

From: Damien Merenne <[email-masked]>
Date: Fri, 01 Oct 2021 10:23:00 +0200

When running the tramp test suite using a MacOS remote host, some test
fails, according to the tramp maintainer, it seems related to the native
compilation feature.

Running

$ env REMOTE_TEMPORARY_FILE_DIRECTORY='/ssh:laptop.lan:/tmp' make -C test
tramp-tests

Here are the traces of the failing tests whichall fails in
`comp--native-compile`

Test tramp-test10-write-region-file-precious-flag backtrace:
  signal(file-missing ((lambda (arg7094 arg7095 arg7096 &optional arg7
  comp--native-compile((lambda (arg7094 arg7095 arg7096 &optional arg7
  comp-trampoline-compile(write-region)
  comp-subr-trampoline-install(write-region)
  advice--add-function(:before (#f(compiled-function () #<bytecode 0x3
  advice-add(write-region :before (closure ((written-files) (tmp-name
  (save-current-buffer (set-buffer (find-file-noselect tmp-name)) (ins
  (unwind-protect (save-current-buffer (set-buffer (find-file-noselect
  (let* ((tmp-name (tramp--test-make-temp-name)) (inhibit-message t) w
  (let ((lexical-binding t)) (let* ((fn-3474 #'tramp--test-enabled) (a
  (closure (tramp-inline-compress-start-size tramp-copy-size-limit ang
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name tramp-test10-write-region-file-precio
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/net/tramp-tests.el"
  command-line()
  normal-top-level()
Test tramp-test10-write-region-file-precious-flag condition:
    (file-missing
     (lambda
       (arg7094 arg7095 arg7096 &optional arg7097 arg7098 arg7099 arg7100)
       (let
           ((f ...))
         (funcall f arg7094 arg7095 arg7096 arg7097 arg7098 arg7099 arg7100)))
     "Setting current directory" "No such file or directory" "/ssh:laptop.lan:/tmp/")
   FAILED  20/74  tramp-test10-write-region-file-precious-flag (1.101321 sec)

Test tramp-test29-start-file-process-direct-async backtrace:
  signal(file-missing ((lambda (arg7145 arg7146 &optional) (let ((f #'
  comp--native-compile((lambda (arg7145 arg7146 &optional) (let ((f #'
  comp-trampoline-compile(internal-default-process-sentinel)
  comp-subr-trampoline-install(internal-default-process-sentinel)
  fset(internal-default-process-sentinel #<subr internal-default-proce
  (unwind-protect (progn (fset #'internal-default-process-sentinel #'i
  (let* ((old (symbol-function #'internal-default-process-sentinel)) (
  (let ((default-directory tramp-test-temporary-file-directory) (ert-t
  (let ((lexical-binding t)) (let* ((fn-5545 #'tramp--test-enabled) (a
  (closure (tramp-inline-compress-start-size tramp-copy-size-limit ang
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name tramp-test29-start-file-process-direc
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/net/tramp-tests.el"
  command-line()
  normal-top-level()
Test tramp-test29-start-file-process-direct-async condition:
    (file-missing
     (lambda
       (arg7145 arg7146 &optional)
       (let
           ((f ...))
         (funcall f arg7145 arg7146)))
     "Setting current directory" "No such file or directory" "/ssh:laptop.lan:/tmp")
   FAILED  43/74  tramp-test29-start-file-process-direct-async (0.004039 sec)

Test tramp-test30-make-process-direct-async backtrace:
  signal(file-missing ((lambda (arg7181 arg7182 &optional) (let ((f #'
  comp--native-compile((lambda (arg7181 arg7182 &optional) (let ((f #'
  comp-trampoline-compile(internal-default-process-sentinel)
  comp-subr-trampoline-install(internal-default-process-sentinel)
  fset(internal-default-process-sentinel #<subr internal-default-proce
  (unwind-protect (progn (fset #'internal-default-process-sentinel #'i
  (let* ((old (symbol-function #'internal-default-process-sentinel)) (
  (let ((default-directory tramp-test-temporary-file-directory) (ert-t
  (let ((lexical-binding t)) (let* ((fn-5672 #'tramp--test-enabled) (a
  (closure (tramp-inline-compress-start-size tramp-copy-size-limit ang
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name tramp-test30-make-process-direct-asyn
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/net/tramp-tests.el"
  command-line()
  normal-top-level()
Test tramp-test30-make-process-direct-async condition:
    (file-missing
     (lambda
       (arg7181 arg7182 &optional)
       (let
           ((f ...))
         (funcall f arg7181 arg7182)))
     "Setting current directory" "No such file or directory" "/ssh:laptop.lan:/tmp")
   FAILED  45/74  tramp-test30-make-process-direct-async (0.004993 sec)

Test tramp-test33-environment-variables-direct-async backtrace:
  signal(file-missing ((lambda (arg7218 arg7219 &optional) (let ((f #'
  comp--native-compile((lambda (arg7218 arg7219 &optional) (let ((f #'
  comp-trampoline-compile(internal-default-process-sentinel)
  comp-subr-trampoline-install(internal-default-process-sentinel)
  fset(internal-default-process-sentinel #<subr internal-default-proce
  (unwind-protect (progn (fset #'internal-default-process-sentinel #'i
  (let* ((old (symbol-function #'internal-default-process-sentinel)) (
  (let ((default-directory tramp-test-temporary-file-directory) (ert-t
  (let ((lexical-binding t)) (let* ((fn-5965 #'tramp--test-enabled) (a
  (closure (tramp-inline-compress-start-size tramp-copy-size-limit ang
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name tramp-test33-environment-variables-di
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/net/tramp-tests.el"
  command-line()
  normal-top-level()
Test tramp-test33-environment-variables-direct-async condition:
    (file-missing
     (lambda
       (arg7218 arg7219 &optional)
       (let
           ((f ...))
         (funcall f arg7218 arg7219)))
     "Setting current directory" "No such file or directory" "/ssh:laptop.lan:/tmp")
   FAILED  50/74  tramp-test33-environment-variables-direct-async
  (0.023679 sec)

In GNU Emacs 28.0.50 (build 7, x86_64-pc-linux-gnu, GTK+ Version 3.24.25, cairo version 1.16.0)
 of 2021-09-27 built on workstation.lan
Repository revision: da4e58458f6659d075143083a9f04be3a42853da
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101001
System Description: Ubuntu 21.04

Configured using:
 'configure --with-native-compilation --with-mailutils --with-gnutls
 --with-modules --with-json --without-gpm --with-file-notification=yes
 --with-xwidgets --without-selinux --with-libsystemd --with-jpeg
 --with-tiff --with-gif --with-png --with-rsvg --with-imagemagick
 CC=gcc-10'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LC_MONETARY: fr_BE.UTF-8
  value of $LC_NUMERIC: fr_BE.UTF-8
  value of $LC_TIME: fr_BE.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
  bloom-global-minor-mode: t
  bloom-minor-mode: t
  bloom-magit-pullrequests-mode: t
  bloom-magit-build-mode: t
  magit-wip-after-apply-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  dtrt-indent-global-mode: t
  test-runner-mode: t
  pdf-occur-global-minor-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  smartparens-global-mode: t
  show-paren-mode: t
  marginalia-mode: t
  selectrum-mode: t
  corfu-global-mode: t
  corfu-mode: t
  global-ligature-mode: t
  ligature-mode: t
  shell-dirtrack-mode: t
  envrc-global-mode: t
  envrc-mode: t
  bepo-global-mode: t
  which-key-mode: t
  savehist-mode: t
  global-so-long-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/dam/.emacs.d/straight/build/transient/transient hides /usr/local/share/emacs/28.0.50/lisp/transient
/home/dam/.emacs.d/straight/build/jsonrpc/jsonrpc hides /usr/local/share/emacs/28.0.50/lisp/jsonrpc
/home/dam/.emacs.d/straight/build/xref/xref hides /usr/local/share/emacs/28.0.50/lisp/progmodes/xref
/home/dam/.emacs.d/straight/build/flymake/flymake hides /usr/local/share/emacs/28.0.50/lisp/progmodes/flymake
/home/dam/.emacs.d/straight/build/project/project hides /usr/local/share/emacs/28.0.50/lisp/progmodes/project
/home/dam/.emacs.d/straight/build/let-alist/let-alist hides /usr/local/share/emacs/28.0.50/lisp/emacs-lisp/let-alist
/home/dam/.emacs.d/straight/build/eldoc/eldoc hides /usr/local/share/emacs/28.0.50/lisp/emacs-lisp/eldoc

Features:
(shadow sort mail-extr emacsbug tramp-cmds re-builder git-timemachine
git-timemachine-autoloads cmake-font-lock embark-consult macros calccomp
calc-bin calc-alg calc-misc calc-menu calc-ext calc-aent calc
calc-loaddefs calc-macs goto-addr embark ffap eglot-clangd epa-file
git-rebase dockerfile-mode sh-script executable terraform-mode hcl-mode
pulse all-the-icons-dired conf-mode yaml-mode url-file url-dired
url-cache vterm term disp-table ehelp vterm-module term/xterm xterm cov
elquery rect face-remap misearch multi-isearch helpful trace edebug
info-look help-fns elisp-refs mule-util autoload radix-tree vc-mtn vc-hg
vc-git vc-bzr vc-src vc-sccs vc-cvs vc-rcs vc vc-dispatcher checkdoc
lisp-mnt form-feed bloomlife bloom-mode eglot array jsonrpc ert ewoc
debug backtrace bloom-sensor gdb-mi bloom-tools bloom-magit
bloom-magit-bitbucket atlassian-bitbucket bloom-magit-build
bloom-project bloom-test-runner bloom-build bloom-cmake bloom-conan
bloom-bbw bloom-target bloom-common bloom-pkg bloomlife-autoloads sonar
sonar-autoloads circleci circleci-autoloads atlassian atlassian-jira
atlassian-common request atlassian-autoloads request-autoloads
magit-async-section magit-async-section-autoloads
terraform-mode-autoloads hcl-mode-autoloads cargo-autoloads racer
smartparens-rust rust-utils rust-mode rust-rustfmt rust-playpen
rust-compile rust-cargo racer-autoloads pos-tip-autoloads
rust-mode-autoloads rubocop rubocop-autoloads robe etags fileloop
generator inf-ruby robe-autoloads inf-ruby-autoloads rbenv
rbenv-autoloads ruby-mode smie smartparens-python python tramp-sh
smartparens-scala scala-mode scala-mode-prettify-symbols
scala-mode-imenu scala-mode-map scala-mode-fontlock scala-mode-indent
scala-mode-paragraph scala-mode-syntax scala-mode-lib
scala-mode-autoloads java-imports pcache eieio-base
java-imports-autoloads pcache-autoloads form-feed-autoloads elisp-format
flymake-proc flymake flyspell elisp-format-autoloads test-runner-ert
elfmt elfmt-autoloads cask-mode cask-mode-autoloads docker docker-volume
docker-network docker-machine docker-image docker-container docker-faces
docker-compose docker-utils json-mode json-reformat json-snatcher
smartparens-javascript js docker-core docker-autoloads
json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads
docker-tramp-autoloads docker-tramp tramp-cache
dockerfile-mode-autoloads djinni-mode djinni-mode-autoloads
cov-autoloads elquery-autoloads gud-lldb cmake-api cmake-api-autoloads
test-runner-catch2 test-runner-catch2-autoloads eglot-clangd-autoloads
eldoc-cmake eldoc-cmake-autoloads cmake-font-lock-autoloads cmake-mode
smartparens-rst rst cmake-mode-autoloads android android-autoloads pbuf
pbuf-autoloads gud xref forge-list forge-commands forge-semi
forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab
forge-github forge-notify forge-revnote forge-pullreq forge-issue
forge-topic yaml bug-reference forge-post forge-repo forge forge-core
forge-db forge-autoloads yaml-autoloads closql emacsql-sqlite emacsql
emacsql-compiler closql-autoloads emacsql-sqlite-autoloads
emacsql-autoloads ghub-graphql treepy gsexp ghub url-http url-gw nsm
url-auth ghub-autoloads treepy-autoloads magit-extras magit-bookmark
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode diff-mode git-commit log-edit message rmc rfc822 mml mml-sec
epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader pcvs-util add-log
magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor server magit-mode transient comp comp-cstr warnings
magit-git magit-section magit-utils magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
transient-autoloads eglot-autoloads project-autoloads xref-autoloads
flymake-autoloads eldoc-autoloads jsonrpc-autoloads dtrt-indent
dtrt-indent-autoloads diff ispell reformatter reformatter-autoloads
test-runner project test-runner-autoloads vterm-autoloads ag vc-svn
find-dired ag-autoloads dired-collapse dired-collapse-autoloads
dired-rainbow dired-rainbow-autoloads dired-narrow delsel
dired-narrow-autoloads dired-ranger-autoloads dired-subtree-autoloads
dired-filter f s dired-hacks-utils dired-x dired-filter-autoloads
dired-hacks-utils-autoloads dired-aux yaml-mode-autoloads plantuml-mode
plantuml-mode-autoloads pdf-occur ibuf-ext ibuffer ibuffer-loaddefs
tablist tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local find-func cedet
pdf-isearch let-alist pdf-misc imenu pdf-tools package pdf-view
jka-compr pdf-cache pdf-info tq pdf-util pdf-macs pdf-tools-autoloads
let-alist-autoloads tablist-autoloads xwwp eww xdg url-queue shr kinsoku
svg dom mm-url gnus nnheader gnus-util rmail rmail-loaddefs
xwwp-autoloads xwidget url-handlers image-mode dired dired-loaddefs exif
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util mailcap osx-browse-autoloads
browse-url-dwim-autoloads string-utils-autoloads list-utils-autoloads cl
smartparens-markdown markdown-mode url-parse url-vars noutline outline
markdown-mode-autoloads nov-autoloads esxml-autoloads kv-autoloads
yasnippet yasnippet-autoloads wgrep grep compile wgrep-autoloads
cap-words superword subword string-inflection
string-inflection-autoloads smartparens-config smartparens-text
smartparens-c smartparens-ruby smartparens dash smartparens-autoloads
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs paren mmm-mode mmm-univ mmm-class mmm-region mmm-auto
mmm-vars mmm-utils mmm-compat mmm-mode-autoloads iedit iedit-lib
iedit-autoloads autorevert filenotify marginalia marginalia-autoloads
embark-consult-autoloads embark-autoloads consult-selectrum selectrum
minibuf-eldef crm selectrum-autoloads orderless orderless-autoloads
corfu corfu-autoloads ns-auto-titlebar-autoloads
all-the-icons-dired-autoloads all-the-icons all-the-icons-faces
data-material data-weathericons data-octicons data-fileicons
data-faicons data-alltheicons all-the-icons-autoloads rx ligature
ligature-autoloads solarized-dark-high-contrast-theme solarized-palettes
solarized-theme solarized solarized-faces color
solarized-theme-autoloads use-theme use-theme-autoloads smtpmail
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
pcomplete comint ring parse-time iso8601 time-date ls-lisp auth-source
eieio eieio-core eieio-loaddefs password-cache envrc inheritenv
ansi-color envrc-autoloads inheritenv-autoloads eshell esh-cmd esh-ext
esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util bepo
which-key advice which-key-autoloads time savehist edmacro
helpful-autoloads elisp-refs-autoloads f-autoloads s-autoloads
dash-autoloads exec-path-from-shell exec-path-from-shell-autoloads
so-long diminish diminish-autoloads consult-dash pcase consult recentf
tree-widget kmacro bookmark text-property-search consult-dash-autoloads
consult-autoloads dash-docs use-package-dash-docs gnutls puny thingatpt
format-spec xml json map dash-docs-autoloads async async-autoloads
no-littering no-littering-autoloads finder-inf
use-package-ensure-system-package system-packages
use-package-ensure-system-package-autoloads system-packages-autoloads
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core
use-package-autoloads bind-key-autoloads cus-edit pp cus-load wid-edit
straight-autoloads info cl-seq cl-extra help-mode seq byte-opt straight
subr-x cl-macs gv cl-loaddefs cl-lib bytecomp byte-compile cconv
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads
xwidget-internal dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit
x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 2028051 315008)
 (symbols 48 56533 3)
 (strings 32 257594 26831)
 (string-bytes 1 11512175)
 (vectors 16 118667)
 (vector-slots 8 2932756 369964)
 (floats 8 973 1618)
 (intervals 56 212369 11783)
 (buffers 992 164))