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
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

--
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