[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Closed connection errors with the new Gnus
From: |
Lars Magne Ingebrigtsen |
Subject: |
Re: Closed connection errors with the new Gnus |
Date: |
Thu, 14 Oct 2004 00:59:33 +0200 |
User-agent: |
Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux) |
Stefan Monnier <address@hidden> writes:
> See the backtrace below (which is all I can offer just now). Anybody knows
> what's going on? Is it just a matter of a failure to catch the error and
> reconnect&retry?
It seems to be failing when the server closes the connection when
doing an async prefetch. In that case, I think the most useful thing
to do is to just not attempt to prefetch anything else.
Could you try the following patch? I'm not quite sure it's correct;
the prefetching code is somewhat complex...
*** gnus-async.el.~7.3.~ Fri Oct 1 00:08:05 2004
--- gnus-async.el Thu Oct 14 00:57:46 2004
***************
*** 269,296 ****
(nntp-server-buffer (current-buffer))
(nntp-have-messaged nil)
(tries 0))
! (condition-case nil
! ;; FIXME: we could stop waiting after some
! ;; timeout, but this is the wrong place to do it.
! ;; rather than checking time-spent-waiting, we
! ;; should check time-since-last-output, which
! ;; needs to be done in nntp.el.
! (while (eq article gnus-async-current-prefetch-article)
! (incf tries)
! (when (nntp-accept-process-output proc)
! (setq tries 0))
! (when (and (not nntp-have-messaged)
! (= tries 3))
! (gnus-message 5 "Waiting for async article...")
! (setq nntp-have-messaged t)))
! (quit
! ;; if the user interrupted on a slow/hung connection,
! ;; do something friendly.
! (when (> tries 3)
! (setq gnus-async-current-prefetch-article nil))
! (signal 'quit nil)))
! (when nntp-have-messaged
! (gnus-message 5 "")))))
(defun gnus-async-delete-prefetched-entry (entry)
"Delete ENTRY from buffer and alist."
--- 269,297 ----
(nntp-server-buffer (current-buffer))
(nntp-have-messaged nil)
(tries 0))
! (when proc
! (condition-case nil
! ;; FIXME: we could stop waiting after some
! ;; timeout, but this is the wrong place to do it.
! ;; rather than checking time-spent-waiting, we
! ;; should check time-since-last-output, which
! ;; needs to be done in nntp.el.
! (while (eq article gnus-async-current-prefetch-article)
! (incf tries)
! (when (nntp-accept-process-output proc)
! (setq tries 0))
! (when (and (not nntp-have-messaged)
! (= tries 3))
! (gnus-message 5 "Waiting for async article...")
! (setq nntp-have-messaged t)))
! (quit
! ;; if the user interrupted on a slow/hung connection,
! ;; do something friendly.
! (when (> tries 3)
! (setq gnus-async-current-prefetch-article nil))
! (signal 'quit nil)))
! (when nntp-have-messaged
! (gnus-message 5 ""))))))
(defun gnus-async-delete-prefetched-entry (entry)
"Delete ENTRY from buffer and alist."
--
(domestic pets only, the antidote for overdose, milk.)
address@hidden * Lars Magne Ingebrigtsen