rpms/perl-mogilefs-server/F-8 mogilefs-dont_delete_valid_files_during_cleanup.patch, NONE, 1.1 perl-mogilefs-server.spec, 1.1, 1.2

Ruben Kerkhof (ruben) fedora-extras-commits at redhat.com
Wed Aug 13 14:43:52 UTC 2008


Author: ruben

Update of /cvs/pkgs/rpms/perl-mogilefs-server/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11466

Modified Files:
	perl-mogilefs-server.spec 
Added Files:
	mogilefs-dont_delete_valid_files_during_cleanup.patch 
Log Message:
* Wed Aug 13 2008 Ruben Kerkhof <ruben at rubenkerkhof.com> 2.17-6
- Due to a problem in the tempfile handling, mogilefs occasionally
  looses file data after a while. Bz 458890


mogilefs-dont_delete_valid_files_during_cleanup.patch:

--- NEW FILE mogilefs-dont_delete_valid_files_during_cleanup.patch ---
diff --git a/trunk/server/lib/MogileFS/Worker/Delete.pm b/trunk/server/lib/MogileFS/Worker/Delete.pm
index d04c993..1f5a3d3 100644
--- a/trunk/server/lib/MogileFS/Worker/Delete.pm
+++ b/trunk/server/lib/MogileFS/Worker/Delete.pm
@@ -98,7 +98,17 @@ sub process_tempfiles {
     # now expunged (or soon to be) rows from tempfile
     my (@devfids, @fidids);
     foreach my $row (@$tempfiles) {
-        push @fidids, $row->[0];
+
+        # If FID is still loadable, we've arrived here due to a bug or race
+        # condition elsewhere. Remove the tempfile row but don't delete the
+        # file!
+        my $fidid = $row->[0];
+        my $fid = MogileFS::FID->new($fidid);
+        if ($fid->exists) {
+            $sto->dbh->do("DELETE FROM tempfile WHERE fid = ?", {}, $fidid);
+            next;
+        }
+        push @fidids, $fidid;

         # sanity check the string column.
         my $devids = $row->[1];
-- 
1.5.3.8 



Index: perl-mogilefs-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/perl-mogilefs-server/F-8/perl-mogilefs-server.spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- perl-mogilefs-server.spec	2 Mar 2008 17:00:57 -0000	1.1
+++ perl-mogilefs-server.spec	13 Aug 2008 14:43:22 -0000	1.2
@@ -1,6 +1,6 @@
 Name:       perl-mogilefs-server
 Version:    2.17
-Release:    5%{?dist}
+Release:    6%{?dist}
 Summary:    Server part of the MogileFS distributed filesystem
 License:    GPL+ or Artistic
 Group:      System Environment/Daemons
@@ -11,6 +11,9 @@
 Source3:    mogilefsd.conf
 Source4:    mogilefs.conf
 
+# bz 458890
+Patch0:    mogilefs-dont_delete_valid_files_during_cleanup.patch
+
 BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildArch:  noarch
 
@@ -92,6 +95,7 @@
 
 %prep
 %setup -q -n mogilefs-server-%{version}
+%patch0 -p3 -b .orig
 
 # Remove mogstored backends and Perlbal from Requires:
 cat << \EOF > mogstored-req
@@ -231,6 +235,10 @@
 
 
 %changelog
+* Wed Aug 13 2008 Ruben Kerkhof <ruben at rubenkerkhof.com> 2.17-6
+- Due to a problem in the tempfile handling, mogilefs occasionally
+  looses file data after a while. Bz 458890
+
 * Sun Mar 02 2008 Ruben Kerkhof <ruben at rubenkerkhof.com> 2.17-5
 - Rename package to respect the Naming Guidelines
 




More information about the fedora-extras-commits mailing list