From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring remote buffers Date: Mon, 23 Oct 2023 17:21:25 +0300 Message-ID: <83a5s9o1wa.fsf@gnu.org> References: <875y2xelsk.fsf@ledu-giraud.fr> <83o7gpo9bm.fsf@gnu.org> <87pm15h605.fsf@ledu-giraud.fr> <83jzrdo68n.fsf@gnu.org> <87lebth4zi.fsf@ledu-giraud.fr> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15918"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 66697@debbugs.gnu.org To: Manuel Giraud Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Oct 23 16:22:00 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1quvod-0003tX-2Q for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 23 Oct 2023 16:21:59 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1quvoH-0001Br-6V; Mon, 23 Oct 2023 10:21:37 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1quvoE-0001Be-3k for bug-gnu-emacs@gnu.org; Mon, 23 Oct 2023 10:21:34 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1quvoD-0000Nf-Ca for bug-gnu-emacs@gnu.org; Mon, 23 Oct 2023 10:21:33 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1quvog-0002jG-CR for bug-gnu-emacs@gnu.org; Mon, 23 Oct 2023 10:22:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 23 Oct 2023 14:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66697 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 66697-submit@debbugs.gnu.org id=B66697.169807092110481 (code B ref 66697); Mon, 23 Oct 2023 14:22:02 +0000 Original-Received: (at 66697) by debbugs.gnu.org; 23 Oct 2023 14:22:01 +0000 Original-Received: from localhost ([127.0.0.1]:51256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quvoe-0002iz-EJ for submit@debbugs.gnu.org; Mon, 23 Oct 2023 10:22:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quvoc-0002im-D0 for 66697@debbugs.gnu.org; Mon, 23 Oct 2023 10:21:59 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1quvo2-0000Jp-Qx; Mon, 23 Oct 2023 10:21:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:Subject:In-Reply-To:To:From: Date; bh=3YcHPL36B1Rk4X16XjyOOCoYfMAK7upW3o1UFtOyYkU=; b=Z/A/eYFZoBujdWgaw1Yp W7DQZ7GLrM6I8DyxXmYHCwkGwM9Jb8XaTk6PFqCtvchzZVSvKWVJwINPNiWQ6+SltlpGUEkbgRIFG me73aE20ZcH95manfg30A5mWxYaCGxdLnjUQRgHCqa0Q0TvTXa3LQx1/wzenJVQdZyQlDNYgGNp+o 28hj7iqyqmm5nWjZR6f1A1WrR99flwlKm2s/xzxspVYZafUWIfzE7APTpdsZd66+u6vZaXOk6mttR s+rY1b2VJUMxY5SDXpKjv2ZDHSXsQACvo+jC6szbodKxIwc+JAqduNsqZWRoBerrM7c0ZqxjHCtG0 P9Nhjz+57xgZLA==; In-Reply-To: <87lebth4zi.fsf@ledu-giraud.fr> (message from Manuel Giraud on Mon, 23 Oct 2023 14:56:33 +0200) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:273020 Archived-At: > From: Manuel Giraud > Cc: 66697@debbugs.gnu.org > Date: Mon, 23 Oct 2023 14:56:33 +0200 >=20 > Eli Zaretskii writes: >=20 > [...] >=20 > > So you are saying that, even though these buffers are in > > desktop-files-not-to-save value, Emacs still asks for a password for > > them when desktop.el saves the desktop? >=20 > Yes. >=20 > > If so, can you set debug-on-quit non-nil and when Emacs prompts for > > the password, type C-g and post the backtrace here? >=20 > I have already (kind of) done that when trying to find out this issue: > I've placed a 'debug' call into 'tramp-read-passwd'. Here is what I > get: >=20 > --8<---------------cut here---------------start------------->8--- > Debugger entered: nil > (let* ((default-directory tramp-compat-temporary-file-directory) (case-= fold-search t) (vec (tramp-get-connection-property proc "password-vector" (= process-get proc 'tramp-vector))) (key (tramp-make-tramp-file-name vec 'nol= oc)) (method (let* ((cl-x vec)) (progn (or (let* (...) (progn ...)) (signal= 'wrong-type-argument (list ... cl-x))) (nth 1 cl-x)))) (user (or (tramp-fi= le-name-user-domain vec) (tramp-get-connection-property key "login-as"))) (= host (tramp-file-name-host-port vec)) (pw-prompt (or prompt (save-current-b= uffer (set-buffer (process-buffer proc)) (tramp-check-for-regexp proc tramp= -password-prompt-regexp) (if (string-match-p "passphrase" (match-string 1))= (match-string 0) (format "%s for %s " (capitalize ...) key))))) (auth-sour= ce-creation-prompts (list (cons 'secret pw-prompt))) (auth-sources (buffer-= local-value 'auth-sources (process-buffer proc))) auth-info auth-passwd tra= mp-dont-suspend-timers) (debug) (unwind-protect (or (setq tramp-password-sa= ve-function nil) (condition-case nil (progn (and (tramp-get-connection-prop= erty vec "first-password-request") (progn (setq auth-info ...) (setq tramp-= password-save-function ...) (setq auth-passwd ...)))) (error nil)) (if tram= p-dont-suspend-timers (progn (progn (setq auth-passwd (password-read pw-pro= mpt key)) (setq tramp-password-save-function #'...)) auth-passwd) (let ((st= imers (with-timeout-suspend)) timer-list timer-idle-list) (unwind-protect (= progn (progn ... ...) auth-passwd) (with-timeout-unsuspend stimers))))) (if= (tramp-string-empty-or-nil-p auth-passwd) (progn (setq tramp-password-save= -function nil))) (tramp-set-connection-property vec "first-password-request= " nil))) > tramp-read-passwd(#) > tramp-action-password(# (tramp-file-name = "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) ni= l "~/" nil)) > tramp-process-one-action(# (tramp-file-na= me "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t))= nil "~/" nil) ((tramp-login-prompt-regexp tramp-action-login) (tramp-passw= ord-prompt-regexp tramp-action-password) (tramp-otp-password-prompt-regexp = tramp-action-otp-password) (tramp-wrong-passwd-regexp tramp-action-permissi= on-denied) (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-= pattern tramp-action-succeed) (tramp-yesno-prompt-regexp tramp-action-yesno= ) (tramp-yn-prompt-regexp tramp-action-yn) (tramp-terminal-prompt-regexp tr= amp-action-terminal) (tramp-antispoof-regexp tramp-action-confirm-message) = (tramp-security-key-confirm-regexp tramp-action-show-and-confirm-message) (= tramp-process-alive-regexp tramp-action-process-alive))) > tramp-process-actions(# (tramp-file-name = "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) ni= l "~/" nil) 1 ((tramp-login-prompt-regexp tramp-action-login) (tramp-passwo= rd-prompt-regexp tramp-action-password) (tramp-otp-password-prompt-regexp t= ramp-action-otp-password) (tramp-wrong-passwd-regexp tramp-action-permissio= n-denied) (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-p= attern tramp-action-succeed) (tramp-yesno-prompt-regexp tramp-action-yesno)= (tramp-yn-prompt-regexp tramp-action-yn) (tramp-terminal-prompt-regexp tra= mp-action-terminal) (tramp-antispoof-regexp tramp-action-confirm-message) (= tramp-security-key-confirm-regexp tramp-action-show-and-confirm-message) (t= ramp-process-alive-regexp tramp-action-process-alive)) 10) > tramp-maybe-open-connection((tramp-file-name "doas" #("root" 0 4 (tramp= -default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil)) > tramp-send-command((tramp-file-name "doas" #("root" 0 4 (tramp-default = t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("echo ~root 2>/dev/nu= ll; echo tramp_exit_status $?" 6 10 (tramp-default t))) > tramp-send-command-and-check((tramp-file-name "doas" #("root" 0 4 (tram= p-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("echo ~root= " 6 10 (tramp-default t))) > tramp-sh-handle-get-home-directory((tramp-file-name "doas" #("root" 0 4= (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root= " 0 4 (tramp-default t))) > apply(tramp-sh-handle-get-home-directory ((tramp-file-name "doas" #("ro= ot" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) = #("root" 0 4 (tramp-default t)))) > tramp-sh-file-name-handler(tramp-get-home-directory (tramp-file-name "d= oas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil = "~/" nil) #("root" 0 4 (tramp-default t))) > apply(tramp-sh-file-name-handler tramp-get-home-directory ((tramp-file-= name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t= )) nil "~/" nil) #("root" 0 4 (tramp-default t)))) > tramp-file-name-handler(tramp-get-home-directory (tramp-file-name "doas= " #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/= " nil) #("root" 0 4 (tramp-default t))) > tramp-get-home-directory((tramp-file-name "doas" #("root" 0 4 (tramp-de= fault t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tra= mp-default t))) > tramp-sh-handle-expand-file-name(#("/doas:root@bb:~/" 6 10 (tramp-defau= lt t) 11 13 (tramp-default t)) nil) > apply(tramp-sh-handle-expand-file-name (#("/doas:root@bb:~/" 6 10 (tram= p-default t) 11 13 (tramp-default t)) nil)) > tramp-sh-file-name-handler(expand-file-name #("/doas:root@bb:~/" 6 10 (= tramp-default t) 11 13 (tramp-default t)) nil) > apply(tramp-sh-file-name-handler expand-file-name (#("/doas:root@bb:~/"= 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)) > tramp-file-name-handler(expand-file-name #("/doas:root@bb:~/" 6 10 (tra= mp-default t) 11 13 (tramp-default t)) nil) > expand-file-name(#("/doas:root@bb:~/" 6 10 (tramp-default t) 11 13 (tra= mp-default t))) > desktop-file-name(#("/doas:root@bb:~/" 6 10 (tramp-default t) 11 13 (tr= amp-default t)) "/home/manuel/.emacs.d/") > dired-desktop-buffer-misc-data("/home/manuel/.emacs.d/") > desktop-buffer-info(#>) > mapcar(desktop-buffer-info (# # # # #> # # # #> # #> # # # #> #> # #> # # # # #<= buffer terminal.c> # # # # # # # # # # # # # #> # # # # # #<= buffer *vc-dir*> # #> # # # # ...)) > desktop-save("/home/manuel/.emacs.d/" nil t) > desktop-auto-save() > apply(desktop-auto-save nil) > timer-event-handler([t 0 30 0 nil desktop-auto-save nil idle 0 nil]) > --8<---------------cut here---------------end--------------->8--- Doesn't this tell that the problem is in dired.el, not in desktop.el? The problematic call comes from dired-desktop-buffer-misc-data, not from desktop.el. So it's dired-desktop-buffer-misc-data that needs to be fixed. Alternatively, we could refrain calling desktop-buffer-info on buffers for which desktop-save-buffer-p returns nil.