Subject: 24.5; gnus/nnimap: ticked messages not getting marked as read

From: Mike Kupfer <[email-masked]>
Date: Sun, 07 Feb 2016 14:41:26 -0800

[This message was originally sent to [email-masked].  There was some
followup discussion on 2016-2-6 on that list.]

I have a couple different systems that I use to connect to an IMAP
server.  I've noticed that messages that I had read--or at least marked
as read--using Gnus on system A sometimes show up as unread using Gnus
on system B.  I've finally tracked it down to this scenario:

- a message is unread and flagged (ticked) on the IMAP server.  Gnus
  shows it and the next message in the summary buffer as ticked.  (I'm
  not sure that status of the second message is critical for reproducing
  the problem, but it seems to help.)
- in the Gnus summary buffer, I type "d" for the first message.  The
  message is marked "r" in the summary buffer, as expected.
- I exit the summary buffer and type "s" in the Group buffer
- I check the folder using Thunderbird; it shows the first message as no
  longer flagged, but it's still shown as unread.

I expect the first message to be shown as read ("seen").

This is with Emacs 24.5.

With the debugger I captured the following stack trace while exiting the
summary buffer:

    Debugger entered--entering a function:
    * nnimap-send-command("UID STORE %s %sFLAGS.SILENT (%s)" "257948" "-" "\\Flagged")
      nnimap-request-set-mark("INBOX" (((257948) del (tick))) "beehive")
      gnus-request-set-mark("nnimap+beehive:INBOX" (((257948) del (tick))))
      gnus-update-marks()
      gnus-summary-update-info()
      gnus-summary-exit()
      call-interactively(gnus-summary-exit nil nil)
      command-execute(gnus-summary-exit)

I didn't notice any calls to set the Seen flag.

I tried figuring out what's going on in gnus-update-marks, but it's a
bit confusing, because there's both a gnus-newsgroup-seen list and a
gnus-newsgroup-unseen list.  Though this bit of code seems odd:

	(when (eq (cdr type) 'seen)
	  (setq list (gnus-range-add list gnus-newsgroup-unseen)))

Is it really adding seen messages to the unseen list?

[end of original email]

In GNU Emacs 24.5.2 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
 of 2016-01-23 on allegro
Windowing system distributor `The X.Org Foundation', version 11.0.11604000
System Description:	Debian GNU/Linux 8.3 (jessie)

Important settings:
  value of $LC_TIME: C
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  delete-selection-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  transient-mark-mode: t

Recent messages:
lib/emacs/hacks.el: (lambda (buf) ...) quoted with ' rather than with #' [2 times]
lib/emacs/hacks.el: (lambda (name) ...) quoted with ' rather than with #'
Loading /home/kupfer/lib/emacs/hacks.el (source)...done
Loading /home/kupfer/lib/emacs/default.el (source)...
Loading /home/kupfer/lib/emacs/xtermkeys.el (source)...done
Loading vc...done
Loading /home/kupfer/lib/emacs/default.el (source)...done
Loading /home/kupfer/lib/emacs/xtermkeys.el (source)...done
Loading vc...done
For information about GNU Emacs and the GNU system, type M-H C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils warnings server noutline outline easy-mmode comint
ansi-color ring xcscope easymenu advice help-fns ispell delsel vc
vc-dispatcher dired timeclock mdk-hacks time-date tooltip electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
inotify dynamic-setting font-render-setting x-toolkit x multi-tty emacs)

Memory information:
((conses 16 96193 3845)
 (symbols 48 21325 0)
 (miscs 40 89 99)
 (strings 32 19562 4494)
 (string-bytes 1 490564)
 (vectors 16 11281)
 (vector-slots 8 413359 2394)
 (floats 8 86 68)
 (intervals 56 194 0)
 (buffers 960 13)
 (heap 1024 11183 682))