Subject: Re: bug#13546: 24.2.92; Error(s) when sending emails

From: Eli Zaretskii <[email-masked]>
Date: Tue, 12 Feb 2013 18:24:34 +0200

> From: "Sebastien Vauban" <[email-masked]>
> Cc: Sebastien Vauban <[email-masked]>,  [email-masked]
> Date: Tue, 12 Feb 2013 13:43:53 +0100
> 
> > OK. So please attach GDB to Emacs _before_ the problem happens, and set a
> > breakpoint like this:
> >
> >   (gdb) break fileio.c:4913
> >   (gdb) continue
> >
> > The breakpoint will be on this line in fileio.c:
> >
> >   if (! ok)
> >     error ("IO error writing %s: %s", SDATA (filename),  <<<<<<<<<
> >            emacs_strerror (save_errno));
> >
> > Then do whatever it takes to reproduce the problem.  When it happens
> > again, this breakpoint should break.
> 
> I did attach to Emacs when problems began with Helm.
> 
> --8<---------------cut here---------------start------------->8---
> $ gdb emacs.exe -p 21312
> GNU gdb (GDB) 7.5.50.20120815-cvs (cygwin-special)
> Copyright (C) 2012 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "i686-cygwin".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /cygdrive/c/Program Files (x86)/emacs-24.2.93/bin/emacs.exe...done.
> Attaching to program `/cygdrive/c/Program Files (x86)/emacs-24.2.93/bin/emacs.exe', process 21312
> [New Thread 21312.0x66d4]
> [New Thread 21312.0xdb8]
> [New Thread 21312.0x4dc]
> [New Thread 21312.0x65a0]
> [New Thread 21312.0x18f4]
> (gdb) break fileio.c:4913
> Breakpoint 1 at 0x106380e: file fileio.c, line 4913.
> (gdb) continue
> Continuing.
> [New Thread 21312.0x6b24]
> [New Thread 21312.0x1b0c]
> warning: sys_read called when read is in progress
> warning: reader_thread.SetEvent failed with 6 for fd 3
> [New Thread 21312.0x30a4]
> warning: sys_read called when read is in progress
> warning: reader_thread.SetEvent failed with 6 for fd 3
> [New Thread 21312.0x469c]
> [New Thread 21312.0x42c0]
> warning: reader_thread.SetEvent failed with 6 for fd 3
> [New Thread 21312.0x5050]
> [New Thread 21312.0x1014]
> warning: sys_read called when read is in progress
> [New Thread 21312.0x1790]
> --8<---------------cut here---------------end--------------->8---
> 
> Did I attach too late?  Is the above giving some information already?

It gives me something, but not what I expected.  Did you at all see
the "IO error writing FOO" message this time?  If not, the above
breakpoint will not break.

In any case, since you say the problem comes back after 2 hours of
usage, it is probably better to attach GDB and set the breakpoints at
the very beginning of your session.

To catch this message:

  warning: sys_read called when read is in progress

please put an additional breakpoint on line 6410 of w32.c, which says:

        DebPrint (("sys_read called when read is in progress\n"));

and when it breaks, please do:

  (gdb) p fd_info[fd]
  (gdb) p fd
  (gdb) p *cp

TIA