{"action":"created","issue":{"url":"https://api.github.com/repos/tarantool/tarantool/issues/3278","repository_url":"https://api.github.com/repos/tarantool/tarantool","labels_url":"https://api.github.com/repos/tarantool/tarantool/issues/3278/labels{/name}","comments_url":"https://api.github.com/repos/tarantool/tarantool/issues/3278/comments","events_url":"https://api.github.com/repos/tarantool/tarantool/issues/3278/events","html_url":"https://github.com/tarantool/tarantool/issues/3278","id":308231170,"number":3278,"title":"replication_connect_quorum=0 is ignored","user":{"login":"kostja","id":482910,"avatar_url":"https://avatars2.githubusercontent.com/u/482910?v=4","gravatar_id":"","url":"https://api.github.com/users/kostja","html_url":"https://github.com/kostja","followers_url":"https://api.github.com/users/kostja/followers","following_url":"https://api.github.com/users/kostja/following{/other_user}","gists_url":"https://api.github.com/users/kostja/gists{/gist_id}","starred_url":"https://api.github.com/users/kostja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kostja/subscriptions","organizations_url":"https://api.github.com/users/kostja/orgs","repos_url":"https://api.github.com/users/kostja/repos","events_url":"https://api.github.com/users/kostja/events{/privacy}","received_events_url":"https://api.github.com/users/kostja/received_events","type":"User","site_admin":false},"labels":[{"id":55629184,"url":"https://api.github.com/repos/tarantool/tarantool/labels/bug","name":"bug","color":"eb6420","default":true},{"id":264452453,"url":"https://api.github.com/repos/tarantool/tarantool/labels/replication","name":"replication","color":"009800","default":false}],"state":"open","locked":false,"assignee":{"login":"kbelyavs","id":35258272,"avatar_url":"https://avatars0.githubusercontent.com/u/35258272?v=4","gravatar_id":"","url":"https://api.github.com/users/kbelyavs","html_url":"https://github.com/kbelyavs","followers_url":"https://api.github.com/users/kbelyavs/followers","following_url":"https://api.github.com/users/kbelyavs/following{/other_user}","gists_url":"https://api.github.com/users/kbelyavs/gists{/gist_id}","starred_url":"https://api.github.com/users/kbelyavs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kbelyavs/subscriptions","organizations_url":"https://api.github.com/users/kbelyavs/orgs","repos_url":"https://api.github.com/users/kbelyavs/repos","events_url":"https://api.github.com/users/kbelyavs/events{/privacy}","received_events_url":"https://api.github.com/users/kbelyavs/received_events","type":"User","site_admin":false},"assignees":[{"login":"kbelyavs","id":35258272,"avatar_url":"https://avatars0.githubusercontent.com/u/35258272?v=4","gravatar_id":"","url":"https://api.github.com/users/kbelyavs","html_url":"https://github.com/kbelyavs","followers_url":"https://api.github.com/users/kbelyavs/followers","following_url":"https://api.github.com/users/kbelyavs/following{/other_user}","gists_url":"https://api.github.com/users/kbelyavs/gists{/gist_id}","starred_url":"https://api.github.com/users/kbelyavs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kbelyavs/subscriptions","organizations_url":"https://api.github.com/users/kbelyavs/orgs","repos_url":"https://api.github.com/users/kbelyavs/repos","events_url":"https://api.github.com/users/kbelyavs/events{/privacy}","received_events_url":"https://api.github.com/users/kbelyavs/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/tarantool/tarantool/milestones/31","html_url":"https://github.com/tarantool/tarantool/milestone/31","labels_url":"https://api.github.com/repos/tarantool/tarantool/milestones/31/labels","id":3113980,"number":31,"title":"1.9.1","description":"1.9: bug fixes only","creator":{"login":"kostja","id":482910,"avatar_url":"https://avatars2.githubusercontent.com/u/482910?v=4","gravatar_id":"","url":"https://api.github.com/users/kostja","html_url":"https://github.com/kostja","followers_url":"https://api.github.com/users/kostja/followers","following_url":"https://api.github.com/users/kostja/following{/other_user}","gists_url":"https://api.github.com/users/kostja/gists{/gist_id}","starred_url":"https://api.github.com/users/kostja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kostja/subscriptions","organizations_url":"https://api.github.com/users/kostja/orgs","repos_url":"https://api.github.com/users/kostja/repos","events_url":"https://api.github.com/users/kostja/events{/privacy}","received_events_url":"https://api.github.com/users/kostja/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":30,"state":"open","created_at":"2018-02-13T17:05:43Z","updated_at":"2018-04-16T19:52:43Z","due_on":"2018-04-30T07:00:00Z","closed_at":null},"comments":9,"created_at":"2018-03-24T05:31:28Z","updated_at":"2018-04-17T07:56:49Z","closed_at":null,"author_association":"OWNER","body":"The spec says:\r\n\r\nif box.cfg.read_only is false, the replica checks a new variable, box.cfg.replication_connect_quorum, which defaults to the number of entries in box.cfg.replication, and specifies the number of peers the replica should be in sync with to enter read-write mode. If the quorum is reached, the mode is read-write. Otherwise the mode is read-only. The new, forced read-only mode can be changed only by changing box.cfg.replication or box.cfg.replication_connect_quorum.\r\n```\r\n % ./tarantool\r\nTarantool 1.10.0-34-g1c3eb95\r\ntype 'help' for interactive help\r\ntarantool> box.cfg{replication = { '127.0.0.1:3302' },replication_connect_quorum = 0,replication_timeout = 1,read_only = false,}\r\n...\r\n2018-03-24 08:25:22.664 [14434] main/101/interactive I> recovery start\r\n2018-03-24 08:25:22.664 [14434] main/101/interactive I> recovering from `./00000000000000000000.snap'\r\n2018-03-24 08:25:22.684 [14434] main/105/applier/127.0.0.1:3302 I> can't connect to master\r\n2018-03-24 08:25:22.684 [14434] main/105/applier/127.0.0.1:3302 coio.cc:104 !> SystemError connect, called on fd 13, aka 127.0.0.1:33314: Connection refused\r\n2018-03-24 08:25:22.684 [14434] main/105/applier/127.0.0.1:3302 I> will retry every 1.00 second\r\n2018-03-24 08:25:26.685 [14434] main/101/interactive I> ready to accept requests\r\n2018-03-24 08:25:26.685 [14434] main/109/checkpoint_daemon I> started\r\n2018-03-24 08:25:26.685 [14434] main/109/checkpoint_daemon I> scheduled the next snapshot at Sat Mar 24 10:14:06 2018\r\n---\r\n...\r\ntarantool> box.info.status\r\n---\r\n- orphan\r\n...\r\n```\r\n**What should happen**:\r\n\r\nIf replication_connect_quorum is 0, we should enter read-write mode.\r\nPlease also check that replication_connect_quorum properly accounts self: if self is present in replication list, it should be accounted, otherwise (as in the test case above, not). For example, for the test case above, the behavior exhibited should only be present when replication_connect_quorum=1 "},"comment":{"url":"https://api.github.com/repos/tarantool/tarantool/issues/comments/381887057","html_url":"https://github.com/tarantool/tarantool/issues/3278#issuecomment-381887057","issue_url":"https://api.github.com/repos/tarantool/tarantool/issues/3278","id":381887057,"user":{"login":"kbelyavs","id":35258272,"avatar_url":"https://avatars0.githubusercontent.com/u/35258272?v=4","gravatar_id":"","url":"https://api.github.com/users/kbelyavs","html_url":"https://github.com/kbelyavs","followers_url":"https://api.github.com/users/kbelyavs/followers","following_url":"https://api.github.com/users/kbelyavs/following{/other_user}","gists_url":"https://api.github.com/users/kbelyavs/gists{/gist_id}","starred_url":"https://api.github.com/users/kbelyavs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kbelyavs/subscriptions","organizations_url":"https://api.github.com/users/kbelyavs/orgs","repos_url":"https://api.github.com/users/kbelyavs/repos","events_url":"https://api.github.com/users/kbelyavs/events{/privacy}","received_events_url":"https://api.github.com/users/kbelyavs/received_events","type":"User","site_admin":false},"created_at":"2018-04-17T07:56:49Z","updated_at":"2018-04-17T07:56:49Z","author_association":"CONTRIBUTOR","body":"Moreover, this \"fix\" breaks master-slave. Here is the simple test case:\r\n@Gerold103 second is true, investigating."}}
{"actor":{"display_login":"kbelyavs"}}