Yes, this is EXACTLY the problem I was having.
Thanks for the patch, any chance it will be implemented in lftp 2.5.5?

Glenn Maynard wrote:

> On Sat, Jul 06, 2002 at 03:27:27PM -0400, Justin Piszcz wrote:
> > My question is: why is this so messy? My connection-limit it set to 1.
> > If it isn't, during a period of queue mirror -R . sometimes it will
> > startup multiple threads sending from multiple various directories from
> > where I did the mirror -R ..  IE: Isn't it supposed to upload a single
> > directory at a time, and not begin uploading one, get half way, and then
> > start uploading another one (the next one down), etc?
> >
> > This also happens if you do a queue mirror -c <DIRECTORY> with a lot of
> > sub dire
> > ctories and files in it.
> >
> > Normally this doesn't bother me, but it's been quite a while now and I
> > was wonde
> > ring if anyone else had seen this problem, or if it bothered them :).
>
> Hmm.  Here's a guess:
>
> lftp 0:/t> mir
> [0] mirror &
> lftp 0:/t> jobs
> [0] mirror
>  \mirror b
>   \transfer test
>         `test' at 40960 (40%) 11.2K/s eta:5s [Receiving data]
>
> 07:07pm [EMAIL PROTECTED]/1 [~ftp/t] chmod 0 a
>
> lftp 0:/t> mir
> mirror: Access failed: 550 /t/a: Permission denied
> [0] mirror &
> lftp 0:/t> jobs
> [0] mirror
>  \mirror b
>   \transfer test
>         `test' at 0 (0%) [Connection limit reached]
>  \mirror c
>   \transfer test
>         `test' at 24576 (24%) 10.5K/s eta:7s [Receiving data]
>
> The problem is that this bit of code:
>
>          if(waiting_num==0)
>             transfer_count++; // parent mirror will decrement it.
>
> (within DONE) is only run when a job was actually completed while in the
> DONE state.  It looks like this behavior was hacked around in pre_DONE,
> where this bit of code was copied.  The attached patch adds a FINISHING
> state to close up children, then adds the extra job when that finishes.
>
> I've only given this patch a quick test, but it does fix the above
> problem.
>
> --
> Glenn Maynard
>
>   ------------------------------------------------------------------------
>
>    lftp-mirror.patchName: lftp-mirror.patch
>                     Type: Plain Text (text/plain)

Reply via email to