Subject: bug#26911: 25.2; eshell "cd .." doesn't work correctly with TRAMP

From: Eli Zaretskii <[email-masked]>
Date: Sat, 05 Sep 2020 14:18:30 +0300

> From: Michael Albinus <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked],
>   [email-masked],  [email-masked]
> Date: Sat, 05 Sep 2020 10:34:39 +0200
> 
> > I'm talking to sysadmins to see how to overcome this problem, but in
> > case I cannot, how do I run the Tramp suite one test at a time? can
> > you show me an example command for that?
> 
> # make tramp-tests SELECTOR='tramp-test05-expand-file-name'

Thanks.  FTR, this translates into the following invocation from the
shell prompt:

  emacs -Q -batch -l test\lisp\net\tramp-tests.elc --eval "(ert-run-tests-batch-and-exit 'TEST-NAME)"

First, I think I know the reason for the problem I had yesterday to
run all the tests.  There's some problem in the Tramp tests that
causes almost each test that was run to leave 3 processes on the
remote system: 2 sshd's and 1 /bin/sh.  AFAICT, these are created by
the first connection made by each test.  Most tests create additional
connections, but their processes are all killed or exit when the test
completes, whereas this one connection is left behind.  And some test
leave behind more than one such triplet.  So after running enough
tests, the system is full of these triplets of zombie processes, and
on a resource-challenged system that could cause additional
connections to fail due to lack of resources to start another process.

Is it possible to make sure these processes are killed as part of each
test's cleanup?  For now, I ran the tests one by one, each time
killing the zombie processes manually on the remote system.  It took
some time...

Anyway, doing this cleanup manually allowed me to run all the tests
(skipping those which I knew to be "unstable"), and all but one of
them succeeded.  The one which failed is shown below together with the
failure description:

  Test tramp-test30-make-process condition:
      (ert-test-failed
       ((should
	 (string-match
	  (if ... "unknown signal
  \\'" "killed.*
  \\'")
	  (buffer-string)))
	:form
	(string-match "unknown signal
  \\'" "killed
  ")
	:value nil))
     FAILED  1/1  tramp-test30-make-process (39.250000 sec)

Just to be sure, I've ran this test twice, and each time it failed
with the same error.

I think this more or less concludes the testing of the fixes in these
two bugs, so I'm going to close them now.

Thanks.