This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin coreutils assertion failed


Hi Eric

Thanks for the detailed and quick response. Usually such bug reports
are never answered.

The cause you describe sounds too bad and the occurrence is too rare
(only once) that I would bother going after this. Instead I'll try to
compile Emacs under Cygwin, which has caused me enough headaches
already.

Thanks for the maintaining work!

Regards,
Daniel

On 8/3/07, Eric Blake <ebb9@byu.net> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> http://cygwin.com/acronyms/#PPIOSPE - redirecting to the list.
>
> According to Daniel on 8/3/2007 12:29 AM:
> > Hi Eric,
> >
> > I'm running Windows XP Professional with Cygwin 2.510.2.2.
>
> No, you aren't.  You loaded cygwin using setup.exe version 2.510.2.2, but
> cygwin itself is at version 1.5.24.  Also, coreutils is now at 6.9-4,
> while you only have 6.9-3; you may want to consider upgrading.
>
> > I have a
> >
> >     tail -n 1000 -F -s 0.1 ~/putty.log
> >
> > running all the time since many weeks. Tonight it crashed with the message:
> >
> > assertion "0 <= seconds" failed: file
> > "/home/eblake/coreutils-6.9-3/src/coreutils-6.9/lib/xnanosleep.c",
> > line 57
> > bash: [3120: 1] tcsetattr: Inappropriate ioctl for device
> > Hangup
> > (129)
>
> Well, calling xnanosleep with negative time (where seconds is a variable
> of type double) certainly implies a bug.  The question is why the time was
> negative.
>
> Even worse, in the source for tail, xnanosleep is called in only one
> place, inside a while(1) loop, with a value initialized to 0.1 outside of
> the loop by your choice of -s option but never assigned within the loop.
> It is either stack corruption (perhaps due to faulty memory), or else the
> double sleep value is being stored only in a register and the register is
> not properly being restored after some context switch.  Without
> disassembling tail, I don't know whether the sleep_interval was stored on
> the stack or in a register; but since it is the only use of floating point
> in tail.c, I would suspect that the compiler did not need to spill it out
> of registers onto the stack.  Either way, it does not sound like a
> pleasant bug, nor does it seem like something that is caused directly by
> coreutils.
>
> - --
> Don't work too hard, make some time for fun as well!
>
> Eric Blake             ebb9@byu.net
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.5 (Cygwin)
> Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFGsyrQ84KuGfSFAYARAo0uAJ9GcNpLMEuV8tI353Kq93Ij4evSTACguokW
> EnKD+iOjFDJXh4GV5HEGJ1E=
> =D0SN
> -----END PGP SIGNATURE-----
>

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]