{"action":"created","issue":{"url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/issues/74","labels_url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/issues/74/labels{/name}","comments_url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/issues/74/comments","events_url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/issues/74/events","html_url":"https://github.com/JoinMarket-Org/joinmarket/issues/74","id":119795772,"number":74,"title":"Gracefully recover when utxo already spent","user":{"login":"AdamISZ","id":4278257,"avatar_url":"https://avatars.githubusercontent.com/u/4278257?v=3","gravatar_id":"","url":"https://api.github.com/users/AdamISZ","html_url":"https://github.com/AdamISZ","followers_url":"https://api.github.com/users/AdamISZ/followers","following_url":"https://api.github.com/users/AdamISZ/following{/other_user}","gists_url":"https://api.github.com/users/AdamISZ/gists{/gist_id}","starred_url":"https://api.github.com/users/AdamISZ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AdamISZ/subscriptions","organizations_url":"https://api.github.com/users/AdamISZ/orgs","repos_url":"https://api.github.com/users/AdamISZ/repos","events_url":"https://api.github.com/users/AdamISZ/events{/privacy}","received_events_url":"https://api.github.com/users/AdamISZ/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/labels/Easy%20/%20Quick","name":"Easy / Quick","color":"bfe5bf"},{"url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/labels/imported","name":"imported","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-01T20:02:03Z","updated_at":"2015-12-01T20:02:08Z","closed_at":null,"body":"<a href=\"https://github.com/chris-belcher\"><img src=\"https://avatars.githubusercontent.com/u/8398185?v=3\" align=\"left\" width=\"96\" height=\"96\" hspace=\"10\"></img></a> **Issue by [chris-belcher](https://github.com/chris-belcher)**\n_Thursday May 14, 2015 at 23:23 GMT # Sample: Friday Sep 13, 2013 at 22:58 GMT_\n_Originally opened as https://github.com/chris-belcher/joinmarket/issues/74_\n\n----\n\nI came across a situation just now which caused a yield generator to crash.\r\n\r\nThe yieldgen Y had a deal done with a taker A, after Y had sent the signature but before A broadcast the tx, a second taker B started a coinjoin deal with Y.\r\n\r\nMeanwhile A had broadcast the tx and the bitcoin core updated it's chain state\r\n\r\nThen when Y went to do a sanity check, it saw the utxo was already spent, and paniced and quit.\r\n\r\nThe sanity checking code is here https://github.com/chris-belcher/joinmarket/blob/master/lib/maker.py#L44\r\n\r\nWhat the bot should actually do is gracefully remove the spent utxo from its internal wallet and call oid_to_order() again. If not possible to fill the order it should send back an error and take the reputation hit as in https://github.com/chris-belcher/joinmarket/issues/57 . This means sending back an error in the early stages of the deal should be punished less harshly than timing out with no messages in the later stages.\r\n\r\nNote: the other sanity checking code that checks the utxos are labelled with the correct value, should remain.\n"},"comment":{"url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/issues/comments/161079403","html_url":"https://github.com/JoinMarket-Org/joinmarket/issues/74#issuecomment-161079403","issue_url":"https://api.github.com/repos/JoinMarket-Org/joinmarket/issues/74","id":161079403,"user":{"login":"AdamISZ","id":4278257,"avatar_url":"https://avatars.githubusercontent.com/u/4278257?v=3","gravatar_id":"","url":"https://api.github.com/users/AdamISZ","html_url":"https://github.com/AdamISZ","followers_url":"https://api.github.com/users/AdamISZ/followers","following_url":"https://api.github.com/users/AdamISZ/following{/other_user}","gists_url":"https://api.github.com/users/AdamISZ/gists{/gist_id}","starred_url":"https://api.github.com/users/AdamISZ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AdamISZ/subscriptions","organizations_url":"https://api.github.com/users/AdamISZ/orgs","repos_url":"https://api.github.com/users/AdamISZ/repos","events_url":"https://api.github.com/users/AdamISZ/events{/privacy}","received_events_url":"https://api.github.com/users/AdamISZ/received_events","type":"User","site_admin":false},"created_at":"2015-12-01T20:02:08Z","updated_at":"2015-12-01T20:02:08Z","body":"<a href=\"https://github.com/chris-belcher\"><img src=\"https://avatars.githubusercontent.com/u/8398185?v=3\" align=\"left\" width=\"48\" height=\"48\" hspace=\"10\"></img></a> **Comment by [chris-belcher](https://github.com/chris-belcher)**\n_Friday May 15, 2015 at 02:05 GMT # Sample: Friday Sep 13, 2013 at 22:58 GMT_\n\n----\n\nthis crash was probably caused by this issue https://github.com/chris-belcher/joinmarket/issues/69 if @domob1812 still had the log file we could make sure.\n"}}