GNU bug report logs - #55832
28.1; Emacs crashes when using tramp from helm in emacs-29

Previous Next

Package: emacs;

Reported by: Thierry Volpiatto <thievol <at> posteo.net>

Date: Tue, 7 Jun 2022 15:24:02 UTC

Severity: normal

Found in version 28.1

Fixed in version 29.1

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: Eli Zaretskii <eliz <at> gnu.org>, larsi <at> gnus.org, 55832 <at> debbugs.gnu.org
Subject: bug#55832: 28.1; Emacs crashes when using tramp from helm in emacs-29
Date: Sun, 12 Jun 2022 18:16:23 +0000
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> gmx.de> writes:

> Thierry Volpiatto <thievol <at> posteo.net> writes:
>
> Hi Thierry,
>
>>> (setq tramp-verbose 10 tramp-debug-to-file t)
>>
>> Ah nice, with those setting instead of crashing emacs hang and I can
>> recuperate with C-g, here the tramp log:
>>
>> https://gist.github.com/thierryvolpiatto/96b5d3bacc92deac1fad275eede69354
>
> Thanks. The trace looks surprising, again and again
>
> 21:38:47.713417 tramp-get-remote-id (5) # Finding POSIX `id' command
>
> I'll try to analyze tomorrow what could have triggered this behavior. If
> not successful, I'll ask you for instrumentation of Tramp.

I have a function wrote long time ago to delete tramp connections which
is not working (or most of the time not working) because it uses
tramp-list-connections which is itself broken (unexpectedly it worked
only once today don't know why).

The test (tramp-connection-property-p key "process-buffer") is wrong IMO
according to the data fetched from tramp-cache-data, here a function based
on tramp-list-connections to illustrate the data fetched here from a
sudo connection:

    (defun tv/list-tramp-connections ()
      (cl-loop with tramp-verbose = 0
               for key being the hash-keys in tramp-cache-data
               using (hash-value val)
               when (and (tramp-file-name-p key)
    		     (null (tramp-file-name-localname key))
                         ;; (tramp-connection-property-p key "process-buffer"))
                         )
               collect (list key (cl-loop for k being the hash-keys in val
                                          using (hash-value v)
                                          collect (list k v))))

The function for a sudo connection returns:

(((tramp-file-name "sudo"
                   #("root" 0 4
                     (tramp-default t))
                   nil
                   #("IPad-S340" 0 9
                     (tramp-default t))
                   nil nil nil)
  (("process-buffer" nil)
   ("null-device" "/dev/null")
   ("uid-string" "UNKNOWN")
   ("gid-string" "UNKNOWN")
   ("uid-integer" -1)
   ("gid-integer" -1)
   ("first-password-request" nil)
   ("uname" "Linux 5.15.0-33-generic")
   ("locale" "LC_ALL=en_US.utf8")
   ("test" "test")
   ("remote-path"
    ("/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin" "/usr/local/sbin"))
   ("pipe-buf" 4096)
   ("remote-shell" "/bin/sh")
   ("~root" "/root")
   ("file-exists" "test -e")
   ("stat" "env QUOTING_STYLE=locale \\stat")
   ("case-insensitive" nil)
   ("readlink" "\\readlink"))))

As you can see "process-buffer" is listed in the cdr but not the car of
result so tramp-list-connections always returns nil because
(tramp-connection-property-p key "process-buffer") always returns nil.

Seems the cdr is the same as what found in ~/.emacs.d/tramp.

Maybe it can help you to understand what's going wrong.

Thanks.

-- 
Thierry
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 2 years and 332 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.