This commit is contained in:
@@ -319,16 +319,23 @@ func (p *SyncedPool) RequestOwnership(id CartId) error {
|
|||||||
ok++
|
ok++
|
||||||
}
|
}
|
||||||
if ok == 0 && all > 0 {
|
if ok == 0 && all > 0 {
|
||||||
delete(p.local.grains, id)
|
p.removeLocalGrain(id)
|
||||||
return fmt.Errorf("no remotes confirmed change")
|
return fmt.Errorf("no remotes confirmed change")
|
||||||
}
|
}
|
||||||
if ok < (all / 2) {
|
if (all < 3 && ok < all) || ok < (all/2) {
|
||||||
delete(p.local.grains, id)
|
p.removeLocalGrain(id)
|
||||||
return fmt.Errorf("quorum not reached")
|
return fmt.Errorf("quorum not reached")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *SyncedPool) removeLocalGrain(id CartId) {
|
||||||
|
p.mu.Lock()
|
||||||
|
defer p.mu.Unlock()
|
||||||
|
delete(p.local.grains, id)
|
||||||
|
delete(p.remoteIndex, id)
|
||||||
|
}
|
||||||
|
|
||||||
func (p *SyncedPool) addRemoteHost(address string, remote *RemoteHost) error {
|
func (p *SyncedPool) addRemoteHost(address string, remote *RemoteHost) error {
|
||||||
known := make([]string, 0, len(p.remotes))
|
known := make([]string, 0, len(p.remotes))
|
||||||
for _, r := range p.remotes {
|
for _, r := range p.remotes {
|
||||||
|
|||||||
Reference in New Issue
Block a user