FW: Problems with bash+cygwin and longjmp

Pavel Ivanoff Pavel.Ivanoff@cbossgroup.com
Thu Sep 7 12:57:00 GMT 2006

Hi, all!

Please tell me any suggestions about problem with bash+cygwin written
below. Also below there is an answer about this problem from bash-bug
mailing list.

Best regards.
Pavel Ivanov

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
> 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
> 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
> without saying any word to stdout or stderr. At other times it exits
> with printing stack frame or some other info and the error
> Error description is similar to "C:\cygwin\bin\bash.exe (4588): ***
> 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
> 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
> 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
in Windows are buggy, and inject threads into every single process in
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
on this list.

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

Eric Blake             ebb9@byu.net
volunteer cygwin bash packager

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/

More information about the Cygwin mailing list