Sander, Would it be possible to use the "forks" module? It is supposed to provide a drop-in replacement for "threads" on operating systems that support posix forks, which would be true in your case. I suspect this would cure your problems, since everything would operate using forks instead of mixing forks and threads.
As for the details of why this causes trouble, I am not yet familiar enough with the internals of Perl's threading implementation to answer. Sorry. David On Mar 4, 2013 9:32 AM, "Sander Smeenk" <ssme...@freshdot.net> wrote: > Quoting Sander Smeenk (ssme...@freshdot.net): > > > In fact, it does work, for 95% of all threads it works as designed, only > > a select few (but not the same) threads fail each time, i was hoping to > > find out why only this small portion of threads fail their waitpid() > call. ;) > > Also, this might not be clear from my original message, the main process > is the process that creates the threads, one for each server that needs > to be backed up. Each thread calls fork() only once (through open3) for > the rsync to do the heavy lifting. > > So, it's not a fork() from the main process (which would perhaps > copy all threads to the fork()ed process, or maybe not, who knows). > > Amazing there is so little known about what this does / how this works, > i'll see if i can get a working testcase instead of the snipped i > pasted. > > -Sndr. > -- > | One tequila, two tequila, three tequila, floor. > | 4096R/20CC6CD2 - 6D40 1A20 B9AA 87D4 84C7 FBD6 F3A9 9442 20CC 6CD2 >