Subject: Re: bug#14616: 24.3.50; Excessive cursor movement on non-X Emacs

From: lee <[email-masked]>
Date: Tue, 18 Jun 2013 07:22:10 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Lars Magne Ingebrigtsen <[email-masked]>
>> Date: Fri, 14 Jun 2013 10:00:19 +0200
>> 
>> It seems like that when Emacs is doing network stuff (web/news), the
>> cursor is displayed momentarily visually at the first point in the
>> screen.  Then it's displayed momentarily at the first point in the echo
>> area.  Sometimes this repeats a few times.
>> 
>> Often the entire connection hangs while it's doing this -- I'm unable to
>> exit the screen for instance, so I suspect that Emacs is actually moving
>> the cursor back and forth between these two positions more rapidly than
>> my phone is able to display.
>> 
>> Once while this was happening, I got an SMS from my telco warning me
>> about large roaming data costs, which further points to this behaviour
>> generating a lot of data over the wire.
>> 
>> I have no idea how to start debugging this problem, but it's easily
>> reproducible for me.
>> 
>> It started happening about half a year ago.  Does anybody have any
>> inkling what might be causing this problem?  If not, I can try to see if
>> I can find a way to debug this.
>> 
>> Uhmn...
>> 
>> Oh, here's an strace from me typing `n' (next article) in Gnus four
>> times.  The second and fourth time this cursor-moving behaviour was
>> triggered:
>
> This all sounds very similar to bug #13864, but that one was fixed 2
> months ago.

This one: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13864 ?

> Can you use the methodology described in that bug to find out why the
> screen is being constantly redrawn?  If and when you reach a point
> where your findings diverge from what was found there, please post
> your findings here, and we will take it from there.

Not really because when I run emacs -q and then start gnus, I'm getting
a problem with nntp servers not being found.  It says in the *Messages*
buffer:

,----
| >>> (error news/nntp Name or service not known)
| nntp (news) open error: '>>> (error news/nntp Name or service not known)'.
| Continue? (y or n)  n
`----

>From there, I can continue and am presented with a group buffer in which
most groups are missing.  No nntp servers are in use anymore and I don't
know what to look into to fix this.

What I can reproduce atm is the following:

+ start emacs (just normally)
+ M-x gnus RET
+ enter a group that has messages all marked as O
+ press enter with the cursor on the first message in the summary buffer
+ that message is displayed and the cursor in the summary buffer moves
  down by two messages, i. e.:

    O Message 1 <--Cursor
    O Message 2
    O Message 3
    O Message 4
    [...]

  becomes

    O Message 1
    O Message 2
    O Message 3 <-- Cursor
    O Message 4
    [...]

I would expect the cursor to remain on Message 1.  Now when I 'C-x b
some-other-buffer' to switch to another buffer from the summary display
--- or run 'emacsclient some-file' --- and then 'C-x o' to the message
buffer and then press 't' to display the message headers, Message 3 is
suddenly displayed instead of Message 1 (without showing the headers).

>From there, I can 'C-x o' back to the other buffer and switch back to
the summary display.  Now in the summary display, I move the cursor back
to Message 1 and press 't'.  That displays Message 3 with headers
instead of Message 1 with headers.  So with the cursor on Message 1, I
press Return to get Message 1 displayed. The cursor goes down to Message
3, and when I press 't', I get Message 1 displayed including headers.

This is rather confusing because you don't get the message displayed
you're expecting :)  Since I'm doing this in an X11 frame, there's the
little triangular mark on the left of the message in the summary
display.  That mark doesn't follow the cursor anymore, i. e. when I
press Return on Message 1, the cursor goes to Message 3 and the triangle
remains on Message 1.  When I press 'h' in the summary buffer to switch
to the buffer displaying the message and then 't' to display the
headers, the triangle goes down to Message 3 where the cursor in the
summary buffer was and Message 3 is displayed without headers.

This doesn't look to me as if the screen was constantly being redrawn
and more like some sort of mismatch between what the user expects to
have displayed depending on where they put the cursor and what gnus
figures they want to have displayed (depending on where it figures it
wants to put the triangle).

-- 
"Object-oriented programming languages aren't completely convinced that
you should be allowed to do anything with functions."
http://www.joelonsoftware.com/items/2006/08/01.html