{"action":"created","issue":{"url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/997","repository_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode","labels_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/997/labels{/name}","comments_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/997/comments","events_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/997/events","html_url":"https://github.com/stratisproject/StratisBitcoinFullNode/issues/997","id":284874344,"node_id":"MDU6SXNzdWUyODQ4NzQzNDQ=","number":997,"title":"[Sync] Double IBD problem","user":{"login":"Aprogiena","id":30052221,"node_id":"MDQ6VXNlcjMwMDUyMjIx","avatar_url":"https://avatars0.githubusercontent.com/u/30052221?v=4","gravatar_id":"","url":"https://api.github.com/users/Aprogiena","html_url":"https://github.com/Aprogiena","followers_url":"https://api.github.com/users/Aprogiena/followers","following_url":"https://api.github.com/users/Aprogiena/following{/other_user}","gists_url":"https://api.github.com/users/Aprogiena/gists{/gist_id}","starred_url":"https://api.github.com/users/Aprogiena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aprogiena/subscriptions","organizations_url":"https://api.github.com/users/Aprogiena/orgs","repos_url":"https://api.github.com/users/Aprogiena/repos","events_url":"https://api.github.com/users/Aprogiena/events{/privacy}","received_events_url":"https://api.github.com/users/Aprogiena/received_events","type":"User","site_admin":false},"labels":[{"id":435911031,"node_id":"MDU6TGFiZWw0MzU5MTEwMzE=","url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/labels/Refactor","name":"Refactor","color":"e6e6e6","default":false},{"id":435911027,"node_id":"MDU6TGFiZWw0MzU5MTEwMjc=","url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/labels/bug","name":"bug","color":"ee0701","default":true},{"id":1026215802,"node_id":"MDU6TGFiZWwxMDI2MjE1ODAy","url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/labels/pending%20activation%20merge","name":"pending activation merge","color":"f7d07b","default":false},{"id":1027279709,"node_id":"MDU6TGFiZWwxMDI3Mjc5NzA5","url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/labels/sp","name":"sp","color":"d6197b","default":false}],"state":"closed","locked":false,"assignee":{"login":"noescape00","id":10259355,"node_id":"MDQ6VXNlcjEwMjU5MzU1","avatar_url":"https://avatars0.githubusercontent.com/u/10259355?v=4","gravatar_id":"","url":"https://api.github.com/users/noescape00","html_url":"https://github.com/noescape00","followers_url":"https://api.github.com/users/noescape00/followers","following_url":"https://api.github.com/users/noescape00/following{/other_user}","gists_url":"https://api.github.com/users/noescape00/gists{/gist_id}","starred_url":"https://api.github.com/users/noescape00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noescape00/subscriptions","organizations_url":"https://api.github.com/users/noescape00/orgs","repos_url":"https://api.github.com/users/noescape00/repos","events_url":"https://api.github.com/users/noescape00/events{/privacy}","received_events_url":"https://api.github.com/users/noescape00/received_events","type":"User","site_admin":false},"assignees":[{"login":"noescape00","id":10259355,"node_id":"MDQ6VXNlcjEwMjU5MzU1","avatar_url":"https://avatars0.githubusercontent.com/u/10259355?v=4","gravatar_id":"","url":"https://api.github.com/users/noescape00","html_url":"https://github.com/noescape00","followers_url":"https://api.github.com/users/noescape00/followers","following_url":"https://api.github.com/users/noescape00/following{/other_user}","gists_url":"https://api.github.com/users/noescape00/gists{/gist_id}","starred_url":"https://api.github.com/users/noescape00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noescape00/subscriptions","organizations_url":"https://api.github.com/users/noescape00/orgs","repos_url":"https://api.github.com/users/noescape00/repos","events_url":"https://api.github.com/users/noescape00/events{/privacy}","received_events_url":"https://api.github.com/users/noescape00/received_events","type":"User","site_admin":false},{"login":"Aprogiena","id":30052221,"node_id":"MDQ6VXNlcjMwMDUyMjIx","avatar_url":"https://avatars0.githubusercontent.com/u/30052221?v=4","gravatar_id":"","url":"https://api.github.com/users/Aprogiena","html_url":"https://github.com/Aprogiena","followers_url":"https://api.github.com/users/Aprogiena/followers","following_url":"https://api.github.com/users/Aprogiena/following{/other_user}","gists_url":"https://api.github.com/users/Aprogiena/gists{/gist_id}","starred_url":"https://api.github.com/users/Aprogiena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aprogiena/subscriptions","organizations_url":"https://api.github.com/users/Aprogiena/orgs","repos_url":"https://api.github.com/users/Aprogiena/repos","events_url":"https://api.github.com/users/Aprogiena/events{/privacy}","received_events_url":"https://api.github.com/users/Aprogiena/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2017-12-28T09:19:46Z","updated_at":"2018-09-13T14:54:55Z","closed_at":"2018-09-13T14:54:55Z","author_association":"CONTRIBUTOR","body":"Could be related to #938\r\n\r\nNode 1 is at block 1900 (consensus), Node 2 is at block 2000 (consensus), best chain height is 2100 (both nodes headers tip). \r\n\r\nNode 1 will use LookaheadBlockPuller to ask for blocks from Node 2. Node 1 will use \"getdata\" message from BlockPullerBehavior.StartDownload to ask for block 2001. Node 2 will receive this in BlockStoreBehavior where is this sequence:\r\n\r\n```\r\n                // TODO: check if we need to add support for \"not found\"\r\n                Block block = await this.blockStoreCache.GetBlockAsync(item.Hash).ConfigureAwait(false);\r\n\r\n                if (block != null)\r\n                {\r\n                    this.logger.LogTrace(\"Sending block '{0}' to peer '{1}'.\", item.Hash, peer?.RemoteSocketEndpoint);\r\n\r\n                    //TODO strip block of witness if node does not support\r\n                    await peer.SendMessageAsync(new BlockPayload(block.WithOptions(peer.SupportedTransactionOptions))).ConfigureAwait(false);\r\n                }\r\n\r\n``` \r\n\r\nThis means that if Node 2 does not have this block, it will ignore \"getdata\" message.\r\n\r\nNode 1 will have this block assigned to the Node 2 and marked as \"pending download\".\r\n\r\nIf Node 2 is the only peer that Node 1 is connected to, Node 1 is stuck and won't advance in consensus.\r\n\r\nThere are three things that should be implemented to fix this:\r\n- node 2 should be polite and not to ignore \"getdata\" message, it should reply with \"notfound\" message\r\n- node 1 should be able to understand \"notfound\" message and remove the assignment from the peer based on that\r\n- node 1 should have timeout on block download, the mechanism is there in form of quality score, but it is not used if there is only one peer connected, therefore in this case (which can be well intended setup), it is normal that node 1 will stop syncing at some point. it should eventually timeout, it could be after couple of minutes, but it should be possible"},"comment":{"url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/comments/421036724","html_url":"https://github.com/stratisproject/StratisBitcoinFullNode/issues/997#issuecomment-421036724","issue_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/997","id":421036724,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTAzNjcyNA==","user":{"login":"noescape00","id":10259355,"node_id":"MDQ6VXNlcjEwMjU5MzU1","avatar_url":"https://avatars0.githubusercontent.com/u/10259355?v=4","gravatar_id":"","url":"https://api.github.com/users/noescape00","html_url":"https://github.com/noescape00","followers_url":"https://api.github.com/users/noescape00/followers","following_url":"https://api.github.com/users/noescape00/following{/other_user}","gists_url":"https://api.github.com/users/noescape00/gists{/gist_id}","starred_url":"https://api.github.com/users/noescape00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noescape00/subscriptions","organizations_url":"https://api.github.com/users/noescape00/orgs","repos_url":"https://api.github.com/users/noescape00/repos","events_url":"https://api.github.com/users/noescape00/events{/privacy}","received_events_url":"https://api.github.com/users/noescape00/received_events","type":"User","site_admin":false},"created_at":"2018-09-13T14:54:55Z","updated_at":"2018-09-13T14:54:55Z","author_association":"CONTRIBUTOR","body":"Fixed with activation merge."}}
{"actor":{"display_login":"noescape00"}}