Niklas Morberg writes: > Kevin Greiner writes: > >>> 1. Start with two unread and undownloaded messages in a >>> group. >>> >>> 2. Read the first message. >>> >> >> Niklas, pls do the following command at this point: >> M-: (debug-on-entry 'gnus-agent-expire) >> M-: (setq gnus-verbose 7) >> >>> 3. Move the second message to another group with `B m' >>> without reading it. >> >> You should have been thrown into the debugger. Did that happen? > > Yes. > >> Was the first argument to gnus-agent-expire a list of one >> integer; the article # of the article being moved? > > Yes. Complete output: > > * gnus-agent-expire((8673) "incoming" force) > gnus-request-move-article(8673 "incoming" "mailse01.axis.se" (gnus-request-accept-article "INBOX" (quote nil) t t) t) > gnus-summary-move-article(nil) > * call-interactively(gnus-summary-move-article) > >> Type 'c' to continue. > > Once again, I end up in the debugger. I hit 'c' again. > >> Take a look at the message buffer. gnus-agent-expire should have >> printed messages telling you that it removed the NOV entry for the >> article in question. Did it? > > No. The contents of the message buffer (after having exited > and re-entered the "incoming" group says): > > Moving to INBOX: (8673)... > Loading gnus-dup...done > Entering debugger... > [2 times] > Mark set [2 times] > iswitchb-read-buffer: Quit > Continuing. > Expiring articles in incoming > gnus-agent-expire: Loading overview... Done > gnus-agent-expire: Sorting entries... Done > gnus-agent-expire: Merging entries... Done > Expiry...done > Entering debugger... > [2 times] > Mark set [2 times] > Continuing. > nnimap: Setting marks in INBOX...done > nnimap: Updating info for INBOX...done > nnimap: Setting marks in incoming...done > Retrieving newsgroup: incoming... > nnimap: Updating info for incoming...done > Fetching headers for incoming...done > Generating summary...done > No more unread articles > >>> 4. Exit the group. >>> >>> 5. Re-enter the same group. The second message shows up in >>> the summary buffer, but it not possible to look at it. >>> It has not been downloaded and it is not on the server. >>> >>> This only happens if gnus-agent-mark-unread-after-downloaded >>> is nil. Setting g-a-m-u-a-d to non-nil makes the problem go >>> away. >> >> You should be using revision 6.142, or later, of >> gnus-agent.el. Are you? > > Yup: > > $ cvs status gnus-agent.el > =================================================================== > File: gnus-agent.el Status: Up-to-date > > Working revision: 6.142 > Repository revision: 6.142 /usr/local/cvsroot/gnus/lisp/gnus-agent.el,v > Sticky Tag: (none) > Sticky Date: (none) > Sticky Options: (none) > > Before doing the steps above I disabled all spam > functionality, exited emacs, downloaded a fresh gnus from > CVS, built it, installed it and then started emacs. > > Niklas Niklas, The problem is that gnus-agent-expire failed to expire the article. That shouldn't happen when the third parameter is force. It implies that either g-a-e is broken or that 8673 was never fetched into the agent. I've attached a copy of just g-a-e from revision 6.136 as I've been concerned with some recent changes to it. Either append this file to your gnus-agent.el or load it AFTER opening a group. Once you've loaded it, set gnus-verbose to 7 and repeat the 'B m' test.