replica.wait_lsn(master_id, master.get_lsn(master_id)) replica.admin('box.info.server.id ~= %d' % replica_id) # Backward-compatibility: box.info.server.lsn is -1 instead of nil replica.admin('box.info.server.lsn == -1') replica.admin('box.info.vclock[%d] == 0' % replica_id2) print '-------------------------------------------------------------' print 'JOIN replica to read-only master' print '-------------------------------------------------------------' #gh-1230 Assertion vclock_has on attempt to JOIN read-only master failed = TarantoolServer(server.ini) failed.script = 'replication-py/failed.lua' failed.vardir = server.vardir failed.rpl_master = replica failed.name = "failed" try: failed.deploy() except Exception as e: line = "ER_READONLY" if failed.logfile_pos.seek_once(line) >= 0: print "'%s' exists in server log" % line print '-------------------------------------------------------------' print 'Sync master with replica' print '-------------------------------------------------------------' # Sync master with replica replication_source = yaml.load(replica.admin('box.cfg.listen', silent=True))[0] sys.stdout.push_filter(replication_source, '<replication_source>') master.admin("box.cfg{ replication_source = '%s' }" % replication_source)
replica.stop() replica.cleanup(True) print '-------------------------------------------------------------' print 'JOIN replica to read-only master' print '-------------------------------------------------------------' # master server master = server master.admin('box.cfg { read_only = true }') #gh-1230 Assertion vclock_has on attempt to JOIN read-only master failed = TarantoolServer(server.ini) failed.script = 'replication-py/failed.lua' failed.vardir = server.vardir failed.rpl_master = master failed.name = "failed" failed.crash_expected = True try: failed.deploy() except Exception as e: line = "ER_READONLY" if failed.logfile_pos.seek_once(line) >= 0: print "'%s' exists in server log" % line master.admin('box.cfg { read_only = false }') print '-------------------------------------------------------------' print 'JOIN replica with different replica set UUID' print '-------------------------------------------------------------' failed = TarantoolServer(server.ini)
replica.admin('box.info.server.id ~= %d' % replica_id) replica.admin('box.info.server.ro') # Backward-compatibility: box.info.server.lsn is -1 instead of nil replica.admin('box.info.server.lsn == -1') replica.admin('box.info.vclock[%d] == 0' % replica_id2) print '-------------------------------------------------------------' print 'JOIN replica to read-only master' print '-------------------------------------------------------------' #gh-1230 Assertion vclock_has on attempt to JOIN read-only master failed = TarantoolServer(server.ini) failed.script = 'replication-py/failed.lua' failed.vardir = server.vardir failed.rpl_master = replica failed.name = "failed" try: failed.deploy() except Exception as e: line = "ER_READONLY" if failed.logfile_pos.seek_once(line) >= 0: print "'%s' exists in server log" % line print '-------------------------------------------------------------' print 'Sync master with replica' print '-------------------------------------------------------------' # Sync master with replica replication_source = yaml.load(replica.admin('box.cfg.listen', silent = True))[0] sys.stdout.push_filter(replication_source, '<replication_source>') master.admin("box.cfg{ replication_source = '%s' }" % replication_source)
replica.cleanup() master.admin('box.space._cluster:delete{%d} ~= nil' % replica_id) print '-------------------------------------------------------------' print 'JOIN replica to read-only master' print '-------------------------------------------------------------' # master server master = server master.admin('box.cfg { read_only = true }') #gh-1230 Assertion vclock_has on attempt to JOIN read-only master failed = TarantoolServer(server.ini) failed.script = 'replication-py/failed.lua' failed.vardir = server.vardir failed.rpl_master = master failed.name = "failed" failed.crash_expected = True try: failed.deploy() except Exception as e: line = "ER_READONLY" if failed.logfile_pos.seek_once(line) >= 0: print "'%s' exists in server log" % line master.admin('box.cfg { read_only = false }') print '-------------------------------------------------------------' print 'JOIN replica with different replica set UUID' print '-------------------------------------------------------------' failed = TarantoolServer(server.ini)