From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.bugs Subject: bug#43682: 28.0.50; Clean up nnimap server buffers? Date: Mon, 28 Sep 2020 16:37:15 -0700 Message-ID: <87eemlh3ro.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3119"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: 43682@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Sep 29 01:38:13 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 1kN2ii-0000he-74 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 29 Sep 2020 01:38:12 +0200 Original-Received: from localhost ([::1]:38314 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kN2ig-00005w-Tw for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 28 Sep 2020 19:38:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45892) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kN2iY-00005m-RL for bug-gnu-emacs@gnu.org; Mon, 28 Sep 2020 19:38:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42789) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kN2iY-0000y2-GH for bug-gnu-emacs@gnu.org; Mon, 28 Sep 2020 19:38:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kN2iY-0008EG-E3 for bug-gnu-emacs@gnu.org; Mon, 28 Sep 2020 19:38:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Sep 2020 23:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 43682 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.160133624931591 (code B ref -1); Mon, 28 Sep 2020 23:38:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 28 Sep 2020 23:37:29 +0000 Original-Received: from localhost ([127.0.0.1]:54335 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kN2i1-0008DT-Gh for submit@debbugs.gnu.org; Mon, 28 Sep 2020 19:37:29 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:32898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kN2hy-0008DL-VH for submit@debbugs.gnu.org; Mon, 28 Sep 2020 19:37:28 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45782) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kN2hy-0008Ss-ES for bug-gnu-emacs@gnu.org; Mon, 28 Sep 2020 19:37:26 -0400 Original-Received: from ericabrahamsen.net ([52.70.2.18]:45092 helo=mail.ericabrahamsen.net) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kN2hv-0000um-92 for bug-gnu-emacs@gnu.org; Mon, 28 Sep 2020 19:37:25 -0400 Original-Received: from localhost (c-73-254-86-141.hsd1.wa.comcast.net [73.254.86.141]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 802E8FA5B6 for ; Mon, 28 Sep 2020 23:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1601336236; bh=jfVwvFeibR03Yn8azP9qz5FmI0kR5/872YqAiv2FXvM=; h=From:To:Subject:Date:From; b=LMc8VIM1WbCFe2abrYfHxN5z5OUhch87A70KcXGbQhAR4NbqRWK3s/QLrFIHKa3BU WP3kRFtnOCWeeynwL78OI/fwiVDxbJTX78t0MQprP0Ylbj8s7HW94OqUTo6dyFVYIb C8i/u3rGEJeHzZBMp/uyFQJmxqI29TfGugXGZyo4= Received-SPF: pass client-ip=52.70.2.18; envelope-from=eric@ericabrahamsen.net; helo=mail.ericabrahamsen.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/28 19:37:17 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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:189231 Archived-At: --=-=-= Content-Type: text/plain Someone noted on gnus.general that their imap connections are frequently broken, and they end up with a lot of dead process buffers. I'm talking to them about maybe making the keepalive timeout configurable, but wouldn't also be tidy to clean up dead process buffers? How does the attached patch look? Eric --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=CleanupImapBuffers.diff diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index d797e893f5..7f2ebe279e 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -407,8 +407,15 @@ nnimap-keepalive (time-subtract now (nnimap-last-command-time nnimap-object)))) - (ignore-errors ;E.g. "buffer foo has no process". - (nnimap-send-command "NOOP")))))))) + (condition-case err + (process-send-string "NOOP") + (error + (if (string-search "has no process" (cdr err)) + (let ((buf (current-buffer))) + (setq nnimap-process-buffers + (delq buf nnimap-process-buffers)) + (kill-buffer buf)) + (signal (car err) (cdr err))))))))))) (defun nnimap-open-connection (buffer) ;; Be backwards-compatible -- the earlier value of nnimap-stream was @@ -1910,6 +1917,10 @@ nnimap-find-connection '(open run))) (get-buffer-process (cadr entry)) (setq nnimap-connection-alist (delq entry nnimap-connection-alist)) + (setq nnimap-process-buffers + (delq (cadr entry) nnimap-process-buffers)) + (when (buffer-live-p (cadr entry)) + (kill-buffer (cadr entry))) nil)))) ;; Leave room for `open-network-stream' to issue a couple of IMAP --=-=-=--