delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/08/03/09:17:34

X-Spam-Check-By: sourceware.org
Message-ID: <46B32AD1.1010903@byu.net>
Date: Fri, 03 Aug 2007 07:17:05 -0600
From: Eric Blake <ebb9 AT byu DOT net>
Reply-To: cygwin AT cygwin DOT com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.5) Gecko/20070716 Thunderbird/2.0.0.5 Mnenhy/0.7.5.666
MIME-Version: 1.0
To: Daniel <danengel1 AT gmail DOT com>, cygwin AT cygwin DOT com
Subject: Re: Cygwin coreutils assertion failed
References: <b2e57ce30708022329n1a5fa9femd1bc05edfcde984 AT mail DOT gmail DOT com>
In-Reply-To: <b2e57ce30708022329n1a5fa9femd1bc05edfcde984@mail.gmail.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

-----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 AT byu DOT 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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019