Re: Error with sync via ftp removing smoke files?
[email protected] (Bram) Tue, 27 May 2008 00:03:24 +0200
| Newsgroups | perl.daily-build |
|---|---|
| Message-ID | <[email protected]> |
Quoting Abe Timmerman <[email protected]>: > Bram wrote: >> Ran into a problem setting up smoking on one machine... >> >> Configured the smoke to download sources via ftp. >> The machine is behind a firewall which doesn't seem to be =20 >> configured properly for ftp. >> It was able to connect but all other operations timed out. >> >> When I ran: >> >> cd /tmp >> /opt/perl/libs/local/bin/smokecurrent.sh -Dcc=3D"ccache /opt/gcc/bin/gcc= 430" >> >> everything in /opt/perl/libs/local/bin got removed. > > That is not good. I am so sorry! > > I am looking into this matter, but cannot reproduce. What is happening (I believe): Test::Smoke::Syncer::new is called with sync_type forest. Test::Smoke::Syncer::Forest::sync checks the fsync type which is ftp =20 and calls: Test::Smoker::Syncer::new, Then it calls: $syncer->sync (line 1436). (Note that it does not check if the sync succeeds or fails.) Then it sets the type to hardlink and calls ->sync to sync the inter =20 dir from the master dir (assuming I'm reading the code correctly): Then it sets the type to hardlink and calls ->sync to sync the build =20 dir from the inter dir. Test::Smoke::Syncer::Hardlink::sync calls: $self->clean_from_directory( $source_dir ); (line 1269) which is supposed to remove some files. What might fix it (will test and report back): a) check if the sync succeeded in forest before continuing, b) error on the ftp/forest combination, Something else I noticed: Test::Smoke::Syncer::Rsync::sync does a chdir to the ddir Test::Smoke::Syncer::Snapsh:sync creates the ddir if it doesn't exists =20 and does a chdir in _extract_snapshot (assuming it got that far) Test::Smoke::Syncer::Copy::sync does a chdir to the ddir Test::Smoke::Syncer::Hardlink::sync creates the ddir if it doesn't =20 exists (but doesn't do a chdir) Test::Smoke::Syncer::FTP::sync doesn't do a chdir Test::Smoke::Syncer::Forest::sync doesn't do a chdir If the sync type is Forest in combination with rsync then a chdir to =20 the ddir happend. If the sync type is Forest in combination with rsync then a chdir to =20 the ddir did not happen and that might leave it in a wrong directory. > Can you try with snapshots from APC (I believe that works out of the > box), that might be safer and is a lot faster. It's set to Forest + rsync now (used a server in another network to =20 forward everything on port 80 to the rsync server of activestate) Kind regards, Bram