self._client.getData(ZK_CONFIG.leader_znode, function watch (event) { // Someone else is already the leader if (event.type == zk.Event.NODE_DELETED) { self.emiter.emit(Events.LEADER_CHANGED); self.claimLeadership(); } }, function (error) { if (error && error.code == zk.Exception.NO_NODE) { // Leader spot available return self.claimLeadership(); } else if (error) { return self.emiter.emit(Events.UNEXPECTED_ZK_ERROR, error); } });
it("Read no node error path", function (done) { zkClient.getData.restore(); sandbox.stub(zkClient, "getData", function(path,watch,cb) { setTimeout(function() { cb(zookeeper.Exception.create(zookeeper.Exception.NO_NODE), null, 1); }, 100); }); var scheduler = new Scheduler({tasks: { task1:{isSubmitted:true} },useZk: true, logging: {level: "debug"}, zkClient: zkClient, taskHelper: taskHelper}); scheduler.on("ready", function() { done(); }); clock.tick(100); clock.tick(100); });
_readAllOffsets(topic, partition, offsetType, cb) { const zkPath = this._getOffsetZkPath(topic, partition, offsetType); this._zookeeper.getChildren(zkPath, (err, labels) => { if (err) { if (err.getCode() === zookeeper.Exception.NO_NODE) { // no label has been published yet return cb(null, []); } this._log.error( 'error getting list of offsets from zookeeper', { topic, partition, offsetType, error: err.message, }); return cb(err); } return async.mapLimit( labels, 10, (label, done) => this._readOffset( topic, partition, offsetType, label, (err, offset) => { if (err) { return done(err); } return done(null, { label, offset }); }), cb); }); }
(err, data) => { if (err && err.getCode() !== zookeeper.Exception.NO_NODE) { this._log.error('error in getData', { zkPath: this._zkEndpoint + myPath,
cb(zookeeper.Exception.create(zookeeper.Exception.NO_NODE), null, 1); });
if (error.getCode() === zookeeper.Exception.NO_NODE) {
this._withRandomDelayIfTest( () => this._client.setData(zkPath, data, version, err => { if (err && err.getCode() !== zookeeper.Exception.NO_NODE) { this._log.error('error in setData', { zkPath: `${this._zkEndpoint}${zkPath}`,
zkClient.setData(path, data, err => { if (err) { if (err.getCode() === zookeeper.Exception.NO_NODE) { return zkClient.mkdirp(path, err => { if (err) {
this._zookeeper.getData(zkPath, (err, offsetData, offsetStat) => { if (err) { if (err.getCode() === zookeeper.Exception.NO_NODE) { this._log.debug( 'requested kafka offset node does not exist', {
this._zookeeper.getChildren(partitionsZkPath, (err, partitions) => { if (err) { if (err.getCode() === zookeeper.Exception.NO_NODE) { this._log.debug('no topic offset published yet', { topic, zkPath: partitionsZkPath,
zkClient.getData.callsArgWith(2, zookeeper.Exception.create(zookeeper.Exception.NO_NODE)); zkClient.mkdirp.callsArgWith(1, null); zkClient.setData.callsArgWith(2, null);