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 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="ccache /opt/gcc/bin/gcc430"

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 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 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 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 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 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 the ddir happend. If the sync type is Forest in combination with rsync then a chdir to 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 forward everything on port 80 to the rsync server of activestate)



Kind regards,

Bram


Reply via email to