bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with bash+cygwin and longjmp


From: Eric Blake
Subject: Re: Problems with bash+cygwin and longjmp
Date: Thu, 07 Sep 2006 06:10:52 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Thunderbird/1.5.0.5 Mnenhy/0.7.4.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Pavel Ivanoff on 8/28/2006 12:50 AM:
> Hi!
> 
> We have a very strange and non-repeatable bug in bash came with the last
> version of cygwin. It appears during execution of a set of long-play
> scripts. These scripts do a lot of work and their normal execution time
> is 20-40 hours. Sometimes after 20 or more hours of work bash exits as
> it was killed with signal 9. I.e. it exits in the middle of the scripts
> without saying any word to stdout or stderr. At other times it exits
> with printing stack frame or some other info and the error description.
> Error description is similar to "C:\cygwin\bin\bash.exe (4588): *** WFSO
> timed out after longjmp", i.e. this message is different from time to
> time but when it's printed it always has some mentioning of longjmp. I
> can conclude from this that there's some wrong using of longjmp in the
> bash source code...
> This bug is not stable, so there's a lot of times when scripts finished
> it's work successfully. But as this failure appears and as there were
> periods when it happened often, we want to correct this behaviour very
> much. BTW: the same scripts work in Linux bash and they had never failed
> there in such way.
> 
> Can you tell us something about this strange behaviour and give some
> advice about healing it?

Yes.  This is not a bash bug, but a Windows limitations, and you are
better off asking for help on the cygwin mailing list, not here, since
there is nothing bash can do about it. Because Windows does not natively
support forking, cygwin must emulate it.  But experience on the cygwin
mailing list has shown that some drivers and antivirus software installed
in Windows are buggy, and inject threads into every single process in such
a manner that memory gets fragmented before cygwin even has a chance to
react when forking a process.  The result is the message that the fork
failed because memory was too fragmented to recover, and the solution is
often disabling the problematic driver so that it quits interfering with
cygwin.  But bash is using longjmp correctly, so there is no bug to report
on this list.

- --
Life is short - so eat dessert first!

Eric Blake             ebb9@byu.net
volunteer cygwin bash packager
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFAAxL84KuGfSFAYARAigCAJ9I3unB1gg12LBX2nqD72QC0Vx3PACfbkSz
tSxVkcQs3Ce3luqpNMk3lmc=
=k6B4
-----END PGP SIGNATURE-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]