"Christopher M. Miles" writes: > [[PGP Signed Part:Undecided]] > > Ihor Radchenko writes: > >> "Christopher M. Miles" writes: >> >>>>>> May you elaborate what performance issues you are experiencing? >>>>> >>>>> My performance issue is a large Org file about 2M size on saving. I will >>>>> reproduce and generate profiler report for more detailed data and update >>>>> in this thread. >>>> >>>> Please save the report using M-x profiler-report-write-profile - it will >>>> produce Elisp data that can be re-opened and examined directly. >>> >>> I attached CPU and Memory report in attachments. >> >> This CPU report is not just for saving. You did M-x (vectico), `undo', >> `org-clock-in', and `save-buffer'. `save-buffer' took no time. And >> everything took less than one second. >> >> Are you sure that it is the correct profile? > > The current CPU report indeed not contains heavy org-crypt. Because my > epa get problem. When I edit a GnuPG encrypted "encrypt.org.gpg", it > suspend on epa waiting for process to finished. It never ends unless I > press [C-g] to quit it. So I can't reproduce the Org file contains > org-crypt headlines saving profiler report. > > Sorry that I have not mentioned this actual background reason. I indeed > did a profiler report before (about 3 months ago), and the profiler > report use lot of time on org-crypt invocation. Hmm, maybe problem gone > as time scrolls. > > I will mark this as task in my Org Agenda, and take time to profiler > report again, make sure org-crypt is heavy, then update here. > > Regards, I tried to reproduce and study the problem of Emacs saving modified encrypted file. Because the investigate log is very long, so I write conclusion here at first: I downgrade gnupg, then the problem solved. But the downgrade version is very old (gnupg@2.4.1 -> gnupg@2.2.41). I suspend problem is somewhere else, like Emacs interaction with GnuPG process. Here the the whole process and log: Reproduce: 1. =[M-x toggle-debug-on-quit]= 2. edit "authinfo.gpg" encrypted file in Emacs, then press =[C-x C-s]= to save file. 3. but Emacs have not actually save file, the mode-line file status is still "modified", and Emacs suspending. 4. I press =[C-g]= to quit got following stacktrace: #+begin_example Debugger entered--Lisp error: (quit) accept-process-output(# 1) epg-wait-for-status(#s(epg-context :protocol OpenPGP :program "/opt/homebrew/bin/gpg" :home-directory "/Users/stardiviner/.gnupg" :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/Users/stardiviner/.config/emacs/secrets/authinfo....") :progress-callback (epa-progress-callback-function . "Encrypting /Users/stardiviner/.config/emacs/secret...") :edit-callback nil :signers nil :sender nil :sig-notations nil :process # :output-file "/var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T/e..." :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) ("BEGIN_ENCRYPTION")) epg-start-encrypt(#s(epg-context :protocol OpenPGP :program "/opt/homebrew/bin/gpg" :home-directory "/Users/stardiviner/.gnupg" :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/Users/stardiviner/.config/emacs/secrets/authinfo....") :progress-callback (epa-progress-callback-function . "Encrypting /Users/stardiviner/.config/emacs/secret...") :edit-callback nil :signers nil :sender nil :sig-notations nil :process # :output-file "/var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T/e..." :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) #s(epg-data :file nil :string "# -*- epa-file-encrypt-to: (\"stardiviner\") -*-\n\n# ...") (#s(epg-key :owner-trust ultimate :sub-key-list (#s(epg-sub-key :validity ultimate :capability (sign certify) :secret-p nil :algorithm 1 :length 2048 :id "1B5DF1C95AE89AC3" :creation-time 1422686308 :expiration-time nil :fingerprint "F09F650D7D674819892591401B5DF1C95AE89AC3") #s(epg-sub-key :validity ultimate :capability (encrypt) :secret-p nil :algorithm 1 :length 2048 :id "0251FA6886EB6B77" :creation-time 1422686308 :expiration-time nil :fingerprint "32A8581A6E137ABD26DA2F570251FA6886EB6B77")) :user-id-list (#s(epg-user-id :validity ultimate :string "stardiviner (numbchild@gmail.com) :output-file "/var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T/e..." :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) "# -*- epa-file-encrypt-to: (\"stardiviner\") -*-\n\n# ..." (#s(epg-key :owner-trust ultimate :sub-key-list (#s(epg-sub-key :validity ultimate :capability (sign certify) :secret-p nil :algorithm 1 :length 2048 :id "1B5DF1C95AE89AC3" :creation-time 1422686308 :expiration-time nil :fingerprint "F09F650D7D674819892591401B5DF1C95AE89AC3") #s(epg-sub-key :validity ultimate :capability (encrypt) :secret-p nil :algorithm 1 :length 2048 :id "0251FA6886EB6B77" :creation-time 1422686308 :expiration-time nil :fingerprint "32A8581A6E137ABD26DA2F570251FA6886EB6B77")) :user-id-list (#s(epg-user-id :validity ultimate :string "stardiviner (numbchild@gmail.com) )(#) map-y-or-n-p(#f(compiled-function (buffer) #) #f(compiled-function (buffer) #) (#) ("buffer" "buffers" "save") ((18 #f(compiled-function (buf) #) "view this buffer") (6 #f(compiled-function (buf) #) "view this buffer and quit") (100 #f(compiled-function (buf) #) "view changes in this buffer"))) save-some-buffers(:no-prompt #f(compiled-function () #)) apply(save-some-buffers (:no-prompt #f(compiled-function () #))) timer-event-handler([nil 0 5 0 :repeat save-some-buffers (:no-prompt #f(compiled-function () #)) idle 0 nil]) #+end_example ---------------------------------------------------------------------------------------------------- When I save modified "=~/.config/emacs/secrets/authinfo.gpg=", got prompt: #+begin_example Untrusted key AEDA8A17BB08B786 Christopher Miles (stardiviner, numbchild) . Use anyway? (y or n) #+end_example If I input "n" for prompt: #+begin_example Debugger entered--Lisp error: (file-error "Opening output file" "Encrypt failed" "Unusable public key: B8C4B8E547C32433 (key not tru...") apply(debug error (file-error "Opening output file" "Encrypt failed" "Unusable public key: B8C4B8E547C32433 (key not tru...")) edebug(error (file-error "Opening output file" "Encrypt failed" "Unusable public key: B8C4B8E547C32433 (key not tru...")) signal(file-error ("Opening output file" "Encrypt failed" "Unusable public key: B8C4B8E547C32433 (key not tru...")) edebug-signal(file-error ("Opening output file" "Encrypt failed" "Unusable public key: B8C4B8E547C32433 (key not tru...")) signal(file-error ("Opening output file" "Encrypt failed" "Unusable public key: B8C4B8E547C32433 (key not tru...")) (edebug-after (edebug-before 157) 163 (signal 'file-error (edebug-after (edebug-before 158) 162 (cons "Opening output file" (edebug-after (edebug-before 159) 161 (cdr (edebug-after 0 160 error))))))) (condition-case error (edebug-after (edebug-before 67) 142 (setq string (edebug-after (edebug-before 68) 141 (epg-encrypt-string (edebug-after 0 69 context) (edebug-after (edebug-before 70) 109 (if (edebug-after ... 73 ...) (edebug-after ... 77 ...) (edebug-after ... 86 ...) (edebug-after ... 90 ...) (edebug-after ... 108 ...))) (edebug-after (edebug-before 110) 140 (if (edebug-after ... 126 ...) (edebug-after ... 130 ...) (edebug-after ... 139 ...))))))) (error (edebug-after (edebug-before 143) 145 (epa-display-error (edebug-after 0 144 context))) (edebug-after (edebug-before 146) 156 (if (edebug-after (edebug-before 147) 152 (setq entry (edebug-after (edebug-before 148) 151 (assoc ... ...)))) (edebug-after (edebug-before 153) 155 (setcdr (edebug-after 0 154 entry) nil)))) (edebug-after (edebug-before 157) 163 (signal 'file-error (edebug-after (edebug-before 158) 162 (cons "Opening output file" (edebug-after (edebug-before 159) 161 (cdr ...)))))))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq string (edebug-after (edebug-before 68) 141 (epg-encrypt-string (edebug-after 0 69 context) (edebug-after (edebug-before 70) 109 (if ... ... ... ... ...)) (edebug-after (edebug-before 110) 140 (if ... ... ...)))))) (error (edebug-after (edebug-before 143) 145 (epa-display-error (edebug-after 0 144 context))) (edebug-after (edebug-before 146) 156 (if (edebug-after (edebug-before 147) 152 (setq entry (edebug-after ... 151 ...))) (edebug-after (edebug-before 153) 155 (setcdr (edebug-after 0 154 entry) nil)))) (edebug-after (edebug-before 157) 163 (signal 'file-error (edebug-after (edebug-before 158) 162 (cons "Opening output file" (edebug-after ... 161 ...)))))))) (let* ((coding-system (edebug-after (edebug-before 11) 27 (or (edebug-after 0 12 coding-system-for-write) (edebug-after (edebug-before 13) 26 (if (edebug-after ... 15 ...) (edebug-after ... 24 ...) (edebug-after 0 25 buffer-file-coding-system)))))) (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'binary) string entry (recipients (edebug-after (edebug-before 30) 41 (cond ((edebug-after (edebug-before 31) 33 (listp ...)) (edebug-after 0 34 epa-file-encrypt-to)) ((edebug-after (edebug-before 35) 37 (stringp ...)) (edebug-after (edebug-before 38) 40 (list ...)))))) buffer) (edebug-after (edebug-before 42) 49 (epg-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-before 44) 48 (cons (edebug-after (edebug-before 45) 46 #'epa-file-passphrase-callback-function) (edebug-after 0 47 file))))) (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons (edebug-after (edebug-before 53) 54 #'epa-progress-callback-function) (edebug-after (edebug-before 55) 57 (format "Encrypting %s" (edebug-after 0 56 file))))))) (edebug-after (edebug-before 60) 65 (let ((cl-x (edebug-after 0 62 context))) (or (let ((cl-x cl-x)) (progn (and (memq ... cl-struct-epg-context-tags) t))) (signal 'wrong-type-argument (list 'epg-context cl-x))) (let* ((v cl-x)) (edebug-after (edebug-before 61) 63 (aset v 4 (edebug-after 0 64 epa-armor)))))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq string (edebug-after (edebug-before 68) 141 (epg-encrypt-string (edebug-after 0 69 context) (edebug-after ... 109 ...) (edebug-after ... 140 ...))))) (error (edebug-after (edebug-before 143) 145 (epa-display-error (edebug-after 0 144 context))) (edebug-after (edebug-before 146) 156 (if (edebug-after (edebug-before 147) 152 (setq entry ...)) (edebug-after (edebug-before 153) 155 (setcdr ... nil)))) (edebug-after (edebug-before 157) 163 (signal 'file-error (edebug-after (edebug-before 158) 162 (cons "Opening output file" ...))))))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (edebug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-before 168) 175 (list (edebug-after 0 169 string) nil (edebug-after 0 170 file) (edebug-after 0 171 append) (edebug-after 0 172 visit) (edebug-after 0 173 lockname) (edebug-after 0 174 mustbenew))))) (edebug-after (edebug-before 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp 'last-coding-system-used)) (edebug-after (edebug-before 180) 182 (setq last-coding-system-used (edebug-after 0 181 coding-system))))) (edebug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq (edebug-after 0 186 visit) t)) (edebug-after (edebug-before 188) 194 (progn (edebug-after (edebug-before 189) 191 (setq buffer-file-name (edebug-after 0 190 file))) (edebug-after (edebug-before 192) 193 (set-visited-file-modtime)))) (edebug-after (edebug-before 195) 206 (if (edebug-after (edebug-before 196) 198 (stringp (edebug-after 0 197 visit))) (edebug-after (edebug-before 199) 205 (progn (edebug-after ... 201 ...) (edebug-after ... 204 ...))))))) (edebug-after (edebug-before 208) 223 (if (edebug-after (edebug-before 209) 219 (or (edebug-after (edebug-before 210) 212 (eq (edebug-after 0 211 visit) t)) (edebug-after (edebug-before 213) 215 (eq (edebug-after 0 214 visit) nil)) (edebug-after (edebug-before 216) 218 (stringp (edebug-after 0 217 visit))))) (edebug-after (edebug-before 220) 222 (message "Wrote %s" (edebug-after 0 221 buffer-file-name)))))) (edebug-after (edebug-before 10) 224 (let* ((coding-system (edebug-after (edebug-before 11) 27 (or (edebug-after 0 12 coding-system-for-write) (edebug-after (edebug-before 13) 26 (if ... ... ...))))) (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'binary) string entry (recipients (edebug-after (edebug-before 30) 41 (cond ((edebug-after ... 33 ...) (edebug-after 0 34 epa-file-encrypt-to)) ((edebug-after ... 37 ...) (edebug-after ... 40 ...))))) buffer) (edebug-after (edebug-before 42) 49 (epg-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-before 44) 48 (cons (edebug-after (edebug-before 45) 46 #'epa-file-passphrase-callback-function) (edebug-after 0 47 file))))) (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons (edebug-after (edebug-before 53) 54 #'epa-progress-callback-function) (edebug-after (edebug-before 55) 57 (format "Encrypting %s" ...)))))) (edebug-after (edebug-before 60) 65 (let ((cl-x (edebug-after 0 62 context))) (or (let ((cl-x cl-x)) (progn (and ... t))) (signal 'wrong-type-argument (list 'epg-context cl-x))) (let* ((v cl-x)) (edebug-after (edebug-before 61) 63 (aset v 4 (edebug-after 0 64 epa-armor)))))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq string (edebug-after (edebug-before 68) 141 (epg-encrypt-string ... ... ...)))) (error (edebug-after (edebug-before 143) 145 (epa-display-error (edebug-after 0 144 context))) (edebug-after (edebug-before 146) 156 (if (edebug-after ... 152 ...) (edebug-after ... 155 ...))) (edebug-after (edebug-before 157) 163 (signal 'file-error (edebug-after ... 162 ...)))))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (edebug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-before 168) 175 (list (edebug-after 0 169 string) nil (edebug-after 0 170 file) (edebug-after 0 171 append) (edebug-after 0 172 visit) (edebug-after 0 173 lockname) (edebug-after 0 174 mustbenew))))) (edebug-after (edebug-before 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp 'last-coding-system-used)) (edebug-after (edebug-before 180) 182 (setq last-coding-system-used (edebug-after 0 181 coding-system))))) (edebug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq (edebug-after 0 186 visit) t)) (edebug-after (edebug-before 188) 194 (progn (edebug-after (edebug-before 189) 191 (setq buffer-file-name ...)) (edebug-after (edebug-before 192) 193 (set-visited-file-modtime)))) (edebug-after (edebug-before 195) 206 (if (edebug-after (edebug-before 196) 198 (stringp ...)) (edebug-after (edebug-before 199) 205 (progn ... ...)))))) (edebug-after (edebug-before 208) 223 (if (edebug-after (edebug-before 209) 219 (or (edebug-after (edebug-before 210) 212 (eq ... t)) (edebug-after (edebug-before 213) 215 (eq ... nil)) (edebug-after (edebug-before 216) 218 (stringp ...)))) (edebug-after (edebug-before 220) 222 (message "Wrote %s" (edebug-after 0 221 buffer-file-name))))))) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authinfo.gpg") (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/secrets/authinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-context (edebug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug-after (edebug-before 2) 3 (error "Can't append to the file")))) (edebug-after (edebug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expand-file-name (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 224 (let* ((coding-system (edebug-after (edebug-before 11) 27 (or (edebug-after 0 12 coding-system-for-write) (edebug-after ... 26 ...)))) (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'binary) string entry (recipients (edebug-after (edebug-before 30) 41 (cond (... ...) (... ...)))) buffer) (edebug-after (edebug-before 42) 49 (epg-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-before 44) 48 (cons (edebug-after ... 46 ...) (edebug-after 0 47 file))))) (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons (edebug-after ... 54 ...) (edebug-after ... 57 ...))))) (edebug-after (edebug-before 60) 65 (let ((cl-x (edebug-after 0 62 context))) (or (let (...) (progn ...)) (signal 'wrong-type-argument (list ... cl-x))) (let* ((v cl-x)) (edebug-after (edebug-before 61) 63 (aset v 4 ...))))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq string (edebug-after ... 141 ...))) (error (edebug-after (edebug-before 143) 145 (epa-display-error ...)) (edebug-after (edebug-before 146) 156 (if ... ...)) (edebug-after (edebug-before 157) 163 (signal ... ...))))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (edebug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-before 168) 175 (list (edebug-after 0 169 string) nil (edebug-after 0 170 file) (edebug-after 0 171 append) (edebug-after 0 172 visit) (edebug-after 0 173 lockname) (edebug-after 0 174 mustbenew))))) (edebug-after (edebug-before 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp 'last-coding-system-used)) (edebug-after (edebug-before 180) 182 (setq last-coding-system-used (edebug-after 0 181 coding-system))))) (edebug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq (edebug-after 0 186 visit) t)) (edebug-after (edebug-before 188) 194 (progn (edebug-after ... 191 ...) (edebug-after ... 193 ...))) (edebug-after (edebug-before 195) 206 (if (edebug-after ... 198 ...) (edebug-after ... 205 ...))))) (edebug-after (edebug-before 208) 223 (if (edebug-after (edebug-before 209) 219 (or (edebug-after ... 212 ...) (edebug-after ... 215 ...) (edebug-after ... 218 ...))) (edebug-after (edebug-before 220) 222 (message "Wrote %s" (edebug-after 0 221 buffer-file-name))))))))() edebug-default-enter(epa-file-write-region (nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authinfo.gpg") (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/secrets/authinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-context (edebug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug-after (edebug-before 2) 3 (error "Can't append to the file")))) (edebug-after (edebug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expand-file-name (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 224 (let* ((coding-system (edebug-after (edebug-before 11) 27 (or ... ...))) (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'binary) string entry (recipients (edebug-after (edebug-before 30) 41 (cond ... ...))) buffer) (edebug-after (edebug-before 42) 49 (epg-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-before 44) 48 (cons ... ...)))) (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons ... ...)))) (edebug-after (edebug-before 60) 65 (let ((cl-x ...)) (or (let ... ...) (signal ... ...)) (let* (...) (edebug-after ... 63 ...)))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq string ...)) (error (edebug-after ... 145 ...) (edebug-after ... 156 ...) (edebug-after ... 163 ...)))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (edebug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-before 168) 175 (list ... nil ... ... ... ... ...)))) (edebug-after (edebug-before 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp ...)) (edebug-after (edebug-before 180) 182 (setq last-coding-system-used ...)))) (edebug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq ... t)) (edebug-after (edebug-before 188) 194 (progn ... ...)) (edebug-after (edebug-before 195) 206 (if ... ...)))) (edebug-after (edebug-before 208) 223 (if (edebug-after (edebug-before 209) 219 (or ... ... ...)) (edebug-after (edebug-before 220) 222 (message "Wrote %s" ...)))))))) edebug-default-enter(epa-file-write-region (nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authinfo.gpg") (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/secrets/authinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-context (edebug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug-after (edebug-before 2) 3 (error "Can't append to the file")))) (edebug-after (edebug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expand-file-name (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 224 (let* ((coding-system (edebug-after (edebug-before 11) 27 (or ... ...))) (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'binary) string entry (recipients (edebug-after (edebug-before 30) 41 (cond ... ...))) buffer) (edebug-after (edebug-before 42) 49 (epg-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-before 44) 48 (cons ... ...)))) (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons ... ...)))) (edebug-after (edebug-before 60) 65 (let ((cl-x ...)) (or (let ... ...) (signal ... ...)) (let* (...) (edebug-after ... 63 ...)))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq string ...)) (error (edebug-after ... 145 ...) (edebug-after ... 156 ...) (edebug-after ... 163 ...)))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (edebug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-before 168) 175 (list ... nil ... ... ... ... ...)))) (edebug-after (edebug-before 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp ...)) (edebug-after (edebug-before 180) 182 (setq last-coding-system-used ...)))) (edebug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq ... t)) (edebug-after (edebug-before 188) 194 (progn ... ...)) (edebug-after (edebug-before 195) 206 (if ... ...)))) (edebug-after (edebug-before 208) 223 (if (edebug-after (edebug-before 209) 219 (or ... ... ...)) (edebug-after (edebug-before 220) 222 (message "Wrote %s" ...)))))))) edebug-enter(epa-file-write-region (nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authinfo.gpg") (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/secrets/authinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-context (edebug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug-after (edebug-before 2) 3 (error "Can't append to the file")))) (edebug-after (edebug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expand-file-name (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 224 (let* ((coding-system (edebug-after (edebug-before 11) 27 (or ... ...))) (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'binary) string entry (recipients (edebug-after (edebug-before 30) 41 (cond ... ...))) buffer) (edebug-after (edebug-before 42) 49 (epg-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-before 44) 48 (cons ... ...)))) (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons ... ...)))) (edebug-after (edebug-before 60) 65 (let ((cl-x ...)) (or (let ... ...) (signal ... ...)) (let* (...) (edebug-after ... 63 ...)))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq string ...)) (error (edebug-after ... 145 ...) (edebug-after ... 156 ...) (edebug-after ... 163 ...)))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (edebug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-before 168) 175 (list ... nil ... ... ... ... ...)))) (edebug-after (edebug-before 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp ...)) (edebug-after (edebug-before 180) 182 (setq last-coding-system-used ...)))) (edebug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq ... t)) (edebug-after (edebug-before 188) 194 (progn ... ...)) (edebug-after (edebug-before 195) 206 (if ... ...)))) (edebug-after (edebug-before 208) 223 (if (edebug-after (edebug-before 209) 219 (or ... ... ...)) (edebug-after (edebug-before 220) 222 (message "Wrote %s" ...)))))))) epa-file-write-region(nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil) apply(epa-file-write-region (nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil)) (if (and op (not epa-inhibit)) (apply op args) (epa-file-run-real-handler operation args)) (let ((op (get operation 'epa-file))) (if (and op (not epa-inhibit)) (apply op args) (epa-file-run-real-handler operation args))) (progn (let ((op (get operation 'epa-file))) (if (and op (not epa-inhibit)) (apply op args) (epa-file-run-real-handler operation args)))) (unwind-protect (progn (let ((op (get operation 'epa-file))) (if (and op (not epa-inhibit)) (apply op args) (epa-file-run-real-handler operation args)))) (set-match-data saved-match-data t)) (let ((saved-match-data (match-data))) (unwind-protect (progn (let ((op (get operation 'epa-file))) (if (and op (not epa-inhibit)) (apply op args) (epa-file-run-real-handler operation args)))) (set-match-data saved-match-data t))) epa-file-handler(write-region nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil) write-region(nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg") basic-save-buffer-2() basic-save-buffer-1() basic-save-buffer(nil) save-buffer() #f(compiled-function (buffer) #)(#) map-y-or-n-p(#f(compiled-function (buffer) #) #f(compiled-function (buffer) #) (#) ("buffer" "buffers" "save") ((18 #f(compiled-function (buf) #) "view this buffer") (6 #f(compiled-function (buf) #) "view this buffer and quit") (100 #f(compiled-function (buf) #) "view changes in this buffer"))) save-some-buffers(:no-prompt #f(compiled-function () #)) apply(save-some-buffers (:no-prompt #f(compiled-function () #))) timer-event-handler([t 0 5 0 :repeat save-some-buffers (:no-prompt #f(compiled-function () #)) idle 0 nil]) recursive-edit() edebug--recursive-edit(after) edebug--display-1((#s(epg-key :owner-trust ultimate :sub-key-list (#s(epg-sub-key :validity ultimate :capability (sign certify) :secret-p nil :algorithm 1 :length 2048 :id "1B5DF1C95AE89AC3" :creation-time 1422686308 :expiration-time nil :fingerprint "F09F650D7D674819892591401B5DF1C95AE89AC3") #s(epg-sub-key :validity ultimate :capability (encrypt) :secret-p nil :algorithm 1 :length 2048 :id "0251FA6886EB6B77" :creation-time 1422686308 :expiration-time nil :fingerprint "32A8581A6E137ABD26DA2F570251FA6886EB6B77")) :user-id-list (#s(epg-user-id :validity ultimate :string "stardiviner (numbchild@gmail.com) This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: /Users/stardiviner/.gnupg Supported algorithms: Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 Compression: Uncompressed, ZIP, ZLIB, BZIP2 #+end_src #+begin_src emacs-lisp (emacs-version) #+end_src #+RESULTS[(2023-05-02 10:57:56) ad277f3210da682b9a8f2b15d7843ef0163e6cf2]: : GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin22.4.0, NS appkit-2299.50 Version 13.3.1 (Build 22E261)) : of 2023-04-27 ---------------------------------------------------------------------------------------------------- - [X] troubleshooting + [X] uninstall newly installed Emacs packages "chatgpt-shell" etc. + [X] check out GnuPG config files + [X] redo encrypt & sign =authinfo.gpg= file + [X] emacs minimal config for reproduce -> confirmed problem - [X] search + [X] https://superuser.com/questions/366035/how-can-i-disable-prompt-about-trust-when-encrypting-file-with-gpg-in-emacs + [X] https://superuser.com/questions/1204820/emacs-easypg-asks-what-key-to-use-although-epa-file-encrypt-to-already-specified - [X] troubleshooting - [X] src_emacs-lisp{(getenv "DISPLAY")} {{{results(=ssh-askpass=)}}} - [X] edebug + [X] save-buffer - [X] epa-file-handler + [X] epa-file-write-region - [X] epg-encrypt-string + [X] epg-start-encrypt - [X] epg-wait-for-status + [X] accept-process-output -> the process seems return 1 exit code? - [X] epg context #+begin_src emacs-lisp (epg-make-context) #+end_src #+RESULTS[(2023-05-02 09:42:28) ff5134e662dc53f52cd8e5807acefe25a94cc5c3]: : #s(epg-context :protocol OpenPGP :program "/opt/homebrew/bin/gpg" :home-directory "/Users/stardiviner/.gnupg" :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-passphrase-callback-function) :progress-callback nil :edit-callback nil :signers nil :sender nil :sig-notations nil :process nil :output-file nil :result nil :operation nil :pinentry-mode loopback :error-output "" :error-buffer nil) I took a screenshot of edebugged function internal error. (NOTE: The result is shown in yellow line of "Result: ...")