Changeset 27103
- Timestamp:
- Feb 26, 2010, 11:01:34 AM (16 years ago)
- Location:
- trunk/Nebulous-Server
- Files:
-
- 2 edited
-
bin/nebdiskd (modified) (5 diffs)
-
lib/Nebulous/Server.pm (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/bin/nebdiskd
r26380 r27103 69 69 # stuff to controll failures. 70 70 my %host_failure_counts = (); 71 my %host_removed = (); 71 72 my $failure_limit = 5; 72 73 … … 96 97 # start up logging 97 98 my $conf = ' 98 log4perl.category.nebdiskd = WARN, Screen, SERVERLOGFILE , Mailer99 log4perl.category.nebdiskd = WARN, Screen, SERVERLOGFILE 99 100 100 101 log4perl.appender.Screen = Log::Log4perl::Appender::Screen … … 113 114 log4perl.filter.MatchWarn.AcceptOnMatch = off 114 115 115 log4perl.appender.Mailer = Log::Dispatch::Email::MailSend116 log4perl.appender.Mailer.to = ps-ipp-ops@ifa.hawaii.edu117 log4perl.appender.Mailer.subject = nebdiskd alert118 log4perl.appender.Mailer.buffered = 0119 log4perl.appender.Mailer.Filter= MatchWarn120 log4perl.appender.Mailer.layout = Log::Log4perl::Layout::PatternLayout121 log4perl.appender.Mailer.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} | %H | %p | %M - %m%n122 123 116 log4perl.appender.Limiter = Log::Log4perl::Appender::Limit 124 117 log4perl.appender.Limiter.appender = Mailer 125 118 log4perl.appender.Limiter.block_period = 300 126 119 '; 120 # I've removed this bit. 121 # log4perl.appender.Mailer = Log::Dispatch::Email::MailSend 122 # log4perl.appender.Mailer.to = ps-ipp-ops@ifa.hawaii.edu 123 # log4perl.appender.Mailer.subject = nebdiskd alert 124 # log4perl.appender.Mailer.buffered = 0 125 # log4perl.appender.Mailer.Filter= MatchWarn 126 # log4perl.appender.Mailer.layout = Log::Log4perl::Layout::PatternLayout 127 # log4perl.appender.Mailer.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} | %H | %p | %M - %m%n 128 129 127 130 Log::Log4perl::init(\$conf); 128 131 my $log = Log::Log4perl::get_logger("nebdiskd"); … … 215 218 $tries++; 216 219 unless (is_mountpoint($mountpoint)) { 217 $log->warn("$mountpoint is not a valid mountpoint ($tries)"); 220 unless(defined($host_removed{$mountpoint})) { 221 $log->warn("$mountpoint is not a valid mountpoint ($tries $host_failure_counts{$mountpoint})"); 222 } 218 223 $valid_mountpoint = 0; 219 224 } … … 226 231 } 227 232 $host_failure_counts{$mountpoint}++; 228 229 if ($host_failure_counts{$mountpoint} > $failure_limit) { 230 $log->warn("Removing $mountpoint from the mountedvol table ($host_failure_counts{$mountpoint} > $failure_limit)"); 231 $d_query->execute($mountpoint); 233 234 if (!(defined($host_removed{$mountpoint})) || !($host_removed{$mountpoint})) { 235 if (($host_failure_counts{$mountpoint} > $failure_limit)) { 236 $host_removed{$mountpoint} = 1; 237 $log->warn("Removing $mountpoint from the mountedvol table ($host_failure_counts{$mountpoint} > $failure_limit) No further warnings unless state changes."); 238 $d_query->execute($mountpoint); 239 } 240 else { 241 $log->warn("Mountpoint $mountpoint has had $host_failure_counts{$mountpoint} failures. Will remove after $failure_limit"); 242 } 232 243 } 233 else { 234 $log->warn("Mountpoint $mountpoint has had $host_failure_counts{$mountpoint} failures. Will remove after $failure_limit"); 235 } 236 next; 237 } 244 next; 245 246 } 238 247 if ($host_failure_counts{$mountpoint} != 0) { 248 $host_removed{$mountpoint} = 0; 239 249 $log->warn("Mountpoint $mountpoint failures cleared ($host_failure_counts{$mountpoint})"); 240 250 $host_failure_counts{$mountpoint} = 0; -
trunk/Nebulous-Server/lib/Nebulous/Server.pm
r26294 r27103 41 41 # This determines how many entries from the list of volumes sorted by free space are randomized. 42 42 my $topfew_count = 15; 43 43 my $max_used_space = 0.98 44 44 # transaction restart/retry regex 45 45 my $trans_regex = qr/Deadlock Found|Lock wait timeout exceeded|try restarting transaction|Can't connect to MySQL server/i; … … 1606 1606 $log->debug("entered - @_"); 1607 1607 1608 my ($key, $vol_name ) = validate_pos(@_,1608 my ($key, $vol_name, $find_invalid) = validate_pos(@_, 1609 1609 { 1610 1610 type => SCALAR, … … 1624 1624 optional => 1, 1625 1625 }, 1626 { 1627 # find_invalid 1628 type => SCALAR|UNDEF, 1629 optional => 1, 1630 }, 1626 1631 ); 1627 1632 … … 1667 1672 } else { 1668 1673 $query = $db->prepare_cached( $sql->get_object_instances ); 1674 my $rows; 1669 1675 # ext_id, available 1670 my $rows = $query->execute($key->path, 1); 1676 if (defined($find_invalid)) { 1677 $rows = $query->execute($key->path, 0); 1678 } 1679 else { 1680 $rows = $query->execute($key->path, 1); 1681 } 1671 1682 unless ($rows > 0) { 1672 1683 $query->finish; … … 2108 2119 $query = $db->prepare_cached( $sql->get_storage_volume_by_name ); 2109 2120 # %free, name, avaiable, allocate 2110 $rows = $query->execute( 0.95, $name, 1, 1);2121 $rows = $query->execute($max_used_space, $name, 1, 1); 2111 2122 # XXX destinguish between non-existant and unavailable 2112 2123 unless ($rows > 0) { … … 2129 2140 $query = $db->prepare_cached( $sql->get_storage_volume ); 2130 2141 # %free, avaiable, allocate 2131 $rows = $query->execute( 0.95, 1, 1, $topfew_count);2142 $rows = $query->execute($max_used_space, 1, 1, $topfew_count); 2132 2143 # $log->warn("Storage_volume: $rows $topfew_count"); 2133 2144 # there has to be atleast one storage volume … … 2201 2212 $query = $db->prepare_cached( $sql->get_replication_volume_for_ext_id ); 2202 2213 # ext_id, %free, avaiable, allocate 2203 $rows = $query->execute($key->path, 0.95, 1, 1, $forbidden_cabinet, $topfew_count);2214 $rows = $query->execute($key->path, $max_used_space, 1, 1, $forbidden_cabinet, $topfew_count); 2204 2215 # XXX destinguish between non-existant and unaviable 2205 2216 unless ($rows > 0) {
Note:
See TracChangeset
for help on using the changeset viewer.
