From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tassilo Horn Newsgroups: gmane.emacs.bugs Subject: bug#43716: 28.0.50; Error with emacsclient : Date: Wed, 30 Sep 2020 17:51:24 +0200 Message-ID: <87lfgrb6v7.fsf@gnu.org> References: <874knfeofw.fsf@gnu.org> <87o8ln76y0.fsf@gnus.org> <87r1qjv01q.fsf@gnu.org> <87h7rf5pf9.fsf@gnus.org> <87r1qje3rf.fsf@gnu.org> <87zh5748v6.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28493"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Jonas Bernoulli , 43716@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Sep 30 17:52:18 2020 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 1kNeOw-0007Iv-Fx for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 30 Sep 2020 17:52:18 +0200 Original-Received: from localhost ([::1]:34738 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNeOu-0003VA-Dh for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 30 Sep 2020 11:52:16 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48622) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kNeOh-0003Tj-4L for bug-gnu-emacs@gnu.org; Wed, 30 Sep 2020 11:52:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49353) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kNeOg-0001DC-QZ for bug-gnu-emacs@gnu.org; Wed, 30 Sep 2020 11:52:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kNeOf-0003yh-PW for bug-gnu-emacs@gnu.org; Wed, 30 Sep 2020 11:52:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Sep 2020 15:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43716 X-GNU-PR-Package: emacs Original-Received: via spool by 43716-submit@debbugs.gnu.org id=B43716.160148109715250 (code B ref 43716); Wed, 30 Sep 2020 15:52:01 +0000 Original-Received: (at 43716) by debbugs.gnu.org; 30 Sep 2020 15:51:37 +0000 Original-Received: from localhost ([127.0.0.1]:60899 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kNeOG-0003xt-QD for submit@debbugs.gnu.org; Wed, 30 Sep 2020 11:51:37 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:41524) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kNeOE-0003xh-EF for 43716@debbugs.gnu.org; Wed, 30 Sep 2020 11:51:34 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:36553) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNeO8-00018U-6s; Wed, 30 Sep 2020 11:51:28 -0400 Original-Received: from auth2-smtp.messagingengine.com ([66.111.4.228]:58541) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.82) (envelope-from ) id 1kNeO7-0006Nv-H2; Wed, 30 Sep 2020 11:51:27 -0400 Original-Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailauth.nyi.internal (Postfix) with ESMTP id 0A87827C0054; Wed, 30 Sep 2020 11:51:27 -0400 (EDT) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Wed, 30 Sep 2020 11:51:27 -0400 X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrfedvgdeludcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufhffjgfkfgggtgfgsehtqhertddtreejnecuhfhrohhmpefvrghsshhi lhhoucfjohhrnhcuoehtshguhhesghhnuhdrohhrgheqnecuggftrfgrthhtvghrnhepvd eufeekueelkeehfffftdeiuddvhffftdfgkefhjeeujeduhedukeevfeevvdfhnecukfhp peelfedrvdefiedrudefjedrvdeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepthhhohhrnhdomhgvshhmthhprghuthhhphgvrhhsohhnrghl ihhthidqkeeijeefkeejkeegqdeifeehvdelkedqthhsughhpeepghhnuhdrohhrghesfh grshhtmhgrihhlrdhfmh X-ME-Proxy: Original-Received: from thinkpad-t440p (p5dec891c.dip0.t-ipconnect.de [93.236.137.28]) by mail.messagingengine.com (Postfix) with ESMTPA id D944D3280065; Wed, 30 Sep 2020 11:51:25 -0400 (EDT) In-Reply-To: <87zh5748v6.fsf@gnus.org> (Lars Ingebrigtsen's message of "Wed, 30 Sep 2020 16:50:05 +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" Xref: news.gmane.io gmane.emacs.bugs:189376 Archived-At: Lars Ingebrigtsen writes: Hi Lars, >> I found it. :-) >> >> lib-src/emacsclient.c >> 2095 fprintf (stderr, "*ERROR*: %s", str); > > Ah! So the Emacs server reports it back to the client as an error. > No wonder there's no backtrace here. :-/ > > What about the following patch -- if that's the correct condition-case > that's catching all this, then it should give you a backtrace in the > server Emacs after reloading server.el. That doesn't work but pointed into the right direction. I've edebugged `server-process-filter' now, and the Wrong number of arguments message appears when the (server-execute ...) form is evaluated. --8<---------------cut here---------------start------------->8--- (process-put proc 'continuation (lambda () (with-current-buffer (get-buffer-create server-buffer) ;; Use the same cwd as the emacsclient, if possible, so ;; relative file names work correctly, even in `eval'. (let ((default-directory (if (and dir (file-directory-p dir)) dir default-directory))) (server-execute proc files nowait commands dontkill frame tty-name))))) --8<---------------cut here---------------end--------------->8--- So I edebugged server-execute, and the error happens when calling `server-switch-buffer' in: --8<---------------cut here---------------start------------->8--- (cond ((or isearch-mode (minibufferp)) nil) ((and frame (null buffers)) (run-hooks 'server-after-make-frame-hook) (message "%s" (substitute-command-keys "When done with this frame, type \\[delete-frame= ]"))) ((not (null buffers)) (run-hooks 'server-after-make-frame-hook) (server-switch-buffer (car buffers) nil (cdr (car files)) ;; When triggered from "emacsclient -c", we popped up a ;; new frame. Ensure that we switch to the requested ;; buffer in that frame, and not in some other frame ;; where it may be displayed. (plist-get (process-plist proc) 'frame)) --8<---------------cut here---------------end--------------->8--- And that is *advised* by with-editor.el (used by Magit): --8<---------------cut here---------------start------------->8--- server-switch-buffer is a Lisp closure in =E2=80=98server.el=E2=80=99. (server-switch-buffer &optional NEXT-BUFFER KILLED-ONE FILEPOS THIS-FRAME-O= NLY) This function has :around advice: =E2=80=98server-switch-buffer--with-editor-server-window-alist=E2=80=99. --8<---------------cut here---------------end--------------->8--- >From with-editor.el: --8<---------------cut here---------------start------------->8--- (defun server-switch-buffer--with-editor-server-window-alist (fn &optional next-buffer killed-one filepos) "Honor `with-editor-server-window-alist' (which see)." (let ((server-window (with-current-buffer (or next-buffer (current-buffer)) (when with-editor-mode (setq with-editor-previous-winconf (current-window-configuration))) (with-editor-server-window)))) (funcall fn next-buffer killed-one filepos))) (advice-add 'server-switch-buffer :around 'server-switch-buffer--with-editor-server-window-alist) --8<---------------cut here---------------end--------------->8--- I've added Jonas to the Cc. What breaks the advice is the new `this-frame-only' parameter of `server-switch-buffer' Lars introduced on master with 7f2c35d0287. I guess with-editor.el needs to discriminate by emacs version or use a &rest argument in the advice and checking the individual 3 (emacs < 28) or 4 (emacs 28) arguments separately. Bye, Tassilo