I can't get this particular test to pass. I'm running it on a Mac, if that makes any difference. Test output is below.
From what I can tell, it looks like that state changes from
ZookeeperMasterMonitor.UNKNOWN_MASTER_INSTANCE
to
MasterInstance{instanceId='', ipAddress='', status=MasterStatus{state=Starting, reasonCode='', reasonMessage='', timestamp=0}
to
MasterInstance{instanceId='selfId', ipAddress='1.2.3.4', status=MasterStatus{state=Inactive, reasonCode='test', reasonMessage='Initial MasterInstance version', timestamp=0}
For whatever reason, the test is picking up the middle state. I can't tell from examination whether it's the test that should be more resilient, or if the middle empty state itself is the bug.
com.netflix.titus.ext.zookeeper.supervisor.ZookeeperMasterMonitorTest.testLocalMasterInstanceUpdates failed, output:
2018-10-25 12:59:39 INFO ZookeeperMasterMonitor:161 - The ZK master monitor is started
2018-10-25 12:59:39 INFO ZookeeperMasterMonitor:226 - New master retrieved: MasterDescription{hostname=grixis, hostIP=127.0.0.1, apiPort=0, apiStatusUri=http://myFakeStatusURI, createTime=1540497579627}
2018-10-25 12:59:39 INFO PrepRequestProcessor:645 - Got user-level KeeperException when processing sessionid:0x166accf9e120001 type:create cxid:0x21 zxid:0x8 txntype:-1 reqpath:n/a Error Path:/master/allMasters Error:KeeperErrorCode = NoNode for /master/allMasters
2018-10-25 12:59:39 INFO ZookeeperMasterMonitor:265 - Detected change in TitusMaster state and/or topology: [MasterInstance{instanceId='', ipAddress='', status=MasterStatus{state=Starting, reasonCode='', reasonMessage='', timestamp=0}, statusHistory=[]}]
2018-10-25 12:59:39 INFO ZookeeperMasterMonitor:196 - Updated own MasterInstance state to: MasterInstance{instanceId='selfId', ipAddress='1.2.3.4', status=MasterStatus{state=Inactive, reasonCode='test', reasonMessage='Initial MasterInstance version', timestamp=0}, statusHistory=[]}
2018-10-25 12:59:39 INFO ZookeeperMasterMonitor:265 - Detected change in TitusMaster state and/or topology: [MasterInstance{instanceId='selfId', ipAddress='1.2.3.4', status=MasterStatus{state=Inactive, reasonCode='test', reasonMessage='Initial MasterInstance version', timestamp=0}, statusHistory=[]}]
2018-10-25 12:59:39 INFO ZookeeperMasterMonitor:171 - ZK master monitor is shut down
com.netflix.titus.ext.zookeeper.supervisor.ZookeeperMasterMonitorTest > testLocalMasterInstanceUpdates FAILED
java.lang.AssertionError:
Expecting:
<[MasterInstance{instanceId='', ipAddress='', status=MasterStatus{state=Starting, reasonCode='', reasonMessage='', timestamp=0}, statusHistory=[]}]>
to contain:
<[MasterInstance{instanceId='selfId', ipAddress='1.2.3.4', status=MasterStatus{state=Inactive, reasonCode='test', reasonMessage='Initial MasterInstance version', timestamp=0}, statusHistory=[]}]>
but could not find:
<[MasterInstance{instanceId='selfId', ipAddress='1.2.3.4', status=MasterStatus{state=Inactive, reasonCode='test', reasonMessage='Initial MasterInstance version', timestamp=0}, statusHistory=[]}]>
at com.netflix.titus.ext.zookeeper.supervisor.ZookeeperMasterMonitorTest.testLocalMasterInstanceUpdates(ZookeeperMasterMonitorTest.java:120)
com.netflix.titus.ext.zookeeper.supervisor.ZookeeperMasterMonitorTest STANDARD_OUT
2018-10-25 12:59:39 INFO CuratorFrameworkImpl:821 - backgroundOperationsLoop exiting
2018-10-25 12:59:39 INFO PrepRequestProcessor:494 - Processed session termination for sessionid: 0x166accf9e120001
2018-10-25 12:59:39 INFO ClientCnxn:512 - EventThread shut down
2018-10-25 12:59:39 INFO ZooKeeper:684 - Session: 0x166accf9e120001 closed
2018-10-25 12:59:39 INFO NIOServerCnxn:1007 - Closed socket connection for client /127.0.0.1:59580 which had sessionid 0x166accf9e120001
2018-10-25 12:59:39 INFO ZookeeperServer:158 - Shutting down ZkServer...
2018-10-25 12:59:39 INFO ZkEventThread:82 - Terminate ZkClient event thread.
2018-10-25 12:59:39 INFO PrepRequestProcessor:494 - Processed session termination for sessionid: 0x166accf9e120000
2018-10-25 12:59:39 INFO ClientCnxn:512 - EventThread shut down
2018-10-25 12:59:39 INFO NIOServerCnxn:1007 - Closed socket connection for client /127.0.0.1:59579 which had sessionid 0x166accf9e120000
2018-10-25 12:59:39 INFO ZooKeeper:684 - Session: 0x166accf9e120000 closed
2018-10-25 12:59:39 INFO NIOServerCnxnFactory:224 - NIOServerCnxn factory exited run method
2018-10-25 12:59:39 INFO ZooKeeperServer:441 - shutting down
2018-10-25 12:59:39 INFO SessionTrackerImpl:225 - Shutting down
2018-10-25 12:59:39 INFO PrepRequestProcessor:761 - Shutting down
2018-10-25 12:59:39 INFO SyncRequestProcessor:209 - Shutting down
2018-10-25 12:59:39 INFO PrepRequestProcessor:143 - PrepRequestProcessor exited loop!
2018-10-25 12:59:39 INFO SyncRequestProcessor:187 - SyncRequestProcessor exited!
2018-10-25 12:59:39 INFO FinalRequestProcessor:415 - shutdown of request processor complete
2018-10-25 12:59:39 INFO ZooKeeperServer:441 - shutting down
2018-10-25 12:59:39 INFO SessionTrackerImpl:225 - Shutting down
2018-10-25 12:59:39 INFO PrepRequestProcessor:761 - Shutting down
2018-10-25 12:59:39 INFO SyncRequestProcessor:209 - Shutting down
2018-10-25 12:59:39 INFO FinalRequestProcessor:415 - shutdown of request processor complete
2018-10-25 12:59:39 INFO ZookeeperServer:177 - Shutting down ZkServer...done