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)
