Skip to content

Commit

Permalink
Merge pull request #104 from 9corp/dselans/leader-election-bug
Browse files Browse the repository at this point in the history
Dselans/leader election bug
  • Loading branch information
dselans authored Mar 4, 2017
2 parents 60db736 + 9e939b0 commit ac8aedd
Show file tree
Hide file tree
Showing 5 changed files with 278 additions and 34 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,10 @@ build/linux: clean/linux build/ui ## Build for linux (save to OUTPUT_DIR/BIN)
build/darwin: clean/darwin build/ui ## Build for darwin (save to OUTPUT_DIR/BIN)
GOOS=darwin go build -a -installsuffix cgo -ldflags "-X main.version=$(RELEASE_VER)" -o $(OUTPUT_DIR)/$(BIN)-darwin .

build/docker: clean/linux build/ui build/linux ## Build docker image
build/docker: build/linux ## Build docker image
docker build -t "9volt:$(RELEASE_VER)" .

build/docker-compose: clean/linux build/ui build/linux ## Build and start 9volt (and etcd) using docker-compose
build/docker-compose: build/linux ## Build and start 9volt (and etcd) using docker-compose
docker-compose up -d

build/docs: ## Build markdown docs from swagger comments
Expand Down
2 changes: 1 addition & 1 deletion cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ func (c *Cluster) handleState(directorJSON *DirectorJSON) error {
if !c.amDirector() {
log.Infof("%v-directorMonitor: Not a director, but etcd says we are (updating state)!",
c.Identifier)
return c.changeState(START, nil, NOOP)
return c.changeState(START, directorJSON, UPDATE) // update so we can compareAndSwap
}
}

Expand Down
16 changes: 9 additions & 7 deletions dal/dalfakes/fake_idal.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,12 +141,13 @@ type FakeIDal struct {
clearCheckReferencesReturns struct {
result1 error
}
FetchAllMemberRefsStub func() (map[string]string, error)
FetchAllMemberRefsStub func() (map[string]string, []string, error)
fetchAllMemberRefsMutex sync.RWMutex
fetchAllMemberRefsArgsForCall []struct{}
fetchAllMemberRefsReturns struct {
result1 map[string]string
result2 error
result2 []string
result3 error
}
FetchCheckStatsStub func() (map[string]int, error)
fetchCheckStatsMutex sync.RWMutex
Expand Down Expand Up @@ -719,7 +720,7 @@ func (fake *FakeIDal) ClearCheckReferencesReturns(result1 error) {
}{result1}
}

func (fake *FakeIDal) FetchAllMemberRefs() (map[string]string, error) {
func (fake *FakeIDal) FetchAllMemberRefs() (map[string]string, []string, error) {
fake.fetchAllMemberRefsMutex.Lock()
fake.fetchAllMemberRefsArgsForCall = append(fake.fetchAllMemberRefsArgsForCall, struct{}{})
fake.guard("FetchAllMemberRefs")
Expand All @@ -728,7 +729,7 @@ func (fake *FakeIDal) FetchAllMemberRefs() (map[string]string, error) {
if fake.FetchAllMemberRefsStub != nil {
return fake.FetchAllMemberRefsStub()
} else {
return fake.fetchAllMemberRefsReturns.result1, fake.fetchAllMemberRefsReturns.result2
return fake.fetchAllMemberRefsReturns.result1, fake.fetchAllMemberRefsReturns.result2, fake.fetchAllMemberRefsReturns.result3
}
}

Expand All @@ -738,12 +739,13 @@ func (fake *FakeIDal) FetchAllMemberRefsCallCount() int {
return len(fake.fetchAllMemberRefsArgsForCall)
}

func (fake *FakeIDal) FetchAllMemberRefsReturns(result1 map[string]string, result2 error) {
func (fake *FakeIDal) FetchAllMemberRefsReturns(result1 map[string]string, result2 []string, result3 error) {
fake.FetchAllMemberRefsStub = nil
fake.fetchAllMemberRefsReturns = struct {
result1 map[string]string
result2 error
}{result1, result2}
result2 []string
result3 error
}{result1, result2, result3}
}

func (fake *FakeIDal) FetchCheckStats() (map[string]int, error) {
Expand Down
38 changes: 25 additions & 13 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,38 @@
version: '2'
services:
9volt:
9volt1:
depends_on:
- etcd
image: 9corp/9volt:latest
ports:
- "8080:8080"
- "8081:8080"
links:
- etcd
environment:
- NINEV_ETCD_MEMBERS=http://etcd:2379
9volt2:
depends_on:
- etcd
image: 9corp/9volt:latest
ports:
- "8181:8181"
links:
- etcd
environment:
- NINEV_ETCD_MEMBERS=http://etcd:2379
- NINEV_LISTEN_ADDRESS=:8181
- NINEV_DEBUG=true
# 9volt2:
# depends_on:
# - etcd
# image: 9corp/9volt:latest
# ports:
# - "8082:8080"
# links:
# - etcd
# environment:
# - NINEV_ETCD_MEMBERS=http://etcd:2379
# - NINEV_DEBUG=true
# 9volt3:
# depends_on:
# - etcd
# image: 9corp/9volt:latest
# ports:
# - "8083:8080"
# links:
# - etcd
# environment:
# - NINEV_ETCD_MEMBERS=http://etcd:2379
# - NINEV_DEBUG=true
etcd:
image: quay.io/coreos/etcd:v3.1.2
ports:
Expand Down
Loading

0 comments on commit ac8aedd

Please sign in to comment.