Class::reload_classes uses Store::get_all_classes to read the data from
the class table. If you've got schema version 10 and above, then
get_all_classes also reads the replpolicy field. There's a bug because
reload_classes is ignoring the replpolicy field, so it's never getting
set in the class, and we're always getting the default replpolicy when
we call repl_policy_string.
Attached patch is a single new line against r1127 that fixes this.
cheers.
diff -urP trunk_r1127/server/lib/MogileFS/Class.pm trunk_r1127_patched/server/lib/MogileFS/Class.pm
--- trunk_r1127/server/lib/MogileFS/Class.pm 2007-09-04 15:05:53.000000000 +0100
+++ trunk_r1127_patched/server/lib/MogileFS/Class.pm 2007-10-03 15:51:03.000000000 +0100
@@ -73,6 +73,7 @@
classid => $row->{classid},
name => $row->{classname},
mindevcount => $row->{mindevcount},
+ replpolicy => $row->{replpolicy},
}, $pkg);
$cl->{_loaded} = 1;
}