{"action":"created","issue":{"url":"https://api.github.com/repos/adjoint-io/raft/issues/41","repository_url":"https://api.github.com/repos/adjoint-io/raft","labels_url":"https://api.github.com/repos/adjoint-io/raft/issues/41/labels{/name}","comments_url":"https://api.github.com/repos/adjoint-io/raft/issues/41/comments","events_url":"https://api.github.com/repos/adjoint-io/raft/issues/41/events","html_url":"https://github.com/adjoint-io/raft/issues/41","id":383303274,"node_id":"MDU6SXNzdWUzODMzMDMyNzQ=","number":41,"title":"Stale reads?","user":{"login":"stevana","id":5664010,"node_id":"MDQ6VXNlcjU2NjQwMTA=","avatar_url":"https://avatars3.githubusercontent.com/u/5664010?v=4","gravatar_id":"","url":"https://api.github.com/users/stevana","html_url":"https://github.com/stevana","followers_url":"https://api.github.com/users/stevana/followers","following_url":"https://api.github.com/users/stevana/following{/other_user}","gists_url":"https://api.github.com/users/stevana/gists{/gist_id}","starred_url":"https://api.github.com/users/stevana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevana/subscriptions","organizations_url":"https://api.github.com/users/stevana/orgs","repos_url":"https://api.github.com/users/stevana/repos","events_url":"https://api.github.com/users/stevana/events{/privacy}","received_events_url":"https://api.github.com/users/stevana/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-11-21T21:46:52Z","updated_at":"2018-11-28T09:54:51Z","closed_at":null,"author_association":"NONE","body":"Hi,\r\n\r\nI've been playing around with the example from your README and I found something that surprises me.\r\n\r\nBasically, when I do the following steps:\r\n\r\n1. Start node 1\r\n2. Start node 2\r\n3. Start node 3\r\n4. Start client\r\n5. Add all nodes in client\r\n6. set x 8 in client\r\n7. incr x in client\r\n8. Kill and restart one of the nodes\r\n9. read in client\r\n\r\nThen sometimes I get back that the value of `x` is 8, which seems wrong? \r\n\r\nI've not been able to reproduce it manually using terminals as described in the README, but rather using some tests that I [wrote](https://github.com/adjoint-io/raft/compare/master...stevana:test/quickcheck-state-machine) (running `stack test --test-arguments=\"-p test1\"` a couple of times should reproduce it)."},"comment":{"url":"https://api.github.com/repos/adjoint-io/raft/issues/comments/442387306","html_url":"https://github.com/adjoint-io/raft/issues/41#issuecomment-442387306","issue_url":"https://api.github.com/repos/adjoint-io/raft/issues/41","id":442387306,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MjM4NzMwNg==","user":{"login":"stevana","id":5664010,"node_id":"MDQ6VXNlcjU2NjQwMTA=","avatar_url":"https://avatars3.githubusercontent.com/u/5664010?v=4","gravatar_id":"","url":"https://api.github.com/users/stevana","html_url":"https://github.com/stevana","followers_url":"https://api.github.com/users/stevana/followers","following_url":"https://api.github.com/users/stevana/following{/other_user}","gists_url":"https://api.github.com/users/stevana/gists{/gist_id}","starred_url":"https://api.github.com/users/stevana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevana/subscriptions","organizations_url":"https://api.github.com/users/stevana/orgs","repos_url":"https://api.github.com/users/stevana/repos","events_url":"https://api.github.com/users/stevana/events{/privacy}","received_events_url":"https://api.github.com/users/stevana/received_events","type":"User","site_admin":false},"created_at":"2018-11-28T09:54:51Z","updated_at":"2018-11-28T09:54:51Z","author_association":"NONE","body":">  What is your interpretation of the paragraph from section 5.3 that I pasted in my previous response?\r\n\r\nMy understanding is that this is an orthogonal problem. Log inconsistencies are resolved during leader election.\r\n\r\n>> Shouldn't the leader hold off responding to the client's write request until all followers have committed and applied the write to their state?\r\n\r\n> The bold bit is what I'm not sure about.\r\n\r\nHave a look at the following paragraph from the paper, the bold bit in particular:\r\n\r\n> Once a leader has been elected, it begins servicing\r\nclient requests. Each client request contains a command to\r\nbe executed by the replicated state machines. The leader\r\nappends the command to its log as a new entry, then is-\r\nsues AppendEntries RPCs in parallel to each of the other\r\nservers to replicate the entry. **When the entry has been\r\nsafely replicated (as described below), the leader applies\r\nthe entry to its state machine and returns the result of that\r\nexecution to the client**."}}
{"actor":{"display_login":"stevana"}}