From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Davor Rotim Newsgroups: gmane.emacs.bugs Subject: bug#36324: 27.0.50; Error in savehist-save: (wrong-type-argument listp t) Date: Fri, 21 Jun 2019 21:22:56 +0200 Message-ID: References: <87zhma9b6v.fsf@web.de> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="00000000000062aab3058bda6410" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="221179"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 36324@debbugs.gnu.org To: larsi@gnus.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jun 21 21:24:14 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1heP8w-000vQE-3n for geb-bug-gnu-emacs@m.gmane.org; Fri, 21 Jun 2019 21:24:14 +0200 Original-Received: from localhost ([::1]:37498 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1heP8u-0003MS-4z for geb-bug-gnu-emacs@m.gmane.org; Fri, 21 Jun 2019 15:24:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51547) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1heP8m-0003LY-6r for bug-gnu-emacs@gnu.org; Fri, 21 Jun 2019 15:24:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1heP8k-00085y-4s for bug-gnu-emacs@gnu.org; Fri, 21 Jun 2019 15:24:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:37187) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1heP8j-00085f-RA for bug-gnu-emacs@gnu.org; Fri, 21 Jun 2019 15:24:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1heP8j-0007iC-Jz for bug-gnu-emacs@gnu.org; Fri, 21 Jun 2019 15:24:01 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <87zhma9b6v.fsf@web.de> Resent-From: Davor Rotim Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 21 Jun 2019 19:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36324 X-GNU-PR-Package: emacs Original-Received: via spool by 36324-submit@debbugs.gnu.org id=B36324.156114499529577 (code B ref 36324); Fri, 21 Jun 2019 19:24:01 +0000 Original-Received: (at 36324) by debbugs.gnu.org; 21 Jun 2019 19:23:15 +0000 Original-Received: from localhost ([127.0.0.1]:50731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1heP7y-0007gw-V1 for submit@debbugs.gnu.org; Fri, 21 Jun 2019 15:23:15 -0400 Original-Received: from mail-wr1-f51.google.com ([209.85.221.51]:36414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1heP7w-0007gd-Qs for 36324@debbugs.gnu.org; Fri, 21 Jun 2019 15:23:13 -0400 Original-Received: by mail-wr1-f51.google.com with SMTP id n4so6405036wrs.3 for <36324@debbugs.gnu.org>; Fri, 21 Jun 2019 12:23:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=9MEJhAzfgTbK6Fj857gfnWEYWTRsQUeghLxY2AXF/TU=; b=lMXH3HtlPM9p4IW244xSEbgQYp35HeTDNryJdKqJMvziUcLPIJh2ML2Bhf1Plgre94 94CDkngDMQV1sP4fM5is8S7gs1xPUhJgZp0RvQWOeyObPDsQpOtQr9OU2p30pma6yCrD Ptek1dEU5DBQtU8PEWUQ8a26J4IztinyOy/oWBcFp26Bl2jTzg2dH3X0gEQbZ3ybctYo 9zB2cD5ZjHVwHp0bB3wjEiSbwSRHMurM7iNUunwBQNECZ6DVSyVUGjKzVVDXlPwztq+I ysN7hjgB4KnVCB2XzV0lJksLo7LUgbVAgYBEfByNd/Upj/iEgWqapicA5TDXeh5P6jcM DJNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=9MEJhAzfgTbK6Fj857gfnWEYWTRsQUeghLxY2AXF/TU=; b=LkJO1JzUbZssorzPdGCjeVc79KsWrhrHiQdJ42UhzHmFUV5KSUyylI5LoMf093mgTW ll0BYSL8f0gud+s83t6zZPc0ppEb5gn8RsTXyjmkrnu3RrKsIEdmG+FNSydOwdhWAjYQ lBbdl4D/QLTJ62mSIoQZ+CkYPc42gFA5zDnLQ/G5cpIhQbY1uCcxiXWXsNdegfFPjf8w 0SEO5CLPFZ40bjVxJutotxo4YjTP5yXdfp5I1D2WSA22IJWQDmLoXYhVYZkMJZJbKEIm p9p9CVNMNsHaXJJdEOAJbpdNhOn0BpchgWlBDpjW3424f35mYNeSVHuy7IiwSLHpCg5Q BMTA== X-Gm-Message-State: APjAAAW+hiVhBOTyte7XK/RdINXKDKzxJ+OZC7rKr0YRPkMQN4aao0nE rtb0blwzE6hJQOG0/noUZA2WploDdHdKa4Rgu2M= X-Google-Smtp-Source: APXvYqxBjKHghmOYN4kxj2In6jH7cwPHxGBPBxTrLs/DGOrdbjgpiU0aKThtQnSw78AXqxjdqmXkQM6icpTvGtA27yk= X-Received: by 2002:adf:afde:: with SMTP id y30mr36650308wrd.197.1561144986871; Fri, 21 Jun 2019 12:23:06 -0700 (PDT) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:160957 Archived-At: --00000000000062aab3058bda6410 Content-Type: text/plain; charset="UTF-8" I can trigger it reliably using the following skeleton init.el: (setq savehist-autosave-interval 10) (savehist-mode) (setq epg-pinentry-mode 'loopback) Visiting a test.gpg file and afterwards encrypting it symmetrically gives the following error: Debugger entered--Lisp error: (wrong-type-argument listp t) savehist-save(t) savehist-autosave() apply(savehist-autosave nil) timer-event-handler([t 23821 9812 623801 10 savehist-autosave nil nil 712000]) read-string("Confirm password: " nil t nil) read-passwd("Confirm password: " nil nil) read-passwd("Passphrase for symmetric encryption for /home/drot..." t) epa-passphrase-callback-function(#s(epg-context :protocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/home/drot/test.gpg") :progress-callback (epa-progress-callback-function . "Encrypting /home/drot/test.gpg") :edit-callback nil :signers nil :sig-notations nil :process # :output-file "/tmp/epg-outputk8NwaR" :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) SYM "/home/drot/test.gpg") epa-file-passphrase-callback-function(#s(epg-context :protocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/home/drot/test.gpg") :progress-callback (epa-progress-callback-function . "Encrypting /home/drot/test.gpg") :edit-callback nil :signers nil :sig-notations nil :process # :output-file "/tmp/epg-outputk8NwaR" :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) SYM "/home/drot/test.gpg") epg--status-GET_HIDDEN(#s(epg-context :protocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/home/drot/test.gpg") :progress-callback (epa-progress-callback-function . "Encrypting /home/drot/test.gpg") :edit-callback nil :signers nil :sig-notations nil :process # :output-file "/tmp/epg-outputk8NwaR" :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) "passphrase.enter") epg--process-filter(# "[GNUPG:] INQUIRE_MAXLEN 100\n[GNUPG:] GET_HIDDEN pa...") accept-process-output(# 1) epg-wait-for-status(#s(epg-context :protocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/home/drot/test.gpg") :progress-callback (epa-progress-callback-function . "Encrypting /home/drot/test.gpg") :edit-callback nil :signers nil :sig-notations nil :process # :output-file "/tmp/epg-outputk8NwaR" :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) ("BEGIN_ENCRYPTION")) epg-start-encrypt(#s(epg-context :protocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/home/drot/test.gpg") :progress-callback (epa-progress-callback-function . "Encrypting /home/drot/test.gpg") :edit-callback nil :signers nil :sig-notations nil :process # :output-file "/tmp/epg-outputk8NwaR" :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) #s(epg-data :file nil :string "hello") nil nil nil) epg-encrypt-string(#s(epg-context :protocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-function . "/home/drot/test.gpg") :progress-callback (epa-progress-callback-function . "Encrypting /home/drot/test.gpg") :edit-callback nil :signers nil :sig-notations nil :process # :output-file "/tmp/epg-outputk8NwaR" :result nil :operation encrypt :pinentry-mode loopback :error-output "" :error-buffer #) "hello" nil) epa-file-write-region(nil nil "/home/drot/test.gpg" nil t "~/test.gpg" nil) apply(epa-file-write-region (nil nil "/home/drot/test.gpg" nil t "~/test.gpg" nil)) epa-file-handler(write-region nil nil "/home/drot/test.gpg" nil t "~/test.gpg" nil) write-region(nil nil "/home/drot/test.gpg" nil t "~/test.gpg") basic-save-buffer-2() basic-save-buffer-1() basic-save-buffer(t) save-buffer(1) funcall-interactively(save-buffer 1) call-interactively(save-buffer nil nil) command-execute(save-buffer) Attempting to quit Emacs after that gives the following error: Debugger entered--Lisp error: (wrong-type-argument listp t) savehist-save(t) savehist-autosave() kill-emacs() save-buffers-kill-emacs(nil) save-buffers-kill-terminal(nil) funcall-interactively(save-buffers-kill-terminal nil) call-interactively(save-buffers-kill-terminal nil nil) command-execute(save-buffers-kill-terminal) These errors start to happen every time there's a minibuffer prompt for GPG decryption. In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.5, cairo version 1.16.0) of 2019-06-21 built on lambda Repository revision: 869cf5cbc0721bbe9e4df557f4ed3633fb13c05f Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12004000 System Description: Debian GNU/Linux 10 (buster) --00000000000062aab3058bda6410 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I can trigger it reliably using the following skeleton ini= t.el:

(setq savehist-autosave-interval 10)
(savehist-mode)
(se= tq epg-pinentry-mode 'loopback)

Visiting a test.gpg file and aft= erwards encrypting it symmetrically
gives the following error:

Debugger entered--Lisp error: (wrong-type-argument lis= tp t)
=C2=A0 savehist-save(t)
=C2=A0 savehist-autosave()
=C2=A0 ap= ply(savehist-autosave nil)
=C2=A0 timer-event-handler([t 23821 9812 6238= 01 10 savehist-autosave nil nil 712000])
=C2=A0 read-string("Confir= m password: " nil t nil)
=C2=A0 read-passwd("Confirm password:= " nil nil)
=C2=A0 read-passwd("Passphrase for symmetric encry= ption for /home/drot..." t)
=C2=A0 epa-passphrase-callback-function= (#s(epg-context :protocol OpenPGP :program "/usr/bin/gpg2" :home-= directory nil :armor nil :textmode nil :include-certs nil :cipher-algorithm= nil :digest-algorithm nil :compress-algorithm nil :passphrase-callback (ep= a-file-passphrase-callback-function . "/home/drot/test.gpg") :pro= gress-callback (epa-progress-callback-function . "Encrypting /home/dro= t/test.gpg") :edit-callback nil :signers nil :sig-notations nil :proce= ss #<process epg> :output-file "/tmp/epg-outputk8NwaR" :res= ult nil :operation encrypt :pinentry-mode loopback :error-output "&quo= t; :error-buffer #<buffer =C2=A0*epg-error*>) SYM "/home/drot/te= st.gpg")
=C2=A0 epa-file-passphrase-callback-function(#s(epg-contex= t :protocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil = :armor nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-a= lgorithm nil :compress-algorithm nil :passphrase-callback (epa-file-passphr= ase-callback-function . "/home/drot/test.gpg") :progress-callback= (epa-progress-callback-function . "Encrypting /home/drot/test.gpg&quo= t;) :edit-callback nil :signers nil :sig-notations nil :process #<proces= s epg> :output-file "/tmp/epg-outputk8NwaR" :result nil :opera= tion encrypt :pinentry-mode loopback :error-output "" :error-buff= er #<buffer =C2=A0*epg-error*>) SYM "/home/drot/test.gpg")<= br>=C2=A0 epg--status-GET_HIDDEN(#s(epg-context :protocol OpenPGP :program = "/usr/bin/gpg2" :home-directory nil :armor nil :textmode nil :inc= lude-certs nil :cipher-algorithm nil :digest-algorithm nil :compress-algori= thm nil :passphrase-callback (epa-file-passphrase-callback-function . "= ;/home/drot/test.gpg") :progress-callback (epa-progress-callback-funct= ion . "Encrypting /home/drot/test.gpg") :edit-callback nil :signe= rs nil :sig-notations nil :process #<process epg> :output-file "= /tmp/epg-outputk8NwaR" :result nil :operation encrypt :pinentry-mode l= oopback :error-output "" :error-buffer #<buffer =C2=A0*epg-err= or*>) "passphrase.enter")
=C2=A0 epg--process-filter(#<p= rocess epg> "[GNUPG:] INQUIRE_MAXLEN 100\n[GNUPG:] GET_HIDDEN pa...= ")
=C2=A0 accept-process-output(#<process epg> 1)
=C2=A0 e= pg-wait-for-status(#s(epg-context :protocol OpenPGP :program "/usr/bin= /gpg2" :home-directory nil :armor nil :textmode nil :include-certs nil= :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :passp= hrase-callback (epa-file-passphrase-callback-function . "/home/drot/te= st.gpg") :progress-callback (epa-progress-callback-function . "En= crypting /home/drot/test.gpg") :edit-callback nil :signers nil :sig-no= tations nil :process #<process epg> :output-file "/tmp/epg-outpu= tk8NwaR" :result nil :operation encrypt :pinentry-mode loopback :error= -output "" :error-buffer #<buffer =C2=A0*epg-error*>) (&quo= t;BEGIN_ENCRYPTION"))
=C2=A0 epg-start-encrypt(#s(epg-context :prot= ocol OpenPGP :program "/usr/bin/gpg2" :home-directory nil :armor = nil :textmode nil :include-certs nil :cipher-algorithm nil :digest-algorith= m nil :compress-algorithm nil :passphrase-callback (epa-file-passphrase-cal= lback-function . "/home/drot/test.gpg") :progress-callback (epa-p= rogress-callback-function . "Encrypting /home/drot/test.gpg") :ed= it-callback nil :signers nil :sig-notations nil :process #<process epg&g= t; :output-file "/tmp/epg-outputk8NwaR" :result nil :operation en= crypt :pinentry-mode loopback :error-output "" :error-buffer #<= ;buffer =C2=A0*epg-error*>) #s(epg-data :file nil :string "hello&qu= ot;) nil nil nil)
=C2=A0 epg-encrypt-string(#s(epg-context :protocol Ope= nPGP :program "/usr/bin/gpg2" :home-directory nil :armor nil :tex= tmode nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :c= ompress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-fu= nction . "/home/drot/test.gpg") :progress-callback (epa-progress-= callback-function . "Encrypting /home/drot/test.gpg") :edit-callb= ack nil :signers nil :sig-notations nil :process #<process epg> :outp= ut-file "/tmp/epg-outputk8NwaR" :result nil :operation encrypt :p= inentry-mode loopback :error-output "" :error-buffer #<buffer = =C2=A0*epg-error*>) "hello" nil)
=C2=A0 epa-file-write-regi= on(nil nil "/home/drot/test.gpg" nil t "~/test.gpg" nil= )
=C2=A0 apply(epa-file-write-region (nil nil "/home/drot/test.gpg&= quot; nil t "~/test.gpg" nil))
=C2=A0 epa-file-handler(write-r= egion nil nil "/home/drot/test.gpg" nil t "~/test.gpg" = nil)
=C2=A0 write-region(nil nil "/home/drot/test.gpg" nil t &= quot;~/test.gpg")
=C2=A0 basic-save-buffer-2()
=C2=A0 basic-save= -buffer-1()
=C2=A0 basic-save-buffer(t)
=C2=A0 save-buffer(1)
=C2= =A0 funcall-interactively(save-buffer 1)
=C2=A0 call-interactively(save-= buffer nil nil)
=C2=A0 command-execute(save-buffer)

=
Attempting to quit Emacs after that gives the following error:

Debugger entered--Lisp error: (wrong-type-argument listp = t)
=C2=A0 savehist-save(t)
=C2=A0 savehist-autosave()
=C2=A0 kill-= emacs()
=C2=A0 save-buffers-kill-emacs(nil)
=C2=A0 save-buffers-kill-= terminal(nil)
=C2=A0 funcall-interactively(save-buffers-kill-terminal ni= l)
=C2=A0 call-interactively(save-buffers-kill-terminal nil nil)
=C2= =A0 command-execute(save-buffers-kill-terminal)

Th= ese errors start to happen every time there's a minibuffer prompt for G= PG decryption.

In GNU Emacs 27.0.50 (build 1, x86_= 64-pc-linux-gnu, GTK+ Version 3.24.5, cairo version 1.16.0)
=C2=A0of 201= 9-06-21 built on lambda
Repository revision: 869cf5cbc0721bbe9e4df557f4e= d3633fb13c05f
Repository branch: master
Windowing system distributor = 'The X.Org Foundation', version 11.0.12004000
System Description= : Debian GNU/Linux 10 (buster)
--00000000000062aab3058bda6410--