Figured out how to reproduce vfork/rsync bug!

Jonathan Kamens jik@curl.com
Thu Sep 6 07:48:00 GMT 2001


>  Date: Thu, 6 Sep 2001 16:43:43 +0200
>  From: Corinna Vinschen <vinschen@redhat.com>
>  
>  I just tried it desperately another 100 times. I can't reproduce it.
>  I added x's randomly to make INCLUDE longer than 10 lines, more than
>  800 x's. Nothing happens.

Rats.

Don't bother trying it lots of times.... As far as I can tell, it
either happens every time or doesn't happen at all.

I just discovered another fascinating fact.  If I change my test
script from this:

  #!/bin/sh

  export 'INCLUDE=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  rsync /tmp/foo/ /tmp/bar/

to this:

  #!/bin/sh

  export 'INCLUDE=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  cmd /c "rsync /tmp/foo/ /tmp/bar/"

(note the last line) the failure goes away.

This suggests to me that there are problems when getting environment
variables from the parent cygwin process but not when getting them
from the Windows environment.

I'm going to compile the cygwin DLL with malloc debugging and see if
that reveals anything interesting.  While it's compiling, I'm going to
continue to stare intently at the code and see if inspiration strikes
:-).

  jik



More information about the Cygwin-developers mailing list