Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

bk commit into 4.1 tree (msvensson:1.2680)

From: <msvensson(at)mysql.com>
Date: Wed Aug 29 2007 - 05:51:35 EDT


Below is the list of changes that have just been committed into a local 4.1 repository of msvensson. When msvensson does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository.
For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@1.2680, 2007-08-29 11:51:34+02:00, msvensson@pilot.(none) +2 -0   Add 'mtr_rmtree'

  mysql-test/lib/mtr_misc.pl@1.13, 2007-08-29 11:51:33+02:00, msvensson@pilot.(none) +60 -0     Add function 'mtr_rmtree' it will try 'rmtree' and if that fails (most likely     due to permission problems we will fun File::find to chmod all files and dirs     to 0777 and then delete.

  mysql-test/mysql-test-run.pl@1.185, 2007-08-29 11:51:33+02:00, msvensson@pilot.(none) +10 -10     Use 'mtr_rmtree' in favour of 'rmtree'

diff -Nrup a/mysql-test/lib/mtr_misc.pl b/mysql-test/lib/mtr_misc.pl

--- a/mysql-test/lib/mtr_misc.pl	2007-03-01 11:41:29 +01:00

+++ b/mysql-test/lib/mtr_misc.pl 2007-08-29 11:51:33 +02:00
@@ -5,6 +5,7 @@
 # same name.  

 use strict;
+use File::Find;
 

 sub mtr_full_hostname ();
 sub mtr_short_hostname ();
@@ -17,6 +18,7 @@ sub mtr_file_exists(@);

 sub mtr_exe_exists(@);
 sub mtr_exe_maybe_exists(@);
 sub mtr_copy_dir($$);

+sub mtr_rmtree($$);
sub mtr_same_opts($$); sub mtr_cmp_opts($$);

@@ -199,6 +201,64 @@ sub mtr_copy_dir($$) {

Do you need help?X

   }
   closedir(DIR);  

+}
+
+
+sub mtr_rmtree($) {
+ my ($dir)= @_;
+ my $need_file_find= 0;
+ mtr_verbose("mtr_rmtree: $dir");
+
+ {
+ # Try to use File::Path::rmtree. Recent versions
+ # handles removal of directories and files that don't
+ # have full permissions, while older versions
+ # may have a problem with that and we use our own version
+
+ local $SIG{__WARN__}= sub {
+ $need_file_find= 1;
+ mtr_warning($_[0]);
+ };
+ rmtree($dir);
+ }
+ if ( $need_file_find ) {
+ mtr_warning("rmtree($dir) failed, trying with File::Find...");
+
+ my $errors= 0;
+
+ # chmod
+ find( {
+ no_chdir => 1,
+ wanted => sub {
+ chmod(0777, $_)
+ or mtr_warning("couldn't chmod(0777, $_): $!") and $errors++;
+ }
+ },
+ $dir
+ );
+
+ # rm
+ finddepth( {
+ no_chdir => 1,
+ wanted => sub {
+ my $file= $_;
+ # Use special underscore (_) filehandle, caches stat info
+ if (!-l $file and -d _ ) {
+ rmdir($file) or
+ mtr_warning("couldn't rmdir($file): $!") and $errors++;
+ } else {
+ unlink($file)
+ or mtr_warning("couldn't unlink($file): $!") and $errors++;
+ }
+ }
+ },
+ $dir
+ );
+
+ mtr_error("Failed to remove '$dir'") if $errors;
+
+ mtr_report("OK, that worked!");
+ }

 }    

diff -Nrup a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl

--- a/mysql-test/mysql-test-run.pl	2007-06-13 10:35:19 +02:00

+++ b/mysql-test/mysql-test-run.pl 2007-08-29 11:51:33 +02:00
@@ -1988,7 +1988,7 @@ sub remove_stale_vardir () { { # Remove the directory which the link points at mtr_verbose("Removing " . readlink($opt_vardir)); - rmtree(readlink($opt_vardir));
+ mtr_rmtree(readlink($opt_vardir));
# Remove the "var" symlink mtr_verbose("unlink($opt_vardir)"); @@ -2016,7 +2016,7 @@ sub remove_stale_vardir () { foreach my $bin ( glob("$opt_vardir/*") ) { mtr_verbose("Removing bin $bin"); - rmtree($bin);
+ mtr_rmtree($bin);
} } } @@ -2024,7 +2024,7 @@ sub remove_stale_vardir () { { # Remove the entire "var" dir mtr_verbose("Removing $opt_vardir/"); - rmtree("$opt_vardir/");
+ mtr_rmtree("$opt_vardir/");
} if ( $opt_mem ) @@ -2033,7 +2033,7 @@ sub remove_stale_vardir () { # remove the $opt_mem dir to assure the symlink # won't point at an old directory mtr_verbose("Removing $opt_mem"); - rmtree($opt_mem);
+ mtr_rmtree($opt_mem);
}

   }
@@ -2046,11 +2046,11 @@ sub remove_stale_vardir () {

     # Remove the var/ dir in mysql-test dir if any
     # this could be an old symlink that shouldn't be there
     mtr_verbose("Removing $default_vardir");
- rmtree($default_vardir);
+ mtr_rmtree($default_vardir);
 
     # Remove the "var" dir
     mtr_verbose("Removing $opt_vardir/");
- rmtree("$opt_vardir/");
+ mtr_rmtree("$opt_vardir/");

   }
 }  

@@ -2963,7 +2963,7 @@ sub restore_slave_databases ($) {

     {
       my $data_dir= $slave->[$idx]->{'path_myddir'};
       my $name= basename($data_dir);
-      rmtree($data_dir);

+ mtr_rmtree($data_dir);
mtr_copy_dir("$path_snapshot/$name", $data_dir); }

   }
@@ -3310,7 +3310,7 @@ sub run_testcase ($) {  sub save_installed_db () {  

   mtr_report("Saving snapshot of installed databases"); - rmtree($path_snapshot);
+ mtr_rmtree($path_snapshot);
 

   foreach my $data_dir (@data_dir_lst)
   {
@@ -3357,7 +3357,7 @@ sub restore_installed_db ($) {

     {
       my $name= basename($data_dir);
       save_files_before_restore($test_name, $data_dir);
-      rmtree("$data_dir");

+ mtr_rmtree("$data_dir");
mtr_copy_dir("$path_snapshot/$name", "$data_dir"); } @@ -3367,7 +3367,7 @@ sub restore_installed_db ($) {
Can we help you?X
{ foreach my $ndbd (@{$cluster->{'ndbds'}}) { - rmtree("$ndbd->{'path_fs'}" );
+ mtr_rmtree("$ndbd->{'path_fs'}" );
} }

   }
-- 
MySQL Code Commits Mailing List
For list archives: 
http://lists.mysql.com/commits
To unsubscribe:    
http://lists.mysql.com/commits?unsub=lists@pantek.com
Received on Wed Aug 29 05:53:42 2007
Do you need more help?X

This archive was generated by hypermail 2.1.8 : Sun Oct 07 2007 - 08:53:46 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library