diff --git a/test/box-py/iproto.result b/test/box-py/iproto.result index 9f4881592b38bb586a8f26c811a9d8d7dac9a3ab..3d1111c6d0b3f92e6fd33e05e335124a40347c23 100644 --- a/test/box-py/iproto.result +++ b/test/box-py/iproto.result @@ -137,6 +137,7 @@ space2 = box.schema.create_space('test2') ... Schema changed -> error: True Got another schema_id: True +Sync ok space:drop() --- ... diff --git a/test/box-py/iproto.test.py b/test/box-py/iproto.test.py index fe1e665d7f71ce643b0e2cae12cf00a5a7515c65..d242a7fed8531fcedf6a955511563d9b8c944978 100644 --- a/test/box-py/iproto.test.py +++ b/test/box-py/iproto.test.py @@ -215,15 +215,7 @@ c = Connection('localhost', server.iproto.port) c.connect() s = c._socket -def test_request(req_header, req_body): - query_header = msgpack.dumps(req_header) - query_body = msgpack.dumps(req_body) - packet_len = len(query_header) + len(query_body) - query = msgpack.dumps(packet_len) + query_header + query_body - try: - s.send(query) - except OSError as e: - print ' => ', 'Failed to send request' +def receive_response(): resp_len = '' resp_headerbody = '' resp_header = {} @@ -243,6 +235,17 @@ def test_request(req_header, req_body): res['body'] = resp_body return res +def test_request(req_header, req_body): + query_header = msgpack.dumps(req_header) + query_body = msgpack.dumps(req_body) + packet_len = len(query_header) + len(query_body) + query = msgpack.dumps(packet_len) + query_header + query_body + try: + s.send(query) + except OSError as e: + print ' => ', 'Failed to send request' + return receive_response() + header = { IPROTO_CODE : REQUEST_TYPE_SELECT} body = { IPROTO_SPACE_ID: space_id, IPROTO_INDEX_ID: 0, @@ -277,6 +280,27 @@ resp = test_request(header, body) print 'Schema changed -> error:', resp['header'][0] != 0 print 'Got another schema_id:', resp['header'][5] != schema_id +# +# gh-2334 Lost SYNC in JOIN response. +# +uuid = '0d5bd431-7f3e-4695-a5c2-82de0a9cbc95' +header = { IPROTO_CODE: REQUEST_TYPE_JOIN, IPROTO_SYNC: 2334 } +body = { IPROTO_SERVER_UUID: uuid } +resp = test_request(header, body) +if resp['header'][IPROTO_SYNC] == 2334: + i = 1 + while i < 3: + resp = receive_response() + if resp['header'][IPROTO_SYNC] != 2334: + print 'Bad sync on response with number ', i + break + if resp['header'][IPROTO_CODE] == REQUEST_TYPE_OK: + i += 1 + else: + print 'Sync ok' +else: + print 'Bad first sync' + c.close() admin("space:drop()") diff --git a/test/box-py/replica.lua b/test/box-py/replica.lua deleted file mode 100644 index ed0ba38cc82f33afc249e4d29c4bd0abd8b1f17e..0000000000000000000000000000000000000000 --- a/test/box-py/replica.lua +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env tarantool - -box.cfg({ - listen = os.getenv("LISTEN"), - replication = os.getenv("MASTER"), - memtx_memory = 107374182, -}) - -require('console').listen(os.getenv('ADMIN'))