This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin port of rsync -- patch for Win2k (rsync 2.5.1)


On Thu, Jan 31, 2002 at 12:18:24AM +0100, Lapo Luchini wrote:
>I don't think I have enough knowledge on the "fork() in cygwin" subject to
>evaluate if there are better solutions, I reply also in the mailing list.
>
>Lapo
>
>BTW: I'll try the fix soon, just wanted some more "advice from the gurus"
>about the issue ;)
>
>Chuck Messenger wrote:
>
>> Hi Lapo,
>>
>> I've been trying out the Cygwin port of rsync -- version 2.5.1.  I've
>> found that it doesn't work in server (i.e. --daemon) mode on my Win2k
>> box, but it does work on my Win98 box.
>>
>> I did some debugging, and came up with a fix.
>>
>> In socket.c, we have the following code which the server executes after
>> being connected to by a client:
>>
>>          if (fork()==0) {
>>              close(s);
>>              /* open log file in child before possibly giving
>>                 up privileges  */
>>              log_open();
>>              _exit(fn(fd));
>>          }
>>
>>   >>> delay(1);    /* CHM addition */
>>
>>          close(fd);
>>
>> I've marked my addition with >>>.  What seems to happen on Win2k is that
>> the close(fd) gets called by the mother process before the child process
>> gets going.

Sorry, but this is as impossible on cygwin as it is on UNIX.

I am not saying that there can't be a problem but the analysis that the
parent process is closing something in the child really can't be
correct.

As always, I'd appreciate debugging of this situation.  It's a given
that one doesn't implicitly have knowledge.  You have to gain knowledge
by looking at the code and running the debugger.  The techniques in
the file how-to-debug-cygwin.txt should provide you with ways to get
started.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]