rsync error: unexplained error

jw schultz jw at pegasys.ws
Sun Sep 1 15:35:01 EST 2002


To start with, use the carrage return and don't send html.

This sounds like a problem that was fixed a few months ago.
You might try searching archives.  Upgrade to current
(2.5.5) or the CVS tree. 

And please send any changes as diff -u against up-to-date
CVS (see diff(1) and patch(1)) encoded as text/plain or flat
ascii.  With what you sent it is unclear what you changed
and requires much work to apply changes.

On Sun, Sep 01, 2002 at 05:12:32PM -0700, David R. Staples wrote: (reformatted)
> I believe I have found the cause of the unexplained error
> (code ??) at main.c(line #).  In the version I'm running
> 2.5.2 (obtained from the Free Software Foundation) the line
> number is 576.  It appears the root cause is related to a
> race condition associated with the termination of child
> processes.
> 
> If the signal handler for SIGCHILD is executed, as the
> result of a child termination, before the wait_process
> procedure is executed, the status of pid (as passed to
> wait_process) will not be available and the waitpid call in
> wait_process will fail with an ECHILD error.  If however,
> wait_process executes first, it will successfully obtain the
> exit status of pid and the sigchld_handler can execute, to
> eliminate zombies, with no adverse affects.  Since signal
> handlers execute asynchronously there is no way to predict
> when, if at all, a process will encounter this problem.
> 
> I am providing below proposed new code that should resolve
> the problem.  Certainly I can make these changes within my
> own environment, but since I would like to remain consistent
> with the rsync project, I would like to here from someone
> regarding incorporation of these changes into rsync or an
> alternative (official) method to fixing this problem.  I can
> be reached at drstaples at beckman.com;
> drstaples at drstaples.com; or drstapl at empirenet.com
> 
> Sincerely,
> David R. Staples
> 
> --------------------------------------------------------------------------------
> Proposed new code in main.c
[snip]



More information about the rsync mailing list