19:00:40 <wumpus> #startmeeting 19:00:40 <lightningbot> Meeting started Thu Dec 8 19:00:40 2016 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:40 <lightningbot> Useful Commands: #action #agreed #help #info #idea #link #topic. 19:01:23 <wumpus> proposed topics? 19:02:21 <gmaxwell> #bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr btcdrak sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier 19:02:24 <instagibbs> here 19:02:26 <sdaftuar> hi 19:02:28 <btcdrak> sort of here 19:02:29 <CodeShark> hello 19:03:13 <kanzure> hi. 19:03:22 <gmaxwell> I'd like to briefly talk about #9290 19:03:24 <gribble> https://github.com/bitcoin/bitcoin/issues/9290 | Make RelayWalletTransaction attempt to AcceptToMemoryPool. by gmaxwell · Pull Request #9290 · bitcoin/bitcoin · GitHub 19:03:39 <morcos> i'd like to discuss increasing mempool tx expiry time but nto sure if thats a meeting topic 19:04:39 <wumpus> #topic #9290 Make RelayWalletTransaction attempt to AcceptToMemoryPool 19:04:41 <gribble> https://github.com/bitcoin/bitcoin/issues/9290 | Make RelayWalletTransaction attempt to AcceptToMemoryPool. by gmaxwell · Pull Request #9290 · bitcoin/bitcoin · GitHub 19:05:40 <gmaxwell> There was previously a concern expressed (sorry, I forget who); that trying to reaccept to mempool all unconfirmed txn might be a cpu load for some wallet gunked up with unconfirmed transactions. I made this PR anyways, noting that it doesn't apply to abandoned or known conflicted txn, and I don't believe gunked up wallets exist at any real rate-- if they do, then that is its own problem.. and 19:05:46 <gmaxwell> they could avoid a performance issue by abandoning. I hope this is convincing but I haven't had feedback on that point. 19:06:01 <gmaxwell> Beyond that question, this is a really obvious bugfix for a somewhat embarassing misbehavior. 19:06:21 <wumpus> well at least it's now possible to get rid of unconfirmed transactions by abandoning them 19:06:30 <morcos> gmaxwell: that was (at least) me, but i made my mark on your PR.. suhas beat me down into being unable to succesfully argue my position 19:06:36 <wumpus> there should be no need to have excessive numbers of unconfirmed transactinons 19:07:10 <sdaftuar> gmaxwell: i agree with the PR and the backport, fwiw 19:07:11 <gmaxwell> morcos: hah. I missed the was here. okay thats precisely what I was looking for. 19:07:30 <morcos> but as for backporting... 19:07:50 <morcos> maybe ok for that one... but i'm not so sure about #9262 19:07:55 <gmaxwell> I just felt a little uncomfortable doing something I knew someone had expressed concern with; without making sure that we heard if concerns remained. 19:07:59 <gribble> https://github.com/bitcoin/bitcoin/issues/9262 | Prefer coins that have fewer ancestors, sanity check txn before ATMP by instagibbs · Pull Request #9262 · bitcoin/bitcoin · GitHub 19:08:30 <morcos> i feel like although these are definitely fixing poor behavior... they're also fairly large changes in behavior and it worries me that in a backport, they wont' get enough testing to be sure they don't raise new issues 19:08:35 <morcos> personally i think we backport too much 19:08:49 <gmaxwell> Well I think we must backport at least one of 9262 or 9290. If you backport 9290 I think there is less need to backport 9262 and if we only do one I'd prefer it be 9290. 19:08:58 <morcos> backports should be for either critical or simple bugs 19:09:11 <morcos> gmaxwell: why? that behavior has been like that for several major versions no? 19:09:41 <morcos> do we think it is more of an issue now b/c of occasional mempool backlogs? 19:09:44 <gmaxwell> The issue that these are collectively fixing are stuck coins in wallets which combined with user error can lead to funds loss. We are currently having resports from multiple users encountering it. 19:09:50 <gmaxwell> morcos: ding ding. 19:09:50 <luke-jr> backporting all bugfixes is fine if we do RCs IMO; critical/simple criteria mainly makes sense for security stuff 19:09:55 <sdaftuar> i think 9290 is simple, and implements the behavior we all thought was already happening 19:10:03 <gmaxwell> luke-jr: thats going offtopic but I don't fully agree. 19:10:11 <morcos> yes, 9290 is pretty simple 19:10:39 <gmaxwell> for 9262 if 9290 is in place there is an argument that the default behavior should change (don't refuse to create the failing txn.) 19:10:43 <gmaxwell> which is another question. 19:10:48 <morcos> i'd feel a bit easier about that one i guess... , and although i have no idea what might go wrong with 9262, you never know 19:11:28 <sipa> do we have a patch that deal with ATMP failing in createtransactionm 19:11:30 <sipa> ? 19:11:37 <gmaxwell> well as is 9262 adds another reason for a send rpc to fail, which is user visible. With 9290 there is a lot less reason for that. I felt that that behavior change was not very sutiable for backport which is why I created 9290. 19:11:40 <morcos> yes, if we can briefly dive into that other question... one argument for refusing to create a failing tx is that if you try again you might succeed... 19:11:41 <sipa> that would be much less invasive to backport 19:11:51 <morcos> but not sure how deterministic the coin selection is 19:12:10 <michagogo> o/ 19:12:27 <gmaxwell> morcos: since unconfirmed coins are a last resort already your odds are not good. with the rest of 9262 in place... your odds are probably nearly zero. 19:12:34 <morcos> sipa: 9262 makes it much less likely that you will get to ATMP fail at least for the reason of chains. 19:12:55 <sipa> morcos: i know, but it is not fully generic 19:13:16 <morcos> gmaxwell: i disagree i think... since it all depends on how many coins you end up using as inputs, which is not a factor in our logic now 19:13:18 <instagibbs> fully generic would be something like justCheck ATMP 19:13:27 <sipa> morcos: i would be much more confortable with something that deals correctly with an occasional failurr, rather than trying our best to avoid failures 19:13:37 <gmaxwell> The mempool chain limit change is transitory, which is why I believe avoid + rebroadcast is the right solution. 19:13:53 <morcos> sipa: but as gmaxwell would probably argue, depending ont he reason for your failure you might want to do different things, so its maybe not a simple patch 19:14:17 <sipa> morcos: well we can still use whatever logic to avoid the failure 19:14:39 <sipa> but knowing that we don't get into hard-to-recover states would give more peace of mind 19:14:44 <gmaxwell> morcos: for 9262 I say very low because if it was possible to avoid the failure it likely would have due to the prior selectcoins runs. the only time where a retry would work is where it couldn't be done with low count coins, could be done with midcount coins and the retry gets lucky. 19:15:01 <gmaxwell> sipa: transitory failure is not a hard to recover state. 19:15:17 <gmaxwell> at least not any worse than "I paid too little fee" 19:15:53 <morcos> gmaxwell: no i don't think so.. some of your low count coins may have ancestors with other descendants.. you may choose a lot of low value low count coins, vs just 1 high value one.. etc.. 19:15:59 <gmaxwell> I believe (someone can correct) that there is now no way to get a failure there except a transitory one. But belt and suspenders could be fine. 19:16:09 <sipa> gmaxwell: well at least you'd know your transaction was not broadcast immediately 19:16:27 <sipa> gmaxwell: and i'm talking more generically than chain depth limits 19:16:35 <morcos> gmaxwell: definitely can get non-transitory failures... i have some wallet that everytime i start the node tries to broadcast a too high fee tx 19:16:55 <gmaxwell> sipa: you never really know that, since we have no monitoring to tell if the broadcasts were successful. I think we should seperately track successful broadcasts in the wallet. some lite wallets do this. 19:16:55 <sipa> gmaxwell: ATMP is complicated 19:17:10 <morcos> if it wasn't ATMP, then it wasn't broadcast 19:17:25 <gmaxwell> morcos: yes but it can be ATMP and never broadcast. 19:17:28 <sipa> gmaxwell: i mean: since we *can* recover from failure to ATMP, we should 19:17:49 <sdaftuar> perhaps a simple backport would be to return the txid of the failed to ATMP transaction back to the RPC caller, once it's been added to the wallet? 19:17:51 <MarcoFalke_> I am not against backporting 9290, but if we do, I'd prefer a small section in the release notes. Previously one could just resend the tx and figure out the problem later. Now, it might cause you to fund the same recipient twice. 19:17:55 <gmaxwell> sipa: "recover", I don't think I agree. Backing out a send and returning an error is not recovery. 19:17:58 <sdaftuar> that seems strictly better than prior behavior 19:18:03 <sdaftuar> and after 9290, semi-reasonable 19:18:08 <gmaxwell> It just pushes error handling downstream to a caller that likely has none. 19:18:29 <sipa> are we sure that every ATMP failure is temporary? 19:18:32 <morcos> to bring it back to what we should backport.. i'd say at most 9290 .. and lets concentrate on the more robust fix for 0.14 19:18:37 <gmaxwell> MarcoFalke_: I am confused as to what you believe the effect of 9290 is. 19:18:45 <instagibbs> sipa, I have some memory of absurd fee issue, but not on hand 19:19:24 <gmaxwell> sipa: I believed that was the case, though morcos just pointed out something about a too-high-fee txn. 19:19:41 <gmaxwell> I would agree that returning an error on non-temporary failures would be good. 19:19:43 <morcos> the high fee code did change, so not sure if that got fixed 19:19:46 <sdaftuar> morcos: i disagree with just doing 9290. the rpc situation is a disaster when you get an RPC failure for a created tx 19:19:58 <sipa> gmaxwell: sendtoaddress can already fail in various ways before even attempting ATMP (for example, tx too large, insufficient funds, ..) that the caller needs to deal with 19:20:18 <morcos> sdaftuar: its been like that forever though! i agree we should fix it, but we shouldn't be just now designing a fix to push out in a backport 19:20:23 <morcos> it will not get sufficient testing 19:20:48 <gmaxwell> morcos: it hasn't been like that forever because the failures are modulated by network conditions. 19:20:56 <MarcoFalke_> gmaxwell: 9290 will put tx in your mempool that previously failed to be accepted while running. We did never do that. (only after restart) 19:21:00 <gmaxwell> some people that never built unconfirmed chains are building them now. 19:21:47 <morcos> i guess i just think we are close enough to 0.14, that we should concetnrate on a good and well tested fix for that 19:22:04 <gmaxwell> MarcoFalke_: We did it at every restart. So you couldn't have counted on the behavior. And you also would have had no way of knowing that it failed on the very first try. 19:22:05 <morcos> i'm always worried about unintended consequences of these things 19:22:06 <sdaftuar> morcos: what is your objection to my proposal above, of returning the txid of the failed-to-accept-tomempool transaction, that is now in your wallet? 19:22:37 <sdaftuar> i think that should be a simple change, and just tells the users what is going on 19:22:51 <wumpus> I tend to agree with morcos - better to focus on a good solution for 0.14, then try to rush something for 0.13.2 last minute 19:23:09 <gmaxwell> well I don't feel this is rushed. :) 19:23:10 <sipa> sdaftuar: if we expect every such failure to be temporary, and start retrying automatically, i agree 19:23:19 <morcos> sdaftuar: maybe nothing, but what do users do with it? abandon? (what if they've waited 20 mins and 9290 rebroadcasted it) i don' tknow it just seems .. like a band-aid 19:23:34 <CodeShark> fwiw, in all my stuff I've separated the equivalent of "sendtoaddress" into at least two separate calls 19:23:37 <wumpus> it's not even merged to master yet, and we're not sure of the consequences 19:23:40 <wumpus> so yes it feels rushed 19:23:50 <sipa> CodeShark: yes, so do we in the raw tx api 19:23:56 <sdaftuar> morcos: right now though users are confused and think their money is gone -- at least this way they can see where it is 19:24:04 <morcos> sdaftuar: were you proposing that it looks different than if it did get accepted, or you can't tell from the rpc return value 19:24:08 <MarcoFalke_> gmaxwell: The rpc returns an error if it failed on the very first try, no? 19:24:09 <sipa> i did not know we did not report a txid if ATMP fails 19:24:09 <wumpus> simple fixes and things we're really sure about can be merged+backported last minute 19:24:19 <wumpus> but it doesn't look to be the case here, given this discussion already 19:24:33 <instagibbs> sipa, it's a very scary and useless message 19:24:40 <instagibbs> well, now it propagates more 19:24:43 <morcos> it seems to me you'd want to distinguish between it got ATMP and it didn't 19:24:43 <instagibbs> but still scary 19:24:59 <sipa> well i think we should either delete wallet txs that fail to ATMP at creation time, OR report the txid anyway 19:25:16 <sipa> now people think the tx failed, but they're still rebroadcasting it 19:25:23 <sdaftuar> sipa: i agree with that, though i'd be nervous about doing the first (delete wallet tx) in a backport 19:25:24 <wumpus> yes that makes no sense to the user 19:25:31 <sipa> sdaftuar: agree 19:25:34 <gmaxwell> sipa: not just that, but it is holding coins up in their wallet. 19:25:54 <wumpus> ideally the API should be atomic, either it succeeds or fails, not fails and still make a transaction 19:26:09 <sdaftuar> morcos: i agree it'd be better to indicate somehow that the new tx isn't in the mempool,but perhaps we can't change the API like that in a backport... reporting the txid still seems better than current behavior though 19:26:18 <sdaftuar> no different than if the tx was acepted and then evicted before relay 19:26:20 <gmaxwell> MarcoFalke_: you're right. 19:26:24 <wumpus> but it may be too much to fix in a backport in a release that we want out as soon as possible 19:26:34 <morcos> sdaftuar: but that doesn't work very well for a tx that'll never go anywhere ... 19:26:43 <sipa> can we do rebroadcast + report txid anyway in a backport? 19:26:49 <sdaftuar> current behavior is even worse though for a tx that won't go anywhere 19:27:01 <sdaftuar> you don't even know what tx to inspect/abandon! 19:27:04 <sipa> and for 0.14 consider long chain avoidance + deletion of failed creations? 19:27:15 <wumpus> although I'm not entirely sure when we want to do 0.13.2 19:27:31 <gmaxwell> wumpus: I want to do 0.13.2 19:27:31 <morcos> i mean if we do think this is such a large problem that it HAS to be addressed in a back port... then i'd argue we should include 9262, because at least if that works right, it means all the other functionality we'll backport will get used much less often 19:27:43 <wumpus> gmaxwell: I'm asking when, not whether 19:27:53 <gmaxwell> morcos: that was my thinking. 19:28:02 <sdaftuar> i lean towards backporting 9262, myself 19:28:04 <gmaxwell> wumpus: oops, I missed the word when. 19:28:28 <morcos> i'd rather have a lot less people asking about rpc calls that look like they work but theres no tx in mempool or random rebroadcasts a day later when parts of the chain confirm 19:28:34 <sipa> imho not reporting the txid of a tx that was added to your wallet is the worat bug here 19:28:41 <sipa> *worst 19:28:43 <sdaftuar> sipa: agree! 19:28:45 <jonasschnelli> Agree 19:28:55 <jonasschnelli> Reporting the txid seems worth a backport 19:29:01 <jonasschnelli> And the API change is accaptable 19:29:06 <wumpus> yes 19:29:13 <sipa> i don't have much opinion on 9262 19:29:15 <gmaxwell> morcos: I am unsure of how much reduction it will get. It will be a reduction, but at least 2 out of 3 people I've directly helped in this condition had no other coins in their wallet, as the wallet was created with a single large lump payment. 19:29:25 <CodeShark> then a separate call to check whether it failed to broadcast? 19:29:37 <MarcoFalke_> So reporting the txid would hide the fact that ATMP failed? 19:29:40 <gmaxwell> the third, however, was making large chains pointlessly and their problem would have been avoided by 9262. 19:30:05 <sipa> CodeShark: we can't make people change the way they use the api 19:30:13 <sipa> not in the short term 19:30:18 <jonasschnelli> 9262 is great. But whats the reason for a backport? Is a wallet function, users can and should upgrade to 0.14? 19:30:22 <CodeShark> imho, sendtoaddress should be deprecated in the long run 19:30:23 <morcos> realistically speaking what's the date when 13.2 would be out vs 14.0.. and would people be more likely to want 13.2 19:30:24 <wumpus> not in a backport at least 19:30:30 <CodeShark> but yeah, nearterm compatibility is important 19:30:39 <wumpus> CodeShark: we're talking about what to do in a backport 19:30:43 <sipa> CodeShark: maybe, but that's totally off topic in this discussion 19:30:45 <gmaxwell> My view on what we should eventually do: If a failure is perminante we should fail the send, and not save the txn. If the failure is temporary, we should return the txid and rebroadcast when we can. We should try to avoid creating temporary failures. 19:30:48 <wumpus> not what to do in the long run 19:30:51 <CodeShark> right 19:31:33 <gmaxwell> I was of the view that the case where we will ever create a non-temporary failure now is basically non-existant already. 19:31:49 <sipa> gmaxwell: it certainly seems infrequent 19:31:51 <gmaxwell> so I haven't given any thought to the 'not save the txn' branch above. 19:32:11 <gmaxwell> There may be fringe cases, so belt and suspenders would be good for robustness. 19:32:25 <jonasschnelli> hmm.. not saving the tx would mean, the wallet rpc functions depend fully on the mempool policy? 19:32:36 <sipa> so rebroadcast + avoid long chains + report txid anyway... all for 0.13.2? 19:32:53 <morcos> if its really rare, it might be we just track failures to reaccept and when they hit a cerain number, stop trying and have a way of reproting those txs for manual abandonment 19:32:54 <wumpus> when do we want to do 0.13.2? 19:33:03 <wumpus> is it some short term thing or januari? 19:33:14 <gmaxwell> As far as when 0.13.2 I've personally been spending almost all my recent attention on the remaining things I thought 0.13.2 needed. I had hoped in december. 19:33:22 <morcos> sipa: it seems thats what people are arguing for 19:33:28 <jonasschnelli> wumpus: +1 month after 0.14? 19:33:31 <wumpus> this sounds like it still needs a lot of work and testing and new things 19:33:54 <morcos> wumpus: reporting the txid anyway is probably super simple... just a question of thinking about the consequences 19:33:55 <sipa> jonasschnelli: a new 0.13 after 0.14 makes little sense 19:33:55 <wumpus> cfields also thought it was this week, he felt guilty he couldn't sign it this week :) 19:33:59 <gmaxwell> These things (and the open backport PR) are the only things I'm perosnally tracking for 0.13.2 (I made a call in #bitcoin this morning for bugreports against 0.13.1 with an eye towards getting 0.13.2 ready). 19:34:05 <morcos> so not unheard of that all these things could be merged into master by tomorrow 19:34:27 <wumpus> morcos: they're not even in master yet, I'm not sure of merging so much new stuff into a backport 19:35:18 <morcos> wumpus: well neither am i... i personally favor less emphasis on backports.. but i'm saying if we are going to do it, well lets get to it... 19:35:20 <wumpus> I really think we should make a choice here and solve the worst problems for 0.13.2 instead of trying to rush everything into it 19:35:21 <gmaxwell> I didn't even know about the rebroadcast behavior that 9290 fixed until discussion about this subject. :( 19:35:42 <wumpus> could always do a 0.13.3 later 19:36:34 <wumpus> jonasschnelli: I think the idea was to do it before 0.14. If after, none of these things are a problem 19:36:45 <gmaxwell> This discussion revealed that we also need the return txid anyways change, that is also a serious bug. 19:36:45 <morcos> i guess i believe that all or nothing makes sense, simply b/c anything less than the all sipa mentioned still leaves a big problem "rebroadcast + avoid long chains + report txid anyway." 19:36:52 <jonasschnelli> wumpus: Yes. Right. 19:37:13 <morcos> i would vote nothing, but i recognize i am outvoted 19:37:16 <sipa> morcos: i think the long chain avoidance is the least important in that set 19:37:18 <wumpus> but does the wallet get enough testing on 0.13.2 to warrant this? 19:37:26 <gmaxwell> I do believe we could leave the avoidance out and at least not be buggy in any risky way. Just potentially creating a needlessly bad performance. 19:37:30 <wumpus> I sometimes even doubt it gets enough testing on master 19:37:48 <MarcoFalke_> The rc1 for 0.13.2 should probably happen in Dec, otherwise it will "overlap" with 0.14 19:37:57 <gmaxwell> wumpus: I think wallet sometimes gets more testing on backport than on master. 19:38:21 <wumpus> MarcoFalke_: agreed, and people will probably be away lot later this month 19:38:38 <luke-jr> I think there'd be value in 0.13.x beyond 0.14, but realistically it won't get enough testing, so if we want a well-tested 0.13.x we should aim for before 0.14 19:38:43 <gmaxwell> wumpus: perhaps we should table this and (1) get the things we have open into master. (2) get a return txid fix. 19:38:44 <morcos> sipa: my reason for including the avoidance would be to limit the number of people affected by the other two changes.. but i guess i'm not sure how helpful it will be.. sure 19:39:47 <morcos> it always worries me when we change the behavior 19:40:04 <morcos> it seems people are always dependent on existing behvaior or using the bitcoind in a way we didn't anticipate 19:40:11 <CodeShark> why not preserve the current behavior for the existing API call and instead create a new API call that has the desired behavior? 19:40:32 <jonasschnelli> CodeShark: bugfix with a new feature? :) 19:40:36 <wumpus> gmaxwell: I suppose what is in 0.13.2 right now is already enough for a release? we could do the wallet stuff in a 0.13.3 19:40:42 <gmaxwell> Let my summarize the bug and why I think it's important to fix. Right now normal use of the wallet for some users can suffer inexplicible failures due to creating long transactions. These long transactions will look like the send failed, but it will still go into the wallet and _still_ be broadcast later potentially (After a restart). Users lose access to their funds and may falsely believe a 19:40:42 <morcos> the avoidance (if its not buggy) just works magic behind the scenes 19:40:48 <gmaxwell> wallet is empty. Users may double pay as a result. 19:40:56 <MarcoFalke_> CodeShark: We'd end with an new API every release. :) 19:41:06 <CodeShark> lol 19:41:14 <gmaxwell> These are all serious money losing bugs. And are the most reported issue I've dealt with users for existing software. 19:41:16 <wumpus> CodeShark: I think the point is fixing the current behavior 19:41:56 <CodeShark> the current behavior is it still stores the transaction in the wallet even if ATMP fails? 19:41:57 <sipa> CodeShark: this is all besides the issue. the current behaviour is clearly broken in numerous ways, and it should be fixed 19:42:17 <gmaxwell> if not for that, I wouldn't bother with wanting any of this backported. 19:42:18 <sipa> CodeShark: new APIs are possible that avoid some of the pitfalls we've learned about in earlier designs 19:42:32 <gmaxwell> (not for the fact that people are hitting it and can lose money as a result) 19:42:47 <Chris_Stewart_5> gmaxwell: 'long chains of txs' or just large txs for inexplicable failures? 19:43:04 <gmaxwell> Chris_Stewart_5: large transactions will not cause the behavior I described. 19:43:08 <sipa> CodeShark: yes 19:43:20 <MarcoFalke_> Chris_Stewart_5: mempool chains. 19:43:22 <jonasschnelli> Agree with gmaxwell: But I think we must at least offer a way how to detect this on the RPC consumer side and mention it in the release nots 19:43:23 <gmaxwell> The send mail fail but the failure is clean and won't freeze the users funds and/or send anyways. 19:43:34 <jonasschnelli> Reporting txid seems to be the sane way for a backport IMO 19:43:54 <gmaxwell> I think reporting the txid is correct too. I agree. 19:44:21 <gmaxwell> If its possible that the send will go through we must report the txid. Right now we don't. 19:44:33 <luke-jr> another potential way to address this particular case, would be to simply toggle the default of -spendzeroconfchange I think? 19:44:42 <wumpus> yes, if the transaction is added to the wallet it should be reported 19:44:53 <luke-jr> not the best way, but perhaps good enough to solve the critical part of the issue 19:45:03 <morcos> I'd rather spend less days arguing about it and more days testing the RC that fixes it... so can someone add the report txid anyway PR and lets merge that, #9262 and #9290 into master 19:45:05 <gribble> https://github.com/bitcoin/bitcoin/issues/9262 | Prefer coins that have fewer ancestors, sanity check txn before ATMP by instagibbs · Pull Request #9262 · bitcoin/bitcoin · GitHub 19:45:07 <gribble> https://github.com/bitcoin/bitcoin/issues/9290 | Make RelayWalletTransaction attempt to AcceptToMemoryPool. by gmaxwell · Pull Request #9290 · bitcoin/bitcoin · GitHub 19:45:09 <gmaxwell> None of the users reporting issues I worked with had been tripped up by the failure to return a txid (at least not that they noticed). 19:45:12 <wumpus> and that doesn't sound like a very risky or large change 19:45:22 <MarcoFalke_> #action create report txid patch 19:45:36 <sipa> MarcoFalke_: already on it 19:45:42 <jonasschnelli> sipa: nice! 19:45:49 <jonasschnelli> (just wanted to start) :) 19:45:59 <morcos> sipa: are you typing one-handed, its taking you a while 19:46:29 <sipa> morcos: i just switched to my laptop 19:46:31 <gmaxwell> luke-jr: I think szcc=0 is a huge disruptive and surprising change. :( 19:46:50 <wumpus> it's throwing out the baby with the bath water too 19:47:06 <luke-jr> gmaxwell: but it can't result in losing money (I agree a proper fix would be better though) 19:47:14 <gmaxwell> it's almost like "we could make sendtoaddress always fail." :) yes, that would fix the problem.. but.. 19:47:30 <wumpus> if it is really a critical problem we could consider that 19:47:57 <gmaxwell> but I suppose I would consider it if we really felt we couldn't do a better fix soon. 19:47:59 <wumpus> I remember we've done that before, in the time of the malleability problem 19:48:04 <wumpus> but preferably not, no 19:48:40 <gmaxwell> but I think we have a collection of better fixes which (with the txid return) will be more than sufficient. 19:48:50 <gmaxwell> so I'd rather not think about szcc=0. :) 19:48:54 <luke-jr> k 19:49:13 <morcos> actually i guess its not as simple as i thought 19:50:08 <gmaxwell> morcos: returning a txid? 19:50:10 <bitcoin-git> [13bitcoin] 15sipa opened pull request #9302: Return txid even if ATMP fails for new transaction (06master...06failedtxid) 02https://github.com/bitcoin/bitcoin/pull/9302 19:50:16 <gmaxwell> I believe thats as simple as 19:50:35 <gmaxwell> ^ yep, thats the change I imagined. 19:50:58 <CodeShark> I never thought sendtoaddress was a reliable call as far as error handling so I sort of stopped thinking about how to do the error handling from the app side - not sure what issues people have had because of this behavior 19:51:03 <morcos> ha ha ha 19:51:40 <jonasschnelli> sipa: I think you should also change the logprint ("CommitTransaction(): Error: Transaction not valid, %s\n"), but meh, OT. 19:51:47 <sdaftuar> jonasschnelli: +1 :) 19:51:55 <sipa> jonasschnelli: we don't know if it's not valid 19:52:12 <sipa> jonasschnelli: wait, i don't see the change 19:52:17 <jonasschnelli> "ATMP failed" or something. 19:52:19 <gmaxwell> sipa: maybe that was the point of jonasschnelli's comment 19:52:22 <sipa> ah! 19:52:35 <sipa> i thought you said "change it TO ..." 19:52:59 <morcos> thanks sipa 19:53:05 <jonasschnelli> No. Just criticised the current one. 19:53:07 <jonasschnelli> Yes. Thanks sipa. 19:53:11 <jonasschnelli> Next time please faster 19:53:17 <gmaxwell> so: action proposed, 9302, 9290, 9262 and help get them into master. 19:53:18 <luke-jr> ._. 19:53:42 <sdaftuar> gmaxwell: concur 19:53:45 <luke-jr> gmaxwell: sgtm 19:54:01 <morcos> gmaxwell: i think thats the stable equilibrium... if 9262 seems dicey we can ditch, but i think its good 19:54:04 <morcos> can we briefly discuss tx expiry if no one else has another unrelated topic 19:54:18 <gmaxwell> yes, 9262 is the most optional, esp with the first two in. 19:54:25 <wumpus> at least 9290 and 9302 19:54:35 <gmaxwell> morcos: I would like to discuss expiry. 19:54:42 <wumpus> the latter should obv get into master but not sure about 0.13.2 19:54:46 <MarcoFalke_> #action 9302, 9290, 9262 for master (and backport), 9262 optional backport 19:55:00 <MarcoFalke_> ^fine this way? 19:55:08 <wumpus> #topic mempool expiry time increase 19:55:16 <instagibbs> I still think preferential coin choosing should go in, even if we drop the abort 19:55:17 <wumpus> 5 minutes to go ^^ 19:55:20 <instagibbs> sorry, continue 19:55:23 <morcos> i'd like to raise the time to at least 1 week... although we could use a few more heads thinking about whether there are any issues.. obv after 9290, it doesn't matter as much for gtting yhour own txs confirmed 19:55:48 <gmaxwell> instagibbs: I'd like to default the abort to off, with the rest it won't be needed. We can discuss later. 19:55:55 <morcos> but i think if we want to be able to fully utilize weekly cycles in the tx volume, then we need to have txs which sit around for a week or more to measure how long it takes them to get confirmed 19:56:23 <wumpus> morcos: would it make much of a difference in practice? wouldn't the transactions be evicted due to the mempool limit first? 19:56:26 <luke-jr> morcos: I can't think of any reason this wouldn't be okay. (but haven't given it thought before now) 19:56:28 <morcos> i'm not really sure that the problems that expiry were meant to protect against are actually any more prevent with 3 days vs say 14 19:56:33 <gmaxwell> morcos: I do believe I made the argument for a week way back when on this basis. OTOH, the mempool is simply not large enough to exploit the weekly cycle currently. 19:56:56 <wumpus> morcos: apart from that I don't see any problems with it 19:57:05 <morcos> wumpus: no.. any tx with fee rate > 1.5 sat / byte gets evicted b/c of 3 day limit and would otherwise get mined within a week (and usually does b/c of rebroadcast) 19:57:07 <instagibbs> does the wallet "abort" if it drops from mempool, or does it resubmit 19:57:12 <sipa> luke-jr: i think the expectation should be that everything in the mempool leaves it either due to accept/conflict or fee based eviction 19:57:12 <instagibbs> I assume resubmits 19:57:16 <gmaxwell> My view on the expiration is that it removes high fee cruft that got softforked out but is taking up your mempool. 19:57:24 <morcos> gmaxwell: its way more than big enough for a week cycle 19:57:32 <morcos> b/c remember it only has to hodl backlog 19:57:33 <sipa> luke-jr: expiration is for things that somehow linger much longer 19:57:58 <morcos> gmaxwell: yeah, but if thats actually happening 3 days is way too long, and is breaking yoru fee estimates already 19:58:09 <gmaxwell> morcos: okay point so long as it is at least as big as the daily cycle, txn can persist through the week. 19:58:12 <luke-jr> hmm 19:58:14 <wumpus> instagibbs: abort right now, the idea of #9290 is to change that and make it reaccept on rebroadcast 19:58:16 <gribble> https://github.com/bitcoin/bitcoin/issues/9290 | Make RelayWalletTransaction attempt to AcceptToMemoryPool. by gmaxwell · Pull Request #9290 · bitcoin/bitcoin · GitHub 19:58:50 <morcos> ok, i'd propose 14 days, so we don't have this problem again... and lets just think about whether anyone can think of any problems with it 19:58:50 <gmaxwell> morcos: in terms of fee estimates, we can address that by using a narrower filter... e.g. only consider transactions which are structurally similar to our own.. but a seperate topic. 19:59:08 <gmaxwell> also the expiration hardly works now in any case. 19:59:13 <sdaftuar> there's one other advantage of 3 days versusu a week, which is being able to double-spend a too-low-fee tx. after fee bumping, i think this reason largely goes away 19:59:20 <morcos> i don't think we can really take advantage of it until we change fee estimates... but i'd rather have more of the network behaving similarilyh 19:59:28 <morcos> and after 9290 19:59:30 <gmaxwell> if you are connectable there are 'helpful' parties that connect and spam you with a zillion old txn. 19:59:32 <instagibbs> morcos, that's too weeks of nodes not accepting fee bumps if you mess up and don't do bip125 (not sure how big an issue that is but still) 19:59:32 <morcos> you have a tiny windo 19:59:32 <sdaftuar> morcos: good point 19:59:50 <instagibbs> even with manual bumping* 20:00:02 <gmaxwell> instagibbs: I think it doesn't matter for replacement. 20:00:11 <morcos> instagibbs: but after 9290 your tx comes again anyway, you just lose the information that its old 20:00:19 <gmaxwell> Right now replacement of non-replacable transactions works even a day later fine, due to restarts and fullrbf miners. 20:00:21 <luke-jr> instagibbs: if the fee is that excessively small though, it will get bumped out by non-conflicting transactions sooner probably 20:00:22 <morcos> i want to retain that information 20:00:35 <gmaxwell> instagibbs: also what luke said. 20:00:46 <morcos> nothing with a fee rate > 1.5 sat / byte as ever been evicted due to low fee rate 20:00:50 <gmaxwell> morcos: does it need to be 14 days or is 7 sufficient to exploit the weekly cycle? 20:01:15 <morcos> i don't know... maybe 7.. but maybe you need more data points that are older than that to know things that don't get confirmed in 7 days 20:01:18 <morcos> which is kind of importnat 20:01:27 <gmaxwell> oh I see, for the estimator. 20:02:02 <sipa> very short announcement: github now supports listing reviewers for your PR... always feel free to list me 20:02:04 <morcos> anyway, all i wanted to do is raise the topic, so other people cna think of potential problems 20:02:15 <gmaxwell> morcos: OKAY! 20:02:27 <gmaxwell> morcos: just open an PR and set sipa as the reviewer. Done. 20:02:43 <wumpus> #endmeeting