Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

Commit 22896ba

Browse files
Vespiandrewkerrigan
authored andcommitted
loadWrap method should not assume "Leader" field presence in reply
1 parent cda2427 commit 22896ba

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

records/generator.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ func (rg *RecordGenerator) findMaster(masters ...string) (state.State, error) {
199199

200200
// Check if ZK leader is correct
201201
if leader != "" {
202-
logging.VeryVerbose.Println("The leader is: ", leader)
202+
logging.VeryVerbose.Println("Zookeeper says, the leader is: ", leader)
203203
ip, port, err := getProto(leader)
204204
if err != nil {
205205
logging.Error.Println(err)
@@ -284,12 +284,21 @@ func (rg *RecordGenerator) loadWrap(ip, port string) (state.State, error) {
284284
if err != nil {
285285
return state.State{}, err
286286
}
287-
if rip := leaderIP(sj.Leader); rip != ip {
288-
logging.VeryVerbose.Println("Warning: master changed to " + ip)
289-
sj, err = rg.loadFromMaster(rip, port)
290-
return sj, err
287+
if sj.Leader != "" {
288+
// FIXME(prozlach): Still, we are assuming that sj.Leader is a correct
289+
// host string...
290+
rip := leaderIP(sj.Leader)
291+
if rip != ip {
292+
logging.VeryVerbose.Println("Warning: master changed to " + ip)
293+
sj, err = rg.loadFromMaster(rip, port)
294+
return sj, err
295+
}
296+
return sj, nil
291297
}
292-
return sj, nil
298+
msg := "Fetched state.json does not contain leader information"
299+
logging.Error.Println(msg)
300+
err = errors.New(msg)
301+
return sj, err
293302
}
294303

295304
// hashes a given name using a truncated sha1 hash

0 commit comments

Comments
 (0)