Gnus development mailing list
 help / color / mirror / Atom feed
* nntp hangs
@ 2012-03-01  8:04 Katsumi Yamaoka
  2012-03-01 14:39 ` Tassilo Horn
  0 siblings, 1 reply; 7+ messages in thread
From: Katsumi Yamaoka @ 2012-03-01  8:04 UTC (permalink / raw)
  To: ding

Hi,

I frequently meet with Ma Gnus hanging up on news reading on
the nntp servers that go timeout in a minute.  The typical one
is news.gmane.org.  Several minutes after quitting reading
a group, it happens when I type `M-g' to check new articles in
the group.  At that time the echo area shows

Opening nntp server on gmane...done

but Emacs gets to hang up.  `C-g' and to retype `M-g' immediately
will help.  By turning `debug-on-quit' on, the following bt is
gotten when typing `C-g':

Debugger entered--Lisp error: (quit)
  signal(quit nil)
[...]
  nntp-with-open-group-function (nil "gmane" nil -BODYFUN)
 (nntp-with-open-group nil server (when (nntp-send-command "^[245].*\n" "GRO
  nntp-request-group("gmane.emacs.diffs" "gmane" nil ("nntp+gmane:gmane.emac
  gnus-activate-group("nntp+gmane:gmane.emacs.diffs" scan nil (nntp "gmane"
  gnus-group-get-new-news-this-group(nil)
  call-interactively(gnus-group-get-new-news-this-group nil nil)

Where -BODYFUN is as follows:

(lambda nil
  (when (nntp-send-command "^[245].*\n" "GROUP" group)
    (let ((entry (nntp-find-connection-entry nntp-server-buffer)))
      (setcar (cddr entry) group))))

Though I haven't found the cause yet, I guess Gnus tries to send
the GROUP command to the server, to which the connection has
been closed any longer by the server.  IIRC, that didn't happen
till recently.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: nntp hangs
  2012-03-01  8:04 nntp hangs Katsumi Yamaoka
@ 2012-03-01 14:39 ` Tassilo Horn
  2012-03-02 17:05   ` Ted Zlatanov
  0 siblings, 1 reply; 7+ messages in thread
From: Tassilo Horn @ 2012-03-01 14:39 UTC (permalink / raw)
  To: Katsumi Yamaoka; +Cc: ding

Katsumi Yamaoka <yamaoka@jpl.org> writes:

Hi!

> I frequently meet with Ma Gnus hanging up on news reading on
> the nntp servers that go timeout in a minute.  The typical one
> is news.gmane.org.  Several minutes after quitting reading
> a group, it happens when I type `M-g' to check new articles in
> the group.

Oh, I'm not alone.

> At that time the echo area shows
>
> Opening nntp server on gmane...done

I first suspected that imap is the cause, because for me the hang
happens always when the echo area shows

  nnimap read 71k from mail.uni-koblenz.de

where the number and the server differs from time to time.  But it's
always imap...

Nevertheless, when I enable debug-on-quit and hit C-g during a hang, I
get the same backtrace as Katsumi.

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (quit)
  signal(quit nil)
  byte-code(...)
  byte-code(...)
  nntp-with-open-group-function(...)
  nntp-finish-retrieve-group-infos("Eclipse" (("nntp+Eclipse:eclipse.platform" 3 ((1 . 87665)) ((seen (87239 . 87463) (87500 . 87665))) "nntp:Eclipse") ("nntp+Eclipse:eclipse.tools.emf" 3 ((1 . 57496)) ((seen (52299 . 53329) (53331 . 53344) (53346 . 55520) (55522 . 55616) (55618 . 55875) (55877 . 57349) (57351 . 57496)) (reply 57415 57417 57419)) "nntp:Eclipse")) 2)
  gnus-finish-retrieve-group-infos((nntp "Eclipse" (nntp-address "news.eclipse.org")) (("nntp+Eclipse:eclipse.platform" 3 ((1 . 87665)) ((seen (87239 . 87463) (87500 . 87665))) "nntp:Eclipse") ("nntp+Eclipse:eclipse.tools.emf" 3 ((1 . 57496)) ((seen (52299 . 53329) (53331 . 53344) (53346 . 55520) (55522 . 55616) (55618 . 55875) (55877 . 57349) (57351 . 57496)) (reply 57415 57417 57419)) "nntp:Eclipse")) 2)
  gnus-read-active-for-groups((nntp "Eclipse" (nntp-address "news.eclipse.org")) (("nntp+Eclipse:eclipse.platform" 3 ((1 . 87665)) ((seen (87239 . 87463) (87500 . 87665))) "nntp:Eclipse") ("nntp+Eclipse:eclipse.tools.emf" 3 ((1 . 57496)) ((seen (52299 . 53329) (53331 . 53344) (53346 . 55520) (55522 . 55616) (55618 . 55875) (55877 . 57349) (57351 . 57496)) (reply 57415 57417 57419)) "nntp:Eclipse")) 2)
  gnus-get-unread-articles(nil nil nil)
  gnus-group-get-new-news(nil)
  call-interactively(gnus-group-get-new-news nil nil)
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: nntp hangs
  2012-03-01 14:39 ` Tassilo Horn
@ 2012-03-02 17:05   ` Ted Zlatanov
  2012-03-05 11:10     ` Katsumi Yamaoka
  0 siblings, 1 reply; 7+ messages in thread
From: Ted Zlatanov @ 2012-03-02 17:05 UTC (permalink / raw)
  To: ding

On Thu, 01 Mar 2012 15:39:38 +0100 Tassilo Horn <tassilo@member.fsf.org> wrote: 

TH> Katsumi Yamaoka <yamaoka@jpl.org> writes:

>> I frequently meet with Ma Gnus hanging up on news reading on
>> the nntp servers that go timeout in a minute.  The typical one
>> is news.gmane.org.  Several minutes after quitting reading
>> a group, it happens when I type `M-g' to check new articles in
>> the group.

TH> Oh, I'm not alone.

I posted about my experience at
http://permalink.gmane.org/gmane.emacs.gnus.general/81471

Like I said there, I thought setting the heartbeat parameter would work
but it doesn't seem to.  So maybe it's a Gnus bug?

Ted




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: nntp hangs
  2012-03-02 17:05   ` Ted Zlatanov
@ 2012-03-05 11:10     ` Katsumi Yamaoka
  2012-03-05 18:51       ` Joseph Gay
  0 siblings, 1 reply; 7+ messages in thread
From: Katsumi Yamaoka @ 2012-03-05 11:10 UTC (permalink / raw)
  To: ding

Ted Zlatanov <tzz@lifelogs.com> wrote:
[...]
> I posted about my experience at
> http://permalink.gmane.org/gmane.emacs.gnus.general/81471

> Like I said there, I thought setting the heartbeat parameter would work
> but it doesn't seem to.  So maybe it's a Gnus bug?

Or a TCP-keepalive bug?  I tried commenting out that section in
nntp.el.  So far Gnus doesn't seem to hang up...
I suspect Emacs may keep thinking the nntp connection is alive,
i.e. `process-status' returns `open', even if the remote news
server disconnects it unilaterally.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: nntp hangs
  2012-03-05 11:10     ` Katsumi Yamaoka
@ 2012-03-05 18:51       ` Joseph Gay
  2012-03-06  8:09         ` Katsumi Yamaoka
  0 siblings, 1 reply; 7+ messages in thread
From: Joseph Gay @ 2012-03-05 18:51 UTC (permalink / raw)
  To: ding

Katsumi Yamaoka <yamaoka@jpl.org> writes:

>> Like I said there, I thought setting the heartbeat parameter would work
>> but it doesn't seem to.  So maybe it's a Gnus bug?
>
> Or a TCP-keepalive bug?  I tried commenting out that section in
> nntp.el.  So far Gnus doesn't seem to hang up...
> I suspect Emacs may keep thinking the nntp connection is alive,
> i.e. `process-status' returns `open', even if the remote news
> server disconnects it unilaterally.

This does seem plausible as I've just experienced what appears to be the
same bug on an ssh connection through TRAMP. The strace reveals a select
read poll loop where read always returns EAGAIN.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: nntp hangs
  2012-03-05 18:51       ` Joseph Gay
@ 2012-03-06  8:09         ` Katsumi Yamaoka
  2012-03-10  0:37           ` Lars Magne Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Katsumi Yamaoka @ 2012-03-06  8:09 UTC (permalink / raw)
  To: ding

Joseph Gay wrote:
> Katsumi Yamaoka <yamaoka@jpl.org> writes:

>>> Like I said there, I thought setting the heartbeat parameter would work
>>> but it doesn't seem to.  So maybe it's a Gnus bug?

>> Or a TCP-keepalive bug?  I tried commenting out that section in
>> nntp.el.  So far Gnus doesn't seem to hang up...

I still have met with hanging up for a couple of times, so TCP-
keepalive is probably not the cause.  As I wrote first, Gnus loops
in `nntp-with-open-group-function' at that time.  It must mean that
`process-status' said, just before it, that the nntp connection is
open.  In the echo area the "Opening nntp server on SERVER...done"
message is shown and is not shown.

>> I suspect Emacs may keep thinking the nntp connection is alive,
>> i.e. `process-status' returns `open', even if the remote news
>> server disconnects it unilaterally.

A workaround for this problem may be:
 - Run `nntp-with-open-group-function' with a timer.
 - Kill and reopen the connection when a specified time is up.

> This does seem plausible as I've just experienced what appears to be the
> same bug on an ssh connection through TRAMP. The strace reveals a select
> read poll loop where read always returns EAGAIN.

So, it's an Emacs bug?  I'm going to try it with XEmacs.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: nntp hangs
  2012-03-06  8:09         ` Katsumi Yamaoka
@ 2012-03-10  0:37           ` Lars Magne Ingebrigtsen
  0 siblings, 0 replies; 7+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-03-10  0:37 UTC (permalink / raw)
  To: Katsumi Yamaoka; +Cc: ding

Katsumi Yamaoka <yamaoka@jpl.org> writes:

> I still have met with hanging up for a couple of times, so TCP-
> keepalive is probably not the cause.  As I wrote first, Gnus loops
> in `nntp-with-open-group-function' at that time.  It must mean that
> `process-status' said, just before it, that the nntp connection is
> open.  In the echo area the "Opening nntp server on SERVER...done"
> message is shown and is not shown.

nntp should check that the connection is alive every time through the
loop, but perhaps it doesn't do that?

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-03-10  0:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-01  8:04 nntp hangs Katsumi Yamaoka
2012-03-01 14:39 ` Tassilo Horn
2012-03-02 17:05   ` Ted Zlatanov
2012-03-05 11:10     ` Katsumi Yamaoka
2012-03-05 18:51       ` Joseph Gay
2012-03-06  8:09         ` Katsumi Yamaoka
2012-03-10  0:37           ` Lars Magne Ingebrigtsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).