{"action":"created","issue":{"url":"https://api.github.com/repos/chris-belcher/joinmarket/issues/225","labels_url":"https://api.github.com/repos/chris-belcher/joinmarket/issues/225/labels{/name}","comments_url":"https://api.github.com/repos/chris-belcher/joinmarket/issues/225/comments","events_url":"https://api.github.com/repos/chris-belcher/joinmarket/issues/225/events","html_url":"https://github.com/chris-belcher/joinmarket/pull/225","id":105288297,"number":225,"title":"Crude recovery by taker from unresponsive makers","user":{"login":"chris-belcher","id":8398185,"avatar_url":"https://avatars.githubusercontent.com/u/8398185?v=3","gravatar_id":"","url":"https://api.github.com/users/chris-belcher","html_url":"https://github.com/chris-belcher","followers_url":"https://api.github.com/users/chris-belcher/followers","following_url":"https://api.github.com/users/chris-belcher/following{/other_user}","gists_url":"https://api.github.com/users/chris-belcher/gists{/gist_id}","starred_url":"https://api.github.com/users/chris-belcher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chris-belcher/subscriptions","organizations_url":"https://api.github.com/users/chris-belcher/orgs","repos_url":"https://api.github.com/users/chris-belcher/repos","events_url":"https://api.github.com/users/chris-belcher/events{/privacy}","received_events_url":"https://api.github.com/users/chris-belcher/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-08T02:26:22Z","updated_at":"2015-09-08T07:24:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/chris-belcher/joinmarket/pulls/225","html_url":"https://github.com/chris-belcher/joinmarket/pull/225","diff_url":"https://github.com/chris-belcher/joinmarket/pull/225.diff","patch_url":"https://github.com/chris-belcher/joinmarket/pull/225.patch"},"body":"Implemented changes suggested in #166\r\n\r\nA new thread is started for each CoinJoinTX object, there is a threading condition lock which passes notifications between the two threads. Currently the timeout for maker non-reply is 10 seconds.\r\n\r\nIf a maker doesn't reply, it will be ignored for the rest of lifetime of the Taker instance.\r\n\r\n`sendpayment.py` and `tumbler.py` have been made to work with this.\r\n\r\nTesting welcome. I've tested this on regtest with tumbler, it was able to complete it's run even though one maker never responded to either !fill, !auth or !tx\r\n\r\nSecond attempt at merging, given the derping with the other branch."},"comment":{"url":"https://api.github.com/repos/chris-belcher/joinmarket/issues/comments/138459740","html_url":"https://github.com/chris-belcher/joinmarket/pull/225#issuecomment-138459740","issue_url":"https://api.github.com/repos/chris-belcher/joinmarket/issues/225","id":138459740,"user":{"login":"tailsjoin","id":13171342,"avatar_url":"https://avatars.githubusercontent.com/u/13171342?v=3","gravatar_id":"","url":"https://api.github.com/users/tailsjoin","html_url":"https://github.com/tailsjoin","followers_url":"https://api.github.com/users/tailsjoin/followers","following_url":"https://api.github.com/users/tailsjoin/following{/other_user}","gists_url":"https://api.github.com/users/tailsjoin/gists{/gist_id}","starred_url":"https://api.github.com/users/tailsjoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tailsjoin/subscriptions","organizations_url":"https://api.github.com/users/tailsjoin/orgs","repos_url":"https://api.github.com/users/tailsjoin/repos","events_url":"https://api.github.com/users/tailsjoin/events{/privacy}","received_events_url":"https://api.github.com/users/tailsjoin/received_events","type":"User","site_admin":false},"created_at":"2015-09-08T07:24:02Z","updated_at":"2015-09-08T07:24:02Z","body":"I did a fresh pull of the crude-taker-recovery2 branch, generated a new wallet, and funded the first address. While attempting to tumble or send-payment I crash during the first transaction. I have the entire log if this error message doesn't explain it well enough (I switched branches to master and the tumbler is working fine, so it's definitely the branch):\r\n\r\n     File \"tumbler.py\", line 351, in main\r\n        irc.run()\r\n      File \".../lib/irc.py\", line 492, in run\r\n        self.__handle_line(line)\r\n      File \".../lib/irc.py\", line 395, in __handle_line\r\n        self.__handle_privmsg(chunks[0], chunks[2], get_irc_text(line))\r\n      File \".../lib/irc.py\", line 348, in __handle_privmsg\r\n        self.__on_privmsg(nick, parsed)\r\n      File \".../lib/irc.py\", line 232, in __on_privmsg\r\n        self.on_sig(nick, sig)\r\n      File \".../taker.py\", line 374, in on_sig\r\n        self.cjtx.add_signature(nick, sig)\r\n      File \".../lib/taker.py\", line 161, in add_signature\r\n        self.utxos[nick].remove(utxo)\r\n    ValueError: list.remove(x): x not in list"}}