* C-g on IMAP and no such article
@ 2010-10-18 15:34 Julien Danjou
2010-10-18 19:21 ` Lars Magne Ingebrigtsen
0 siblings, 1 reply; 12+ messages in thread
From: Julien Danjou @ 2010-10-18 15:34 UTC (permalink / raw)
To: ding
When downloading a big message on IMAP, Emacs starts not responding,
which is normal, we all know.
But when pressing C-g, the message is then marked as deleted like with B
DEL.
And message says:
No such article (may have expired or been canceled)
This seems very dangerous.
--
Julien Danjou
// ᐰ <julien@danjou.info> http://julien.danjou.info
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-18 15:34 C-g on IMAP and no such article Julien Danjou
@ 2010-10-18 19:21 ` Lars Magne Ingebrigtsen
2010-10-18 19:56 ` Julien Danjou
0 siblings, 1 reply; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2010-10-18 19:21 UTC (permalink / raw)
To: ding
Julien Danjou <julien@danjou.info> writes:
> When downloading a big message on IMAP, Emacs starts not responding,
> which is normal, we all know.
No, we don't. :-)
> But when pressing C-g, the message is then marked as deleted like with B
> DEL.
> And message says:
> No such article (may have expired or been canceled)
>
> This seems very dangerous.
This sounds difficult to reproduce. Could you `debug-on-quit' this and
find out what's happening and how to avoid this?
--
(domestic pets only, the antidote for overdose, milk.)
larsi@gnus.org * Lars Magne Ingebrigtsen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-18 19:21 ` Lars Magne Ingebrigtsen
@ 2010-10-18 19:56 ` Julien Danjou
2010-10-18 19:58 ` Lars Magne Ingebrigtsen
0 siblings, 1 reply; 12+ messages in thread
From: Julien Danjou @ 2010-10-18 19:56 UTC (permalink / raw)
To: ding
On Mon, Oct 18 2010, Lars Magne Ingebrigtsen wrote:
> This sounds difficult to reproduce. Could you `debug-on-quit' this and
> find out what's happening and how to avoid this?
I tried, but I do not get anything on C-g, for a reason I do not know,
so I can't get any backtrace. :-(
--
Julien Danjou
// ᐰ <julien@danjou.info> http://julien.danjou.info
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-18 19:56 ` Julien Danjou
@ 2010-10-18 19:58 ` Lars Magne Ingebrigtsen
2010-10-18 20:05 ` Julien Danjou
0 siblings, 1 reply; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2010-10-18 19:58 UTC (permalink / raw)
To: ding
Julien Danjou <julien@danjou.info> writes:
> I tried, but I do not get anything on C-g, for a reason I do not know,
> so I can't get any backtrace. :-(
Must be something inhibiting `C-g' somewhere in the path?
--
(domestic pets only, the antidote for overdose, milk.)
larsi@gnus.org * Lars Magne Ingebrigtsen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-18 19:58 ` Lars Magne Ingebrigtsen
@ 2010-10-18 20:05 ` Julien Danjou
2010-10-18 20:11 ` Lars Magne Ingebrigtsen
0 siblings, 1 reply; 12+ messages in thread
From: Julien Danjou @ 2010-10-18 20:05 UTC (permalink / raw)
To: ding
On Mon, Oct 18 2010, Lars Magne Ingebrigtsen wrote:
> Must be something inhibiting `C-g' somewhere in the path?
What could it be then? I mean, I got a backtrace on every other C-g.
Is that because Emacs is doing something in the background? The C-g is
sent to the imap process which is ignoring it?
--
Julien Danjou
// ᐰ <julien@danjou.info> http://julien.danjou.info
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-18 20:05 ` Julien Danjou
@ 2010-10-18 20:11 ` Lars Magne Ingebrigtsen
2010-10-20 10:32 ` Julien Danjou
0 siblings, 1 reply; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2010-10-18 20:11 UTC (permalink / raw)
To: ding
Julien Danjou <julien@danjou.info> writes:
> What could it be then? I mean, I got a backtrace on every other C-g.
> Is that because Emacs is doing something in the background? The C-g is
> sent to the imap process which is ignoring it?
There's two ways: Binding `inhibit-quit', and using a `condition-case'
that ignores `quit'. So doing a `debug-on-entry' on, say,
`nnimap-request-article', and you'll see the call tree, and then you can
inspect the tree for those forms...
--
(domestic pets only, the antidote for overdose, milk.)
larsi@gnus.org * Lars Magne Ingebrigtsen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-18 20:11 ` Lars Magne Ingebrigtsen
@ 2010-10-20 10:32 ` Julien Danjou
2010-10-21 1:26 ` Lars Magne Ingebrigtsen
0 siblings, 1 reply; 12+ messages in thread
From: Julien Danjou @ 2010-10-20 10:32 UTC (permalink / raw)
To: ding
On Mon, Oct 18 2010, Lars Magne Ingebrigtsen wrote:
> There's two ways: Binding `inhibit-quit', and using a `condition-case'
> that ignores `quit'. So doing a `debug-on-entry' on, say,
> `nnimap-request-article', and you'll see the call tree, and then you can
> inspect the tree for those forms...
Well, anyhow I've found part of the problem.
First, I've set nnimap-fetch-partial-articles and there was a bug I
fixed in commit eb6b2e4e9bff924ab4f864323acf973b25643460.
Then, there seems to be some… race condition. I can bypass the bug in
the debugger, but not without it. When it raises that:
Debugger entered--entering a function:
* nnimap-get-response(1762)
nnimap-command("UID FETCH %d (%s %s)" 26382 "BODY.PEEK[HEADER]" "BODY.PEEK[1]")
nnimap-get-partial-article(26382 ("1") (("text" "plain" ("charset"
"us-ascii") nil nil "7bit" 2 1 nil "1" nil nil) [...] )
...
It *seems* that if I wait for the *nnimap* buffer to show the OK
response line, the code works fine. However, if I don't, therefore if
I'm not in the debugger, it hangs for ever. Note that the
nnimap-wait-response loop seems OK since I hitted search-backward a
couple of times with it returning nil, and then returning an integer and
I was available to execute the whole things without a problem.
So far I'm stuck.
Another thing I noticed while I'm at it. The message I used to test was
compose of a text/plain and a message/rfc822. I had
nnimap-fetch-partial-articles set to "text/", and all I got was an empty
message, since the sender did not write anything. But I did not had any
MIME part buttons, so it was hard to know there was another mime part
which was a message/ one. I've added message/ to the
nnimap-fetch-partial-articles regexp so I can see it.
Maybe there is some code thinking it's useless to show button for such a
mime part since we used to always show them inline? I don't know.
--
Julien Danjou
// ᐰ <julien@danjou.info> http://julien.danjou.info
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-20 10:32 ` Julien Danjou
@ 2010-10-21 1:26 ` Lars Magne Ingebrigtsen
2010-10-21 9:17 ` Julien Danjou
0 siblings, 1 reply; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2010-10-21 1:26 UTC (permalink / raw)
To: ding
Julien Danjou <julien@danjou.info> writes:
> Well, anyhow I've found part of the problem.
> First, I've set nnimap-fetch-partial-articles and there was a bug I
> fixed in commit eb6b2e4e9bff924ab4f864323acf973b25643460.
>
> Then, there seems to be some… race condition. I can bypass the bug in
> the debugger, but not without it. When it raises that:
>
> Debugger entered--entering a function:
> * nnimap-get-response(1762)
> nnimap-command("UID FETCH %d (%s %s)" 26382 "BODY.PEEK[HEADER]" "BODY.PEEK[1]")
So if you have nnimap-fetch-partial-articles set, then Gnus hangs
sometimes? Or do the articles it hangs on have anything in common?
--
(domestic pets only, the antidote for overdose, milk.)
larsi@gnus.org * Lars Magne Ingebrigtsen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-21 1:26 ` Lars Magne Ingebrigtsen
@ 2010-10-21 9:17 ` Julien Danjou
2010-10-21 16:00 ` Lars Magne Ingebrigtsen
0 siblings, 1 reply; 12+ messages in thread
From: Julien Danjou @ 2010-10-21 9:17 UTC (permalink / raw)
To: ding
On Thu, Oct 21 2010, Lars Magne Ingebrigtsen wrote:
> So if you have nnimap-fetch-partial-articles set, then Gnus hangs
> sometimes? Or do the articles it hangs on have anything in common?
Now I fixed the bugs :-) it does not hang. It just print a waiting
cursor for 15s, while the message is downloaded without any progress
message (which is disturbing).
If I press C-g while it is downloading:
[...]
Du5QiqO5mxuHPHSp4vMJPK/nTuFi7vgZT+7/ABpg+z7wu0c+hqqwmc7d3HtUn2c7RkfiDTuFi6DH
E+DDux70rXreZmOLaR70xURkG8ZPuaXZBE/DYJ/GhCaHnVL8lW3/AHTkCtiPxV51p5N
Process *nnimap* killed
It kills the process. And then mark the message with a big G, so it's
dangerous. I think it's because request-article returns nil so it thinks
the message has disappeared.
--
Julien Danjou
// ᐰ <julien@danjou.info> http://julien.danjou.info
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-21 9:17 ` Julien Danjou
@ 2010-10-21 16:00 ` Lars Magne Ingebrigtsen
2010-10-21 16:21 ` Julien Danjou
0 siblings, 1 reply; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2010-10-21 16:00 UTC (permalink / raw)
To: ding
Julien Danjou <julien@danjou.info> writes:
> If I press C-g while it is downloading:
>
> [...]
> Du5QiqO5mxuHPHSp4vMJPK/nTuFi7vgZT+7/ABpg+z7wu0c+hqqwmc7d3HtUn2c7RkfiDTuFi6DH
> E+DDux70rXreZmOLaR70xURkG8ZPuaXZBE/DYJ/GhCaHnVL8lW3/AHTkCtiPxV51p5N
> Process *nnimap* killed
>
> It kills the process. And then mark the message with a big G, so it's
> dangerous. I think it's because request-article returns nil so it thinks
> the message has disappeared.
`C-g' should break and return an error, I think. (To avoid having
-request-article return anything.) Why isn't it doing so?
--
(domestic pets only, the antidote for overdose, milk.)
larsi@gnus.org * Lars Magne Ingebrigtsen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-21 16:00 ` Lars Magne Ingebrigtsen
@ 2010-10-21 16:21 ` Julien Danjou
2010-10-21 16:25 ` Lars Magne Ingebrigtsen
0 siblings, 1 reply; 12+ messages in thread
From: Julien Danjou @ 2010-10-21 16:21 UTC (permalink / raw)
To: ding
On Thu, Oct 21 2010, Lars Magne Ingebrigtsen wrote:
> `C-g' should break and return an error, I think. (To avoid having
> -request-article return anything.) Why isn't it doing so?
Unfortunately, I don't know. I can't find why C-g kill the process and
does not honor debug-on-quit. That would help me understanding.
Debugging nnimap-request-article just shows it is running
nnimap-wait-for-response, which run accept-process-output each time it
does not find the answer. That's probably in that loop I press C-g.
Is there a chance that sending quit signal is killing a process if Emacs
is running accept-process-output?
--
Julien Danjou
// ᐰ <julien@danjou.info> http://julien.danjou.info
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: C-g on IMAP and no such article
2010-10-21 16:21 ` Julien Danjou
@ 2010-10-21 16:25 ` Lars Magne Ingebrigtsen
0 siblings, 0 replies; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2010-10-21 16:25 UTC (permalink / raw)
To: ding
Julien Danjou <julien@danjou.info> writes:
> Debugging nnimap-request-article just shows it is running
> nnimap-wait-for-response, which run accept-process-output each time it
> does not find the answer. That's probably in that loop I press C-g.
>
> Is there a chance that sending quit signal is killing a process if Emacs
> is running accept-process-output?
But killing the process shouldn't inhibit the `C-g' from returning to
the top-level, anyway. (The point is to not have -request-article
return anything...)
--
(domestic pets only, the antidote for overdose, milk.)
larsi@gnus.org * Lars Magne Ingebrigtsen
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2010-10-21 16:25 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-18 15:34 C-g on IMAP and no such article Julien Danjou
2010-10-18 19:21 ` Lars Magne Ingebrigtsen
2010-10-18 19:56 ` Julien Danjou
2010-10-18 19:58 ` Lars Magne Ingebrigtsen
2010-10-18 20:05 ` Julien Danjou
2010-10-18 20:11 ` Lars Magne Ingebrigtsen
2010-10-20 10:32 ` Julien Danjou
2010-10-21 1:26 ` Lars Magne Ingebrigtsen
2010-10-21 9:17 ` Julien Danjou
2010-10-21 16:00 ` Lars Magne Ingebrigtsen
2010-10-21 16:21 ` Julien Danjou
2010-10-21 16:25 ` 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).