B20.1 & Win95 fork/socket bug, or Why Rsync Doesn't Work

J.A. Bezemer costar@panic.et.tudelft.nl
Fri Sep 24 04:27:00 GMT 1999


Hi!

I tried to compile/run rsync (sources from
http://www.student.uni-koeln.de/cygwin/Distribution/Source/rsync/ ) under
Win95/Cygwin B20.1. Compiles allright, but doesn't run. Under 98 it runs
perfectly well, so I suspect this problem is somewhere in Win95. It would be
very nice if cygwin could do a workaround.

The problem is this: in do_recv() in rsync's main.c there's this structure:

	f_in is filedescriptor of a socket connected to the rsync server

        fork
           child does read(f_in)

        parent does write(f_in)

Parent's write() is okay, but childs read() doesn't receive anything, and the
child process just waits forever.

I don't know if this affects only sockets, or all filedescriptors.

In the mean time, for my specific situation I could remove the fork
completely, and simply run the child after the parent. This works
perfectly.

I don't have time to go into more detail, but just ask if you need to know
more. In case you're interested, My hacked version of rsync is at
http://panic.et.tudelft.nl/~costar/pseudo-image-kit ("Windows version").

And BTW, set CYGWIN=binmode, otherwise rsync goes all wrong...

Regards,
  Anne Bezemer


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list