"Stephen J. Turnbull" <stephen(a)xemacs.org> writes:
What version of Gnus are you using?
Oort Gnus from CVS. But I believe the important thing is to use
STARTTLS, which is an external program invoked by start-process (with
process-connection-type bound to nil to work around the PTY line
length problem), see below.
>>>>> "Simon" == Simon Josefsson
<jas(a)extundo.com> writes:
Simon> It didn't start, it froze when checking for new mail in
Simon> some IMAP groups. C-g and waiting didn't help. It has
Simon> happened three times now (same backtrace) and worked only
Simon> one time. C-c and backtrace:
See if you can find out what the value of str->allow_quit is in frame
#2 or maybe step into filedesc_writer and evaluate it there (there is
a wrapped version of write called write_allow_quit, and I wonder why
that isn't used).
(gdb) p *str
$1 = {fd = 21, pty_max_bytes = 0, eof_char = 0 '\0', starting_pos = -1,
current_pos = 0, end_pos = -1, chars_sans_newline = 0, closing = 0,
allow_quit = 0, blocked_ok = 1, pty_flushing = 0, blocking_error_p = 0}
It was 0.
(I had to recompile without -O3 to see it... should -O really be used
when --debug is specified btw?)
Program received signal SIGINT, Interrupt.
0x403a7404 in write () from /lib/libc.so.6
(gdb) bt
#0 0x403a7404 in write () from /lib/libc.so.6
#1 0xffffffff in ?? ()
#2 0x0814d1bf in filedesc_writer (stream=0x899a650,
data=0x89b23a8 "204 STATUS \"INBOX.rfci-discuss\" (uidvalidity uidnext
unseen)\r\n\r\n\n\n)\r\n\nn)\r\nZqNHFDL2tjTTFrRzZjaEw4WHpEVlgrN0p3K3A3TGs4d3c9Iixjbm9uY2U9IjY1dDVkZGtqNHI4cGRka2oiLG5jPTAwMDAwMDAxLGRpZ2VzdC11cmk9ImltYXAvbG9j"...,
size=62) at lstream.c:1010
This looks like reply text; I don't understand why XEmacs wouldn't be
able to put it wherever it's supposed to go. Can you find out exactly
what IMAP protocol requests and replies have been executed to that point?
I don't know how to peek in buffers, but I have an idea on what's
causing the problem: Gnus is sending lot of data (20-30kb) without
reading, to use the pipelining features of IMAP. Perhaps this stalls
the pipe to STARTTLS. If I disable this feature everything works
fine.