Minor buglet (?) in mogtool

Gavin Brebner gavin.brebner at orange.fr
Mon Mar 24 14:11:18 UTC 2008


I've created my first test mogilefs system, and decided to start with
the simplest possible configuration - a single storage location. 
mogadm had no problems with me creating a 'single' storage class that
had only a single copy, but running mogtool to inject data into the 
file system led to an infinite loop of 

Beginning replication wait: 1
Beginning replication wait: 1
Beginning replication wait: 1
Beginning replication wait: 1

Looking at the code I see that in mogtool, method 'inject()' there's a 
section of code that is more or less like :



    while (%still_need) {
        print "Beginning replication wait: " . join(' ', sort { $a <=>
$b } keys %still_need) . "\n";
        sleep 1; # give things time to replicate some

        # now iterate over each and get the paths
        foreach my $num (keys %still_need) {
           
            <snip>

            if (scalar(@npaths) >= 2) {
                
                <snip>
                code that updates %still_need to remove entry if OK
            }
        }
    }

So, if the class has no replication, it will wait forever. If you're
prepared to accept non-replicated file classes, then this code should
be updated, otherwise mogadm should refuse to allow a non-replicated 
storage class ?

Regards,

Gavin







More information about the mogilefs mailing list