1 2017-02-16 01:21:07 0|bitcoin-git|[13bitcoin] 15jmcorgan opened pull request #9774: Enable host lookups for -proxy and -onion parameters (06master...06hostname-lookups) 02https://github.com/bitcoin/bitcoin/pull/9774
2 2017-02-16 09:23:11 0|wumpus|I think today is a good day to wrap up 0.14
3 2017-02-16 09:24:10 0|bitcoin-git|13bitcoin/06master 14ba803ef 15Suhas Daftuar: Harden against mistakes handling invalid blocks...
4 2017-02-16 09:24:10 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/7a93af8340d9...1e92e041ddc8
5 2017-02-16 09:24:11 0|bitcoin-git|13bitcoin/06master 141e92e04 15Wladimir J. van der Laan: Merge #9765: Harden against mistakes handling invalid blocks...
6 2017-02-16 09:24:30 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9765: Harden against mistakes handling invalid blocks (06master...06fix-checkblock-call) 02https://github.com/bitcoin/bitcoin/pull/9765
7 2017-02-16 09:24:47 0|bitcoin-git|13bitcoin/06master 146c5427d 15Wladimir J. van der Laan: wallet: Prevent "overrides a member function but is not marked 'override'" warnings...
8 2017-02-16 09:24:47 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/1e92e041ddc8...f8af89a91820
9 2017-02-16 09:24:48 0|bitcoin-git|13bitcoin/06master 14f8af89a 15Wladimir J. van der Laan: Merge #9764: wallet: Prevent "overrides a member function but is not marked 'override'" warnings...
10 2017-02-16 09:25:07 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9764: wallet: Prevent "overrides a member function but is not marked 'override'" warnings (06master...062017_02_wallet_inconsistent_missing_override) 02https://github.com/bitcoin/bitcoin/pull/9764
11 2017-02-16 09:30:55 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/f8af89a91820...e43a58514dd3
12 2017-02-16 09:30:56 0|bitcoin-git|13bitcoin/06master 1407afcd6 15Russell Yanofsky: Add missing cs_wallet lock that triggers new lock held assertion...
13 2017-02-16 09:30:56 0|bitcoin-git|13bitcoin/06master 14e43a585 15Wladimir J. van der Laan: Merge #9771: Add missing cs_wallet lock that triggers new lock held assertion...
14 2017-02-16 09:31:16 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9771: Add missing cs_wallet lock that triggers new lock held assertion (06master...06pr/loadlock) 02https://github.com/bitcoin/bitcoin/pull/9771
15 2017-02-16 09:35:32 0|luke-jr|should #9524 be marked 0.14?
16 2017-02-16 09:35:34 0|gribble|https://github.com/bitcoin/bitcoin/issues/9524 | rpc: Dont FlushStateToDisk when pruneblockchain(0) by MarcoFalke ÷ Pull Request #9524 ÷ bitcoin/bitcoin ÷ GitHub
17 2017-02-16 09:36:46 0|wumpus|I don't know. I'd say let's not add more stuff now and try to get a rc1 wrapped up
18 2017-02-16 09:37:24 0|wumpus|it's a release candidate to get more testing
19 2017-02-16 09:37:34 0|wumpus|issues will always be found in RCs of major releases
20 2017-02-16 09:37:37 0|luke-jr|sure
21 2017-02-16 09:37:43 0|gmaxwell|9524 looks harmless.
22 2017-02-16 09:37:51 0|wumpus|we can keep pushing this forward indefinitely and just not do releases anymore :/
23 2017-02-16 09:37:58 0|luke-jr|not saying it needs to get into rc1, just hoping to avoid thigns being overlooked before final
24 2017-02-16 09:38:00 0|gmaxwell|wumpus: would solve so many problems!
25 2017-02-16 09:38:18 0|gmaxwell|luke-jr: I don't think that should go into 0.14.0, unless it has some effect I'm missing.
26 2017-02-16 09:38:38 0|wumpus|it's under-discussed and under-reviewed
27 2017-02-16 09:38:51 0|gmaxwell|by harmless I mean don't do it.
28 2017-02-16 09:38:55 0|gmaxwell|The question is "what bad expirence will the user or network have as a result of this not going in" if the answer is none we shouldn't even be remotely considering it now.
29 2017-02-16 09:39:12 0|gmaxwell|I mean the thing it fixes does not meet the above test ^, sorry for being unclear.
30 2017-02-16 09:39:16 0|wumpus|oh I agree then :)
31 2017-02-16 09:39:17 0|luke-jr|pruneblockchain(0) would probably delete a lot of data the user doesn't intend
32 2017-02-16 09:39:30 0|gmaxwell|okay, that would be bad.
33 2017-02-16 09:39:53 0|gmaxwell|wait, the argument there is what, /me looks
34 2017-02-16 09:40:19 0|luke-jr|at least as I understand it, the 0 indicates the node should automatically prune up to tip minus saved-amount
35 2017-02-16 09:40:25 0|wumpus|your are misunderstanding it luke-jr
36 2017-02-16 09:40:30 0|wumpus|argument 0 means *do nothing*
37 2017-02-16 09:40:36 0|wumpus|it doesn't delete anythhing in that case
38 2017-02-16 09:40:39 0|wumpus|it just flushes to disk
39 2017-02-16 09:40:44 0|wumpus|who cares :)
40 2017-02-16 09:41:01 0|gmaxwell|That was what I got out of the PR.
41 2017-02-16 09:41:15 0|wumpus|that PR bypasses the flush, I didn't regard that as very important as it's a NOOP anyway
42 2017-02-16 09:41:20 0|gmaxwell|If it did what luke said-- prune as hard as allowed--, that would be worth fixing before final.
43 2017-02-16 09:41:27 0|luke-jr|what am I missing?
44 2017-02-16 09:41:58 0|wumpus|what you are missing is that pruneblockchain(0) already does nothing besides a FlushToDIsk
45 2017-02-16 09:42:01 0|luke-jr|FlushStateToDisk with 0 triggers FindFilesToPrune(setFilesToPrune, chainparams.PruneAfterHeight()); etc
46 2017-02-16 09:42:08 0|wumpus|that PR takes away the FlushToDisk
47 2017-02-16 09:42:25 0|wumpus|"It might cause unwanted bugs if someone refactors the code in the future."
48 2017-02-16 09:42:30 0|wumpus|that's all
49 2017-02-16 09:43:52 0|wumpus|which we can consider for 0.15, but there will be no refactors of that code in the future of 0.14, so it's pointless there
50 2017-02-16 09:47:26 0|gmaxwell|luke-jr: so just calling that with 0 throws cannot prune because not in prune mode.
51 2017-02-16 09:47:42 0|luke-jr|what manual pruning is enabled?
52 2017-02-16 09:47:57 0|gmaxwell|trying.
53 2017-02-16 09:48:36 0|gmaxwell|pfft. it's yelling at me because of txindex. @#$@
54 2017-02-16 09:48:43 0|luke-jr|>_<
55 2017-02-16 09:49:15 0|gmaxwell|so to do that test I'd have to reindex which would probably take days on this thing. :-/ and my other nodes are busy now with important test.s
56 2017-02-16 09:49:43 0|gmaxwell|I will test before 0.14 release however, if no one else does.
57 2017-02-16 09:49:56 0|Victorsueca|need testing?
58 2017-02-16 09:50:12 0|gmaxwell|if you don't mind blowing away your blockchain if luke is right.
59 2017-02-16 09:50:16 0|wumpus|ideally *disabling* txindex would not require a rescan, but meh :) I'll test it
60 2017-02-16 09:50:52 0|gmaxwell|Start a node without txindex with prune=1, then run pruneblockchain 0 and verify all your blocks didn't just suddenly go away (e.g. freeing up 100 GB of disk space).
61 2017-02-16 09:51:38 0|Victorsueca|ummm, I'll make a backup of my current chain, it probably won't be in time to test this one, but i'll be ready for future chain-blowing PRs
62 2017-02-16 09:52:42 0|wumpus|possibly no need to even copy, would hard-linking all but the latest block file work?
63 2017-02-16 09:52:48 0|luke-jr|not sure we have a way to restore such a backup without the chainstate
64 2017-02-16 09:52:56 0|wumpus|okay, definitely not going to try that at the same time
65 2017-02-16 09:53:38 0|wumpus|luke-jr: why is it a problem in this case to copy the chainstate too?
66 2017-02-16 09:53:56 0|luke-jr|wumpus: it might not be, just saying in case copying it also wasn't obvious
67 2017-02-16 09:53:57 0|gmaxwell|FS with cow would be nice for some of these tests.
68 2017-02-16 09:54:35 0|wumpus|luke-jr: if you don't copy the chainstate, all it can do is a reindex
69 2017-02-16 09:55:15 0|luke-jr|I suppose a unit test could check this, but seems probably too bug-specific
70 2017-02-16 09:55:25 0|luke-jr|s/unit/rpc/
71 2017-02-16 09:55:47 0|wumpus|well if this turns out to be a regression then a regression test could be added for it, but if this never was a bug in the first place...
72 2017-02-16 09:56:01 0|luke-jr|0.13 didn't support manual pruning afaik
73 2017-02-16 09:56:03 0|wumpus|then we're just chasing ghosts
74 2017-02-16 09:57:14 0|wumpus|though testing it in regtest instead of a live node is a very good idea
75 2017-02-16 09:59:48 0|Victorsueca|so, if I copy the blocks and chainstate folder it should be enough right?
76 2017-02-16 10:00:00 0|wumpus|yes
77 2017-02-16 10:00:19 0|luke-jr|Victorsueca: may need to be sure the node is stopped when you copy
78 2017-02-16 10:00:33 0|Victorsueca|ok
79 2017-02-16 10:01:17 0|wumpus|oh absolutely, don't do anything low-level with the data files without stopping, that shouldn't have to be said
80 2017-02-16 10:02:08 0|Victorsueca|yeah it's stopped, the windows that tells me to wait disappeared too
81 2017-02-16 10:02:18 0|wumpus|on windows, copying *from* the bitcoin folder while bitcoin core is running can even cause it to crash
82 2017-02-16 10:02:32 0|gmaxwell|stupid file locking
83 2017-02-16 10:02:35 0|Victorsueca|rlly? copying?
84 2017-02-16 10:02:58 0|wumpus|https://github.com/bitcoin/bitcoin/issues/8250
85 2017-02-16 10:03:43 0|wumpus|not sure why, I'm not aware ldb does anything special while opening the files
86 2017-02-16 10:03:58 0|Victorsueca|maybe something related with atomic locks?
87 2017-02-16 10:05:32 0|Victorsueca|windows file locking is great at preventing programs from crashing due to files that where expected to be there and now are not
88 2017-02-16 10:05:42 0|Victorsueca|but it's stupid in most cases
89 2017-02-16 10:05:51 0|wumpus|yes, it's great at preventing programs from crashing... we see that :-)
90 2017-02-16 10:06:01 0|Victorsueca|lol
91 2017-02-16 10:06:17 0|Victorsueca|let's just say the remedy is worst than the ill
92 2017-02-16 10:06:31 0|Victorsueca|it could be way better implemented
93 2017-02-16 10:07:00 0|wumpus|it's probably not that bad if you take extensive time to study the APIs involved and use them as they are supposed to be, but who has time to do native development for every special snowflake platform :/
94 2017-02-16 10:07:09 0|midnightmagic|pure snapshotting would work just fine for this, if you could convince the software to lock all files prior to the snapshot, or guarantee a write barrier
95 2017-02-16 10:08:17 0|wumpus|the annoying thing with microsoft has always been that they take existing concepts then change them slightly, just enough to be incompatible and lock you in a bit
96 2017-02-16 10:08:28 0|wumpus|POSIX? forget it
97 2017-02-16 10:10:06 0|midnightmagic|windows file locking works fine for monolithic files that are only modified by the software modifying them, even in 10,000+ user database environments far busier than I suspect bitcoin's databases will ever be.
98 2017-02-16 10:10:07 0|luke-jr|I thought Windows was POSIX compatible?
99 2017-02-16 10:11:00 0|midnightmagic|Windows has POSIX emulation layers but they all operate differently than UNIX. For example, when a file is locked, it is a much harder lock than its POSIX-style equivalents on other systems.
100 2017-02-16 10:11:18 0|wumpus|it tries, a bit, the devil is in the details
101 2017-02-16 10:11:47 0|midnightmagic|You can delete a file which is locked, which zeroes it, but you can't subsequently recreate a file with the same *name*.
102 2017-02-16 10:11:52 0|midnightmagic|(for example)
103 2017-02-16 10:12:03 0|luke-jr|O.o
104 2017-02-16 10:12:11 0|midnightmagic|(external to the program which has the file locked)
105 2017-02-16 10:13:09 0|midnightmagic|There are other operations which are virtually impossible to guarantee the atomicity of, even with the POSIX compatibility layer because all the things we take for granted are emulated badly, as wumpus implies.
106 2017-02-16 10:13:42 0|Victorsueca|I think the problem is at assertions
107 2017-02-16 10:13:56 0|Victorsueca|windows file lock asserts a lo of thing that are not always true
108 2017-02-16 10:14:01 0|Victorsueca|lot*
109 2017-02-16 10:14:06 0|wumpus|yes it's not that windows's way doesn't work, or even works worse in the abstract sense, it's just that they force you to develop platform specific code for everything
110 2017-02-16 10:14:44 0|midnightmagic|Meanwhile, on Windows it's possible to hook file open calls with e.g. realtime virus, but contrary to anti-virus checkboxes, it's actually not possible to apply it selectively to a path and not other paths. It's all-or-nothing. That's why basically anyone running a database with an active realtime virus checker is sitting on a dice-rolling timeline. Eventually, their database will be
111 2017-02-16 10:14:44 0|wumpus|they did that with directx/opengl, with winsock, and the list goes on
112 2017-02-16 10:14:47 0|wumpus|anyhow, I was testing pruning
113 2017-02-16 10:14:50 0|midnightmagic|destroyed. And there's absolutely nothing anybody can do about it.
114 2017-02-16 10:17:37 0|wumpus|okay, tested: pruneblockchain 0 does nothing and returns immediately.
115 2017-02-16 10:17:52 0|wumpus|Arguments: "height" (numeric, required) The block height to prune up to. May be set to a discrete height, or to a unix timestamp to prune based on block time.
116 2017-02-16 10:21:33 0|Victorsueca|wumpus: was that on linux or windows?
117 2017-02-16 10:22:23 0|wumpus|linux
118 2017-02-16 10:22:51 0|Victorsueca|is it useful if I test it on windows now or it's about the same for this case?
119 2017-02-16 10:22:52 0|wumpus|well 0 is the genesis block, so pruning from there means not pruning at all
120 2017-02-16 10:23:00 0|wumpus|no, it's not useful to test this on other OSes
121 2017-02-16 10:23:22 0|luke-jr|wumpus: yes, but the code special-cases 0 as automatic
122 2017-02-16 10:24:10 0|Victorsueca|maybe that automatic check thought no pruning was needed at all? or that's not how it works?
123 2017-02-16 10:24:30 0|wumpus|GAH I can't get manual pruning to work at all on regtest. I created a 10000 block chain, started with prune=1, and no matter what I call pruneblockchain with it does nothing. So I guess my test is invalid :/
124 2017-02-16 10:24:56 0|wumpus|2017-02-16 10:21:21 Prune (Manual): prune_height=1 removed 0 blk/rev pairs 2017-02-16 10:21:40 Prune (Manual): prune_height=100 removed 0 blk/rev pairs 2017-02-16 10:22:25 Prune (Manual): prune_height=1000 removed 0 blk/rev pairs 2017-02-16 10:24:40 Prune (Manual): prune_height=10000 removed 0 blk/rev pairs
125 2017-02-16 10:25:26 0|wumpus|oh shit of course, it will only prune once it gets to another block file
126 2017-02-16 10:25:40 0|luke-jr|>_<
127 2017-02-16 10:26:29 0|wumpus|okay, generating a ton more bloocks
128 2017-02-16 10:27:01 0|wumpus|maybe using a live chain wasn't that bad an idea afterall, I now realize
129 2017-02-16 10:40:48 0|gmaxwell|The help text repeadily uses 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ as an example address. In general I think it's unwise to have valid example addresses, but I can't find any information about what address it is. It's a real working address that has been paid .2488 btc and has spent payments.
130 2017-02-16 10:41:06 0|gmaxwell|the commit that added it and the related PRs seem to make no mention of the address.
131 2017-02-16 10:41:15 0|gmaxwell|added by commit a6099ef319a73e2255dca77065600abb22c4f5f8
132 2017-02-16 10:41:21 0|wumpus|bleh, I thought we got rid of that
133 2017-02-16 10:41:32 0|gmaxwell|might be gone now, lemme look
134 2017-02-16 10:41:38 0|wumpus|no it's still there
135 2017-02-16 10:41:39 0|gmaxwell|nope, still there.
136 2017-02-16 10:42:18 0|wumpus|I vaguely remember that it was replaced with a constant defined in one place, which was not a valid address
137 2017-02-16 10:42:22 0|wumpus|but that must be on another timeline...
138 2017-02-16 10:42:28 0|gmaxwell|I had thought some charity ('sean's outpost') address was used (which I also think is not great) but I don't see any reason why I might have believed that this was that.
139 2017-02-16 10:42:42 0|gmaxwell|wumpus: yea, I too spend a lot of time in alternative universes.
140 2017-02-16 10:43:45 0|wumpus|hehe :) oh I think I know, that was for the GUI.
141 2017-02-16 10:44:31 0|Victorsueca|yeah, the e.g. on the pay to field got changed
142 2017-02-16 10:44:47 0|gmaxwell|it got put as an example in the pay to field? 0_o
143 2017-02-16 10:45:30 0|Victorsueca|I vaguely remember some PR requesting to change it by valid looking address that is not really valid
144 2017-02-16 10:48:06 0|Victorsueca|I'm using 0.13.2 and now on that field there is 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L
145 2017-02-16 10:49:36 0|gmaxwell|yep, not valid, which is what it should be IMO.
146 2017-02-16 11:09:52 0|wumpus|yes, a non-valid address was put in the pay-to field. That address, too, used to be valid at some time. Although it was terribly hard to type it over because it disappears when you start typing into the field. The RPC example is worse.
147 2017-02-16 11:11:56 0|midnightmagic|30 helens agree
148 2017-02-16 11:12:09 0|wumpus|it reminds me of a dumb mistake I made when I was young, a computer manual had KILL *.* as example for the KILL statement, which deleted. So while trying around I typed that in. Oops, that wiped the entire floppy disk, my dad was angry and I felt really stupid. At least that would have been recoverable, if I knew back then...
149 2017-02-16 11:12:35 0|midnightmagic|lol
150 2017-02-16 11:13:19 0|gmaxwell|I could see someone getting confused and copying from the wrong line on their screen... one address looks like any other..
151 2017-02-16 11:13:48 0|wumpus|yes it's pretty easy to copy the entire example
152 2017-02-16 11:14:01 0|midnightmagic|Who's "sje"?
153 2017-02-16 11:14:37 0|wumpus|at least the only sending call where it's used is sendmany, and it only sends relatively small amounts
154 2017-02-16 11:15:20 0|wumpus|still it should be replaced with a constant that is not a valid address, likein the GUI
155 2017-02-16 11:16:39 0|bitcoin-git|13bitcoin/06master 14d72fe44 15John Newbery: Allow maxsigcachesize to be zero...
156 2017-02-16 11:16:39 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/e43a58514dd3...df2f34dcad55
157 2017-02-16 11:16:40 0|bitcoin-git|13bitcoin/06master 14df2f34d 15Wladimir J. van der Laan: Merge #9770: Allow maxsigcachesize to be zero...
158 2017-02-16 11:17:03 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9770: Allow maxsigcachesize to be zero (06master...06sigcachemaxsize) 02https://github.com/bitcoin/bitcoin/pull/9770
159 2017-02-16 11:18:00 0|wumpus|AARGH wrong PR
160 2017-02-16 11:19:01 0|Lauda|lol
161 2017-02-16 11:19:20 0|wumpus|well it could have been worse. It's not bad enough to revert
162 2017-02-16 11:19:57 0|gmaxwell|what did you mean to merge instead?
163 2017-02-16 11:20:23 0|wumpus|9770. Which was just above it on the scren, but I had already signed off on that and it was already merged
164 2017-02-16 11:20:34 0|wumpus|a matter of looking at the wrong line...
165 2017-02-16 11:21:05 0|gmaxwell|So effective at merging he merges things without even intending to!
166 2017-02-16 11:21:08 0|gmaxwell|:P
167 2017-02-16 11:21:18 0|wumpus|#9771, sorry
168 2017-02-16 11:21:20 0|gribble|https://github.com/bitcoin/bitcoin/issues/9771 | Add missing cs_wallet lock that triggers new lock held assertion by ryanofsky ÷ Pull Request #9771 ÷ bitcoin/bitcoin ÷ GitHub
169 2017-02-16 11:22:00 0|wumpus|well it was kind of a mental stack overflow, I was working on that, then testing the pruning stuff, then the RPC argument stuff came up
170 2017-02-16 11:22:42 0|gmaxwell|wumpus: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop send me all your money
171 2017-02-16 11:23:05 0|wumpus|so while juggling those things, memory became lossy :)
172 2017-02-16 11:23:07 0|wumpus|gmaxwell: LOL
173 2017-02-16 11:23:58 0|wumpus|gmaxwell: that won't work, your address is not in any RPC examples
174 2017-02-16 11:26:45 0|wumpus|anyhow, ready to re-retry the pruning experiment with a real mainnet blockchain
175 2017-02-16 11:27:34 0|gmaxwell|AND ITS <GONE / NOT GONE>.
176 2017-02-16 11:28:22 0|wumpus|it's doing nothing and logging nothing, so my would be "NOT GONE"
177 2017-02-16 11:28:31 0|wumpus|genesis block is still ther
178 2017-02-16 11:32:57 0|MarcoFalke_|wumpus: You need to revert ntl. The commit is not signed :)
179 2017-02-16 11:33:34 0|wumpus|I also understand why @luke-jr - in FlushStateToDisk, it only goes into the pruning flow if fCheckForPruning || nManualPruneHeight > 0 ... fCheckForPruning is not set in manual pruning mode
180 2017-02-16 11:33:50 0|wumpus|huh?
181 2017-02-16 11:34:34 0|wumpus|I really don't get it now, this was using the script, it shouldn't push if not signed
182 2017-02-16 11:35:14 0|MarcoFalke_|maybe you `git push bitcoin` in another tab?
183 2017-02-16 11:35:55 0|wumpus|this is the console output https://0bin.net/paste/7sVJS0k86TMWtAdf#j3QhbG9mqPTx89KN6vb2DuB7O0x7sGiZYABHsqPvZGP
184 2017-02-16 11:36:27 0|wumpus|I did sign off and enter my passphrase
185 2017-02-16 11:36:38 0|wumpus|no, I never push manually
186 2017-02-16 11:37:11 0|gmaxwell|pushed by the people who secretly live under your keyboard.
187 2017-02-16 11:38:56 0|wumpus|well it must be something I did in another tab, just not a push
188 2017-02-16 11:38:59 0|bitcoin-git|[13bitcoin] 15laanwj 04force-pushed 06master from 14df2f34d to 14e43a585: 02https://github.com/bitcoin/bitcoin/commits/master
189 2017-02-16 11:39:14 0|wumpus|and back to e43a58514dd38dacd930aa4c94afb998d4360183
190 2017-02-16 11:41:07 0|MarcoFalke_|`git commit --amend` gets rid of the signature
191 2017-02-16 11:41:36 0|wumpus|the github-merge tool should probably get a check that what it is pushing is really what it expects to be pushing, in case the current branch changed under it
192 2017-02-16 11:42:14 0|wumpus|or rather, push a specific commit, not what happens to be the current branch
193 2017-02-16 11:42:19 0|wumpus|not sure it does that
194 2017-02-16 11:42:59 0|gmaxwell|oh did you run the merge tool twice concurrently?
195 2017-02-16 11:43:03 0|wumpus|blah, I wasn't intending to dive into source code management specifics today
196 2017-02-16 11:43:08 0|wumpus|gmaxwell: that's possible!
197 2017-02-16 11:43:39 0|gmaxwell|"This worksite has gone [ 0 ] days since an SCM emergency."
198 2017-02-16 11:56:19 0|Victorsueca|any PR that would be useful to test at the moment?
199 2017-02-16 12:00:16 0|morcos|wumpus: all for 0.14rc1 today but i think we need to wrap up the importmulti issues... ryanofsky opened #9773 yesterday to try to address the combination of what you and gmaxwell were asking for
200 2017-02-16 12:00:17 0|gribble|https://github.com/bitcoin/bitcoin/issues/9773 | WIP: Return errors from importmulti if complete rescans are not successful by ryanofsky ÷ Pull Request #9773 ÷ bitcoin/bitcoin ÷ GitHub
201 2017-02-16 12:00:37 0|morcos|i tihnk #9671 should also be included (it's simple and could avoid fund loss)
202 2017-02-16 12:00:39 0|gribble|https://github.com/bitcoin/bitcoin/issues/9671 | Fix super-unlikely race introduced in 236618061a445d2cb11e72 by TheBlueMatt ÷ Pull Request #9671 ÷ bitcoin/bitcoin ÷ GitHub
203 2017-02-16 12:00:39 0|wumpus|morcos: my brain is not working today so I've already given up on that
204 2017-02-16 12:01:13 0|morcos|heh fair enough.. but still need to get those 2 across the finish line
205 2017-02-16 12:01:20 0|wumpus|9671 is already merged?
206 2017-02-16 12:01:32 0|morcos|sorry #9761
207 2017-02-16 12:01:34 0|gribble|https://github.com/bitcoin/bitcoin/issues/9761 | Use 2 hour grace period for key timestamps in importmulti rescans by ryanofsky ÷ Pull Request #9761 ÷ bitcoin/bitcoin ÷ GitHub
208 2017-02-16 12:01:51 0|morcos|i think you are contagious
209 2017-02-16 12:02:02 0|wumpus|I'm okay with adding new things if they're ready for merge, everything that requires new review should probably be pushed to after 0.14.0, at some point we have to make a cut
210 2017-02-16 12:02:45 0|wumpus|I really can't keep moving the 0.14.0 rc1 day after day forward, keeping the tree in this state is holding up more and more things that could be merged for 0.15
211 2017-02-16 12:02:58 0|wumpus|but one more day is fine, as said, I'm not up to it today anyhow
212 2017-02-16 12:03:24 0|morcos|i don't think ryanofsky or i have a strong opinion about it, it seems you guys were the ones saying the current state is not acceptable
213 2017-02-16 12:03:49 0|morcos|current state is silent failure when you do importmulti on pruned node that needs to search more blocks than you have
214 2017-02-16 12:03:57 0|wumpus|at some point you should think of it as "is it acceptable for a rc1"?
215 2017-02-16 12:04:10 0|wumpus|it's certain that issues come up with user testing and have to be solved before rc2
216 2017-02-16 12:04:27 0|morcos|we're just trying to fix the problems
217 2017-02-16 12:04:48 0|wumpus|sure, and that's very good, but there's always new problems
218 2017-02-16 12:05:07 0|morcos|but would be helpful to have you and gmaxwell take a look and say yes thats what i wanted
219 2017-02-16 12:07:18 0|wumpus|yes the approach in 9773 looks good to me
220 2017-02-16 12:27:47 0|fanquake|Looks like you can't re-open a merged PR.
221 2017-02-16 12:35:27 0|mryandao|i'm having a bit of problem after updating my tree from upstream
222 2017-02-16 12:35:31 0|mryandao|this is the error i'm getting
223 2017-02-16 12:35:32 0|mryandao|util.cpp:834:63: error: use of undeclared identifier 'COPYRIGHT_HOLDERS'
224 2017-02-16 12:35:35 0|mryandao|std::string strCopyrightHolders = strPrefix + strprintf(_(COPYRIGHT_HOLDERS), _(COPYRIGHT_HOLDERS_SUBSTITUTION));
225 2017-02-16 12:35:35 0|wumpus|fanquake true :(
226 2017-02-16 12:35:42 0|wumpus|mryandao: you need to re-run autogen.sh and configure
227 2017-02-16 12:35:56 0|wumpus|(that's almost always the solution to such issues)
228 2017-02-16 12:36:29 0|mryandao|oh I see, i thought a make would have sufficed. thanks
229 2017-02-16 12:36:52 0|wumpus|make only suffices if there are no high-level build system changes, just source changes
230 2017-02-16 12:37:13 0|fanquake|wumpus do you plan on merging any more tonight, or taking a break?
231 2017-02-16 12:37:15 0|wumpus|otherwise you need to run ./autogen.sh - sometimes you can get away with not doing it, but it's gambling in a way
232 2017-02-16 12:37:26 0|wumpus|fanquake: I'm taking a break from merging yes :)
233 2017-02-16 12:38:01 0|fanquake|wumpus no worries, otherwise was going to suggest some quick merges.
234 2017-02-16 12:38:30 0|fanquake|wumpus I'm sure I was probably the only one affected my the miss-merge heh
235 2017-02-16 12:39:16 0|wumpus|fanquake: well at first I didn't notice that the push was unsigned, otherwise I'd have reverted it immediately
236 2017-02-16 12:39:41 0|fanquake|wumpus would you do that through the GH ui?
237 2017-02-16 12:39:50 0|wumpus|fanquake: anyhow if you have simple and straightforward things that could be merged feel free to suggest them
238 2017-02-16 12:39:53 0|fanquake|Or push another commit?
239 2017-02-16 12:40:27 0|wumpus|fanquake: I first have to disable the branch locking on github, then reset --hard HEAD~1, push -f, then re-enable the branch locking
240 2017-02-16 12:40:54 0|wumpus|github doesn't allow force-pushes, it does allow unsigned pushes unfortunately
241 2017-02-16 12:41:11 0|wumpus|at least: there's no option to disable them at the moment
242 2017-02-16 12:41:34 0|fanquake|Right. Maybe a new tick-box to turn that off in future. Not sure about the big new header now btw.
243 2017-02-16 12:42:07 0|wumpus|I don't really like it. I disliked it in the beginning, but thought maybe I'd get used to it, but it's still big and ugly
244 2017-02-16 12:42:54 0|fanquake|re "easy" merges: #9763 #9696 #9675
245 2017-02-16 12:42:56 0|gribble|https://github.com/bitcoin/bitcoin/issues/9763 | [Trivial] Update comments referencing main.cpp by CryptAxe ÷ Pull Request #9763 ÷ bitcoin/bitcoin ÷ GitHub
246 2017-02-16 12:42:57 0|gribble|https://github.com/bitcoin/bitcoin/issues/9696 | [trivial] Fix recently introduced typos in comments by practicalswift ÷ Pull Request #9696 ÷ bitcoin/bitcoin ÷ GitHub
247 2017-02-16 12:42:59 0|gribble|https://github.com/bitcoin/bitcoin/issues/9675 | Fix typo and spelling inconsistency in CONTRIBUTING.md by kokifpen ÷ Pull Request #9675 ÷ bitcoin/bitcoin ÷ GitHub
248 2017-02-16 12:43:01 0|wumpus|I'd prefer a small bar with a few icons - making it big like this just takes up extra screen space in a site that should be focused on the code
249 2017-02-16 12:43:27 0|Victorsueca|wumpus: you talking about that new black bar at the top?
250 2017-02-16 12:43:28 0|fanquake|Indeed. Especially when your on a smallish screen.
251 2017-02-16 12:43:40 0|wumpus|Victorsueca: yep
252 2017-02-16 12:44:05 0|wumpus|fanquake: indeed. Well even big modern screens are usually wide, but not very high, so vertical screen space is at premium
253 2017-02-16 12:44:10 0|wumpus|fanquake: will take a look, thanks
254 2017-02-16 12:44:12 0|Victorsueca|for some reason it becomes white if you logout
255 2017-02-16 12:44:53 0|Victorsueca|but yeah, it's ugly, it takes much attention and distracts people from important things
256 2017-02-16 12:45:03 0|Victorsueca|it's too big and contrasted
257 2017-02-16 12:45:07 0|wumpus|indeed
258 2017-02-16 12:46:18 0|wumpus|9763 is a no-brainer, I can do that one, at least if I get the numbers right :p
259 2017-02-16 12:46:58 0|wumpus|looks like it could use squashing though
260 2017-02-16 12:47:11 0|fanquake|Iwumpus 'm also vary calling anything an "easy" merge, without a good way to check if they somehow break other more-important patches.
261 2017-02-16 12:47:22 0|fanquake|*I'm always
262 2017-02-16 12:47:23 0|wumpus|three commits to make three related documentation-only changes
263 2017-02-16 12:47:57 0|fanquake|GitHub doesn't seem to have a way to check, if I merge this, what other PR's will it break. Would be handy when trying to cehck quickly.
264 2017-02-16 12:48:11 0|wumpus|not sure if I'm up to such "advanced" git manipulation at the moment... let's see
265 2017-02-16 12:48:24 0|wumpus|fanquake: agree, that would be great to have
266 2017-02-16 12:49:46 0|wumpus|fanquake: at a company I worked at they had a script to generate a 'patch PERT' which was a diagram of which things could be merged without (code level) conflicts, and which had conflicts, that was kind of neat. Though they used a terrible SCM, IBM clearcase or something, that was less neat :)
267 2017-02-16 12:50:18 0|morcos|gmaxwell: can we go through exactly how you think the grace periods should work... i never looked at manual prune before but looks like it takes a block or a height
268 2017-02-16 12:50:21 0|morcos|sorry time
269 2017-02-16 12:50:22 0|fanquake|wumpus ah nice.
270 2017-02-16 12:50:46 0|fanquake|wumpus I was thinking if you could have a "projects" like screen, in which you could stack PRs, and see what breaks what.
271 2017-02-16 12:52:11 0|morcos|gmaxwell: so you think if you give it a time it should automatically subtract 7200 from it and then call findEarliestAtLeast?
272 2017-02-16 12:52:55 0|morcos|what happens if you give it a block (no grace period?). i think that seems reasonable'ish. but it would be counterintuitive if it didn't do exactly what you expect with a block i think
273 2017-02-16 13:02:03 0|bitcoin-git|13bitcoin/06master 1400e623d 15CryptAxe: [Trivial] Update comments referencing main.cpp
274 2017-02-16 13:02:03 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/e43a58514dd3...8743320d6cb3
275 2017-02-16 13:02:04 0|bitcoin-git|13bitcoin/06master 148743320 15Wladimir J. van der Laan: Merge #9763: [Trivial] Update comments referencing main.cpp...
276 2017-02-16 13:02:53 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9763: [Trivial] Update comments referencing main.cpp (06master...06comments) 02https://github.com/bitcoin/bitcoin/pull/9763
277 2017-02-16 13:03:03 0|fanquake|wumpus git-fu back under control
278 2017-02-16 13:03:32 0|wumpus|no stupid mistakes? I'm as surprised as you are :)
279 2017-02-16 13:03:47 0|fanquake|Maybe I didn't look closely enough
280 2017-02-16 13:59:49 0|wumpus|hah the hardlinking trick works, both for block files and ldb files, created this script to do it: https://gist.github.com/laanwj/3c4614a23e072cbb3d39090da1834a68 . Creates a "copy" of the whole state almost instantly. I've tried various things (including pruning) and the original state remains unaffected.
281 2017-02-16 14:06:32 0|bitcoin-git|13bitcoin/06master 1436164fa 15Koki Takahashi: Fix typo and spelling inconsistency in CONTRIBUTING.md...
282 2017-02-16 14:06:32 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/8743320d6cb3...afae75fd3dad
283 2017-02-16 14:06:33 0|bitcoin-git|13bitcoin/06master 14afae75f 15Wladimir J. van der Laan: Merge #9675: Fix typo and spelling inconsistency in CONTRIBUTING.md...
284 2017-02-16 14:06:52 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9675: Fix typo and spelling inconsistency in CONTRIBUTING.md (06master...06fix_typo_in_contributing) 02https://github.com/bitcoin/bitcoin/pull/9675
285 2017-02-16 14:55:36 0|bitcoin-git|[13bitcoin] 15jnewbery opened pull request #9777: Handle unusual maxsigcachesize gracefully (06master...06sigcache2) 02https://github.com/bitcoin/bitcoin/pull/9777
286 2017-02-16 16:11:58 0|bitcoin-git|[13bitcoin] 15morcos opened pull request #9778: Add two hour buffer to manual pruning (06master...062hrprune) 02https://github.com/bitcoin/bitcoin/pull/9778
287 2017-02-16 18:39:29 0|luke-jr|wumpus: but fCheckForPruning is set in manual pruning mode after a new block is connected?
288 2017-02-16 18:41:28 0|wumpus|luke-jr: it shouldn't be
289 2017-02-16 18:41:40 0|wumpus|manual pruning is manual pruning, the check should never be enabled
290 2017-02-16 18:42:07 0|wumpus|if it is, that is a bug
291 2017-02-16 18:42:12 0|luke-jr|FindBlockPos/FindUndoPos?
292 2017-02-16 18:42:53 0|luke-jr|or is fPruneMode false for manual pruning?
293 2017-02-16 18:44:07 0|wumpus|no,that should be true if any pruning is to be done
294 2017-02-16 18:44:28 0|wumpus|in retrospect it'd have been better to make fPruneMode an enum, which can be off, manual and auto
295 2017-02-16 18:44:59 0|wumpus|the boolean gymnastics with fCheckForPruning is kind of difficult to follow
296 2017-02-16 18:47:08 0|wumpus|I assumed it would be enabled when auto pruning is enabled, but apparently it's also enabled in a few other places
297 2017-02-16 18:50:01 0|wumpus|luke-jr: ah I got understand it now - nPruneTarget is 0 in manual pruning mode
298 2017-02-16 18:50:15 0|wumpus|luke-jr: so FindFilesToPrune does nothing in manual pruning mode
299 2017-02-16 18:50:36 0|wumpus|even though it may get called (even automatically in some cases), nothing will happen.
300 2017-02-16 18:50:48 0|luke-jr|aha!
301 2017-02-16 18:51:01 0|wumpus|I wish it'd simply pass parameters instead of signalling using global flags
302 2017-02-16 18:51:21 0|gmaxwell|well, or change to an enum.
303 2017-02-16 18:52:04 0|wumpus|or both. I mean the global enum is fine for the mode but it shouldn't change over time
304 2017-02-16 18:54:53 0|luke-jr|these changes sound even more invasive than that PR :P
305 2017-02-16 18:54:55 0|wumpus|depending on what function ran last. This is impossible to follow. Anyhow I understand marcofalke's rationale for #9524 now, it's very easy to break that code and belt and suspenders wouldn't hurt. Except that even with #9524, it will get into FindFilesToPrune in some cases, so if that check is broken, bad things will happen *automatically* too
306 2017-02-16 18:54:57 0|gribble|https://github.com/bitcoin/bitcoin/issues/9524 | rpc: Dont FlushStateToDisk when pruneblockchain(0) by MarcoFalke ÷ Pull Request #9524 ÷ bitcoin/bitcoin ÷ GitHub
307 2017-02-16 18:54:59 0|gribble|https://github.com/bitcoin/bitcoin/issues/9524 | rpc: Dont FlushStateToDisk when pruneblockchain(0) by MarcoFalke ÷ Pull Request #9524 ÷ bitcoin/bitcoin ÷ GitHub
308 2017-02-16 18:55:11 0|wumpus|well that PR is just covering up, it doesn't solve the underlying problem
309 2017-02-16 18:55:14 0|luke-jr|right
310 2017-02-16 18:55:20 0|wumpus|it's not urgent in any case
311 2017-02-16 18:55:25 0|luke-jr|agree
312 2017-02-16 18:56:40 0|sipa|3 more PRs marked 0.14
313 2017-02-16 18:57:23 0|wumpus|oh no
314 2017-02-16 18:58:10 0|sipa|i mean right now
315 2017-02-16 18:59:18 0|wumpus|right, yes, let's hopefully keep it at those
316 2017-02-16 18:59:26 0|luke-jr|wumpus: wait what
317 2017-02-16 18:59:31 0|luke-jr|why would nPruneTarget be 0?
318 2017-02-16 18:59:53 0|luke-jr|if (nPruneArg == 1) { // manual pruning: -prune=1
319 2017-02-16 18:59:54 0|luke-jr|nPruneTarget = std::numeric_limits<uint64_t>::max();
320 2017-02-16 19:00:02 0|wumpus|luke-jr: because ti should never be set to a value
321 2017-02-16 19:00:40 0|wumpus|huh!?! what does setting that to uint64_t max even do. Oh wait, it's an offset, not an absolute height. yes that does make sense
322 2017-02-16 19:01:23 0|gmaxwell|Meeting time?
323 2017-02-16 19:02:07 0|wumpus|it at least intends 'we want to keep 2^64-1 blocks`. Let me re-read the code in FindFilesToPrune then
324 2017-02-16 19:02:21 0|wumpus|#meetingstart
325 2017-02-16 19:02:24 0|sipa|meetingh
326 2017-02-16 19:02:37 0|petertodd|meetinghh
327 2017-02-16 19:02:39 0|lightningbot|Meeting started Thu Feb 16 19:02:37 2017 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.
328 2017-02-16 19:02:39 0|lightningbot|Useful Commands: #action #agreed #help #info #idea #link #topic.
329 2017-02-16 19:02:39 0|wumpus|#startmeeting
330 2017-02-16 19:03:00 0|wumpus|jonasschnelli: well it's a magic option value but it's only for the option, it doesn't get represented internally as 1
331 2017-02-16 19:03:02 0|luke-jr|tbh, I've had second thoughts about the manual pruning design (seems it'd be nicer to do "automatic pruning always, but with named barriers that must confirm being done up to <height> before pruning it"), but that's beyond this topic
332 2017-02-16 19:03:19 0|wumpus|jonasschnelli: I think the reason or choosing 1 was that -prune will work
333 2017-02-16 19:03:28 0|wumpus|luke-jr: I like the current manual pruning from an API point of view
334 2017-02-16 19:03:29 0|luke-jr|s/always/always in pruning mode/
335 2017-02-16 19:03:34 0|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
336 2017-02-16 19:03:45 0|luke-jr|wumpus: yes, but it doesn't scale well if you have 2 external apps using the node
337 2017-02-16 19:04:04 0|cfields|hi
338 2017-02-16 19:04:06 0|wumpus|luke-jr: it's very simple. Automatic pruning is disabled and the client/admin can choose what to prune. Also useful for testing the pruning stuff without too much complexity
339 2017-02-16 19:04:13 0|wumpus|luke-jr: the implementation is convoluted though
340 2017-02-16 19:04:17 0|morcos|wumpus: i think two more are needed for 0.14, both very small #9760 and #9761 (9761 is already included in one of the marked ones)
341 2017-02-16 19:04:19 0|gribble|https://github.com/bitcoin/bitcoin/issues/9760 | [wallet] Remove importmulti always-true check by ryanofsky ÷ Pull Request #9760 ÷ bitcoin/bitcoin ÷ GitHub
342 2017-02-16 19:04:20 0|paveljanik|proposed topic: release status, where can we help...
343 2017-02-16 19:04:21 0|gribble|https://github.com/bitcoin/bitcoin/issues/9761 | Use 2 hour grace period for key timestamps in importmulti rescans by ryanofsky ÷ Pull Request #9761 ÷ bitcoin/bitcoin ÷ GitHub
344 2017-02-16 19:04:24 0|wumpus|luke-jr: but I'm happy someone implemented it anyhow
345 2017-02-16 19:04:43 0|kanzure|hi.
346 2017-02-16 19:04:48 0|petertodd|wumpus: same: my OpenTimestamps servers actually need this feature
347 2017-02-16 19:05:00 0|wumpus|release status: running as hard as we can but staying in the same place
348 2017-02-16 19:05:10 0|sipa|i think we're very close.
349 2017-02-16 19:05:15 0|morcos|wumpus: boo! we're not staying in the same place
350 2017-02-16 19:05:21 0|gmaxwell|I am becoming increasingly happy with the release.
351 2017-02-16 19:05:31 0|sipa|let's be optimistic: everything we're fixing is an improvememt
352 2017-02-16 19:05:53 0|gmaxwell|Two weeks ago I was chewing my nails feeling like we were at risk of shipping something that wouldn't meet our standards of quality, and now I am not worried. :)
353 2017-02-16 19:06:07 0|jonasschnelli|hah. Good.
354 2017-02-16 19:06:07 0|wumpus|but I think we need to decide when we can do release candidate 1, which is a test release anyway, when rc1 is out it's bound to find more issues
355 2017-02-16 19:06:33 0|sipa|i think we can do rc1 today?
356 2017-02-16 19:06:54 0|gmaxwell|I would be fine doing it _now_, now. There are AFAIK not anything in the pipe which are disruptive enough issues that they'd degrade our rc1 learning, though a rc2 will be guarenteed.
357 2017-02-16 19:06:54 0|paveljanik|rc1 for the weekend is fine!
358 2017-02-16 19:06:58 0|sipa|or at least branch off today
359 2017-02-16 19:07:01 0|luke-jr|I don't think we have any critical problems blocking a rc1
360 2017-02-16 19:07:18 0|jtimon|sipa: why branch of if we can't rc1 ?
361 2017-02-16 19:07:20 0|wumpus|I don't think so either
362 2017-02-16 19:07:26 0|cfields|no more blockers from me either
363 2017-02-16 19:07:28 0|luke-jr|jtimon: to begin merging for 0.15?
364 2017-02-16 19:07:42 0|wumpus|right, because more and more pulls for 0.15 are waiting
365 2017-02-16 19:07:59 0|jonasschnelli|IMO the two import multi fixes are not critical and can go in after rc1 (or even in 0.15 in the worst case).
366 2017-02-16 19:08:09 0|gmaxwell|all you naughty people not banging away at getting 0.14 ready to go.
367 2017-02-16 19:08:30 0|morcos|jonasschnelli: well lets decide that
368 2017-02-16 19:08:41 0|gmaxwell|jonasschnelli: I think 0.15 would be really unfortunate since they're interface changes that users may have to accomidate in their software. (and also are covering corner cases that could result in funds losses)
369 2017-02-16 19:08:44 0|morcos|yesterday people were saying it was bad to release with something that coudl silently not find funds
370 2017-02-16 19:08:44 0|wumpus|I think the fixes are all important, and should get either into 0.14.0 or backported to the 0.14 branch if they don't, but not everything should be regarded as yet another thing to hold up rc1
371 2017-02-16 19:09:04 0|gmaxwell|but no reason to hold rc1 for them. They're well understood.
372 2017-02-16 19:09:30 0|jonasschnelli|Yes. I think the should be in 0.14. Just worst case if we spun of rc1 and chaincode-labs colabses. :)
373 2017-02-16 19:09:30 0|wumpus|anyhow tomorrow sounds good to me, let's try to get in what we can get in
374 2017-02-16 19:09:32 0|gmaxwell|it's not like someone is going to encounter one of them running rc1 and leave us going "shit was that the know issue or something else?"
375 2017-02-16 19:09:33 0|luke-jr|#9619 is a fix, but not really critical since anyone affected needs a workaround in 0.13 anyway (just pushed an amend-with-no-changes because the Travis error seems impossible)
376 2017-02-16 19:09:35 0|gribble|https://github.com/bitcoin/bitcoin/issues/9619 | Bugfix: RPC/Mining: GBT should return 1 MB sizelimit before segwit activates by luke-jr ÷ Pull Request #9619 ÷ bitcoin/bitcoin ÷ GitHub
377 2017-02-16 19:09:36 0|achow101|what's the point of making an rc1 if we're going to need rc2 anyways?
378 2017-02-16 19:09:44 0|sipa|achow101: exposure
379 2017-02-16 19:09:47 0|gmaxwell|achow101: to start getting people using it.
380 2017-02-16 19:09:51 0|wumpus|achow101: get the code actually tested?
381 2017-02-16 19:09:54 0|gmaxwell|more*
382 2017-02-16 19:09:57 0|wumpus|what is the point of doing rc1 at all if not?
383 2017-02-16 19:09:58 0|jonasschnelli|I think we should plan enough time to fix stuff that gets report after rc1...
384 2017-02-16 19:09:58 0|kanzure|and seeking bug reports
385 2017-02-16 19:10:19 0|sipa|jonasschnelli: the release schedule already has 2 weeks left
386 2017-02-16 19:10:34 0|wumpus|achow101: I don't think it ever happened that a major release didn'tneed a rc2
387 2017-02-16 19:10:37 0|luke-jr|2 weeks can go fast
388 2017-02-16 19:10:53 0|jonasschnelli|Other can work on fixes reported in rc1.
389 2017-02-16 19:10:56 0|gmaxwell|achow101: what we generally don't want to do is to ship an RC1 with issues bad enough that it will harm the testers seriously, or which will fail in mysterious ways that we can't learn from. E.g. if we had a known crash fix, we would hold rc1, so that we wouldn't worry that every user crash report might have been an unknown issue.
390 2017-02-16 19:10:59 0|jonasschnelli|*Others
391 2017-02-16 19:11:06 0|morcos|my only concern is that if we do rc1 everyone will be distracted with that and not this last few remaining PR's.. but i guess i don't really care either way
392 2017-02-16 19:11:09 0|cfields|wumpus: just forget the bump to v0.14 again and thereby guarantee an rc2 :p
393 2017-02-16 19:11:40 0|morcos|seems like if someone would just review those PR's we might be able to get them merged today
394 2017-02-16 19:11:40 0|wumpus|cfields: lol exactly
395 2017-02-16 19:11:43 0|gmaxwell|well I think an RC2 is already guarenteed if we do an rc1 ASAP. But thats fine. Much better than not doing the rc1.
396 2017-02-16 19:11:50 0|achow101|ok
397 2017-02-16 19:12:06 0|wumpus|a RC2 is guaranteed in any case, not just if we do rc1 asap
398 2017-02-16 19:12:19 0|wumpus|that's my point, we don't know of all the issues yet
399 2017-02-16 19:12:27 0|morcos|almost all the complication is in new tests.. reviewing the code changes is pretty simple
400 2017-02-16 19:13:20 0|wumpus|the only one I doubt about is #9773, at it is still WIP
401 2017-02-16 19:13:22 0|gribble|https://github.com/bitcoin/bitcoin/issues/9773 | WIP: Return errors from importmulti if complete rescans are not successful (on top of #9761) by ryanofsky ÷ Pull Request #9773 ÷ bitcoin/bitcoin ÷ GitHub
402 2017-02-16 19:13:46 0|luke-jr|it's a new feature, so we could just say "don't use this without being aware of the risks"
403 2017-02-16 19:14:14 0|paveljanik|mark it as experimental then?
404 2017-02-16 19:14:42 0|sipa|paveljanik: meh, i think we're close enough to not do that
405 2017-02-16 19:15:17 0|luke-jr|I mean in rc1 only
406 2017-02-16 19:15:28 0|wumpus|well even with that change it can be marked as experimental
407 2017-02-16 19:15:35 0|wumpus|it is new code afterall
408 2017-02-16 19:15:40 0|gmaxwell|I'm not too worried about it in rc1.
409 2017-02-16 19:16:13 0|wumpus|there are probably still problems with it that we haven't found, which will be found by people testing it
410 2017-02-16 19:16:34 0|paveljanik|we can mark it as experimental in the release notes only...
411 2017-02-16 19:16:35 0|wumpus|so yes, experimental makes sense. Though a new major release should be considered experimental entirely
412 2017-02-16 19:16:39 0|gmaxwell|people running rcs are the least likely to lose funds due to a rescan limitation, and there won't be many of them.
413 2017-02-16 19:17:51 0|morcos|i think it is a mistake to call it experimental
414 2017-02-16 19:17:57 0|morcos|we don't want to devalue the meaning of that word
415 2017-02-16 19:18:15 0|wumpus|ok...
416 2017-02-16 19:18:18 0|morcos|sometimes we may want to have things that are actually experimental and we don't want people to think we just always say that
417 2017-02-16 19:18:41 0|wumpus|"this feature is experimental level 4"
418 2017-02-16 19:18:45 0|sipa|haha
419 2017-02-16 19:18:51 0|kanzure|nasa technical readiness levels
420 2017-02-16 19:18:56 0|CodeShark|The whole thing is experimental :p
421 2017-02-16 19:18:57 0|morcos|this is known to the state of CA to be experimental
422 2017-02-16 19:18:58 0|petertodd|morcos: "dangerously experimental"
423 2017-02-16 19:19:08 0|petertodd|morcos: lol
424 2017-02-16 19:19:24 0|gmaxwell|Yea, thats why I was not supporting expiremental.
425 2017-02-16 19:19:56 0|instagibbs|morcos, accounts... deprecated!
426 2017-02-16 19:20:15 0|morcos|what.. is that an announcement? a question?
427 2017-02-16 19:20:18 0|morcos|i hate accounts
428 2017-02-16 19:20:22 0|gmaxwell|For rc1 we can simply say that there are in-flight improvements to that feature link to the PRs. if we really want to... in a reply to the announcement.
429 2017-02-16 19:20:43 0|sipa|let's just review the outstanding patches, they are tiny
430 2017-02-16 19:20:44 0|instagibbs|morcos, we use "deprecated" in things that are lasting forever in practice, bad joke
431 2017-02-16 19:20:51 0|jtimon|mhm, why 9619 doesn't go in for 0.14?
432 2017-02-16 19:20:52 0|morcos|oh.. yeah
433 2017-02-16 19:20:59 0|sipa|with some luck we can get everything merged
434 2017-02-16 19:21:16 0|sipa|branch and rc1 tomorrow
435 2017-02-16 19:21:16 0|wumpus|gmaxwell: yes, that there is still work in progress, that's better and more clear than the word experimental
436 2017-02-16 19:21:23 0|sipa|with whatever is in
437 2017-02-16 19:21:34 0|morcos|ok, so can we just pick a time. wumpus is going to call rc1 tomorrow morning.. it tonight we can convince people to merge a few of these other things... that'll leave less for rc2
438 2017-02-16 19:22:06 0|morcos|that was "if tonight" , if not , then ok
439 2017-02-16 19:22:10 0|sipa|wumpus: is that fine by you?
440 2017-02-16 19:22:18 0|wumpus|yes, that's fine with me
441 2017-02-16 19:22:49 0|wumpus|I'm okay with another day, let's just not let it slip another week, that next thursday we're again wondering when to do the rc1 :)
442 2017-02-16 19:23:17 0|sipa|next thursday we should be talking about doing rc2
443 2017-02-16 19:23:24 0|wumpus|yes, ideally
444 2017-02-16 19:23:32 0|gmaxwell|We're at a point where beyond the couple in flight PRs little to no more improvement is happening, which is when we need more input.
445 2017-02-16 19:23:55 0|achow101|so rc1 tomorrow regardless of whether those three prs get merged?
446 2017-02-16 19:24:07 0|sipa|achow101: that's what i suggest, yes
447 2017-02-16 19:24:13 0|paveljanik|+1
448 2017-02-16 19:24:22 0|achow101|^
449 2017-02-16 19:26:15 0|sipa|are we ok with talking about things beyond 0.14?
450 2017-02-16 19:26:31 0|wumpus|sure!
451 2017-02-16 19:26:35 0|luke-jr|new #topic?
452 2017-02-16 19:26:43 0|sipa|i'd briefly like to talk about randomness
453 2017-02-16 19:26:56 0|wumpus|#topic randomness
454 2017-02-16 19:26:57 0|luke-jr|that's random.
455 2017-02-16 19:27:07 0|sipa|we currently have 3 "levels" of randomnesz
456 2017-02-16 19:27:23 0|sipa|fastrandomcontext, getrandbytes, getsecurerandbytes
457 2017-02-16 19:27:29 0|sipa|i'd like to have only 2
458 2017-02-16 19:27:32 0|wumpus|we need a random number of levels of randomness
459 2017-02-16 19:27:43 0|wumpus|yes.
460 2017-02-16 19:27:47 0|wumpus|why are there three?
461 2017-02-16 19:27:51 0|instagibbs|can you explain "getsecurerandbytes"
462 2017-02-16 19:27:59 0|instagibbs|im going through code now but..
463 2017-02-16 19:28:01 0|wumpus|I mean we need one for wallet keys, I understand that
464 2017-02-16 19:28:03 0|sipa|the last one is used for privaye keys
465 2017-02-16 19:28:05 0|jtimon|why 9619 doesn't go in for 0.14?
466 2017-02-16 19:28:24 0|jonasschnelli|jtimon: wrong topic
467 2017-02-16 19:28:28 0|sipa|it's as secure as getrandbytes if all goes well, but it's more paranoid
468 2017-02-16 19:28:49 0|sipa|so, i've been playing with a chacha2p based rng instead of fastrandomcontext
469 2017-02-16 19:28:52 0|jtimon|jonasschnelli: suggested topic then
470 2017-02-16 19:28:54 0|wumpus|I think I'm fine with an extra paranoid level for wallet keys
471 2017-02-16 19:28:58 0|sipa|*chacha20
472 2017-02-16 19:29:19 0|sipa|which takes around 10ns for a 32-bit rand
473 2017-02-16 19:29:32 0|wumpus|it's much more important to have good randomness there then in almost any other place in computing currently
474 2017-02-16 19:29:38 0|instagibbs|"GetStrongRandBytes" <--- this it?
475 2017-02-16 19:29:50 0|rabidus|return 4
476 2017-02-16 19:29:50 0|sipa|the current fastrandomcontext takes 1.5ns, but with extra optimizations it can be made comparablr
477 2017-02-16 19:30:10 0|sipa|and if we have that, i think we can use strong randomnes for everything
478 2017-02-16 19:30:14 0|wumpus|for non wallet keys we can probably do with one level
479 2017-02-16 19:30:20 0|wumpus|is that your plan sipa?
480 2017-02-16 19:30:38 0|sipa|basically i suggest making all RNGs cryptographic
481 2017-02-16 19:30:56 0|sipa|but the fast one is not thread-safe, doesn't reseed, doesn't protect against VM reloads
482 2017-02-16 19:30:56 0|wumpus|so merge the fastrandomcontext and somewhatmoresecure level, and keeping that and the ultra-paranoid one for wallet keys
483 2017-02-16 19:31:37 0|sipa|i realize the "only two randomness levels" is a bit of an abstract goal
484 2017-02-16 19:31:46 0|wumpus|yes the fastrandomcontext is supposed to only eb used from one thread at a time
485 2017-02-16 19:31:56 0|morcos|are there any inner loops that use random numbers?
486 2017-02-16 19:32:00 0|petertodd|wumpus: the ultra paranoid one can also use the chacha code
487 2017-02-16 19:32:01 0|wumpus|because it's for inner loops
488 2017-02-16 19:32:06 0|sipa|yes, the wallet coin selection
489 2017-02-16 19:32:21 0|sipa|i benchmarked it, making it chacha20 doesn't affect its performance
490 2017-02-16 19:32:24 0|wumpus|any locking for synchronization there would be pretty bad
491 2017-02-16 19:32:43 0|wumpus|there's also an inner random loop in the address selection code IIRC
492 2017-02-16 19:32:57 0|jonasschnelli|Do we need cPRNG for coin selection?
493 2017-02-16 19:32:58 0|sipa|yup
494 2017-02-16 19:33:03 0|wumpus|sipa: yes chacha20 is fast, but the problem is the thread safety
495 2017-02-16 19:33:06 0|sipa|jonasschnelli: no, we don't
496 2017-02-16 19:33:16 0|gmaxwell|sipa wants to reduce the codebase complexity.
497 2017-02-16 19:33:21 0|sipa|but chacha20 is so fast i don't care
498 2017-02-16 19:33:23 0|wumpus|if you want to be able to share a random context between threads, you end up with lots of synchronization overhead
499 2017-02-16 19:33:24 0|jonasschnelli|Yes. This would be good.
500 2017-02-16 19:33:52 0|wumpus|that's why the inner loops use a non-threadsafe random context, =which doesn't matter as it's only used by one thread
501 2017-02-16 19:34:03 0|bitcoin-git|[13bitcoin] 15gmaxwell opened pull request #9779: Update nMinimumChainWork and defaultAssumeValid. (06master...06update_chainparams) 02https://github.com/bitcoin/bitcoin/pull/9779
502 2017-02-16 19:34:12 0|sipa|having clearer expectations about the rngs may simplify getting rid of openssl later
503 2017-02-16 19:34:19 0|wumpus|the thread sync overhead is where the overhead would be
504 2017-02-16 19:34:25 0|sipa|though that's not something to discuss now, i think
505 2017-02-16 19:34:39 0|wumpus|so how would you cope with that sipa? or would it all be non-shared context?
506 2017-02-16 19:35:08 0|sipa|so 1) replace fastrandomcontext with a bit more featureful chacha20 based one
507 2017-02-16 19:35:41 0|wumpus|yes, depending on openssl for just randomness is fine, there's no urgent reason to get rid of that, and it seems controversial for some people
508 2017-02-16 19:35:48 0|sipa|2) see where the current non-strong-getrandbytes can be replaced with fastrandcontexts, and replace everything with getstrongranbytes
509 2017-02-16 19:35:52 0|wumpus|that makes sense
510 2017-02-16 19:36:08 0|gmaxwell|one of the harder points (beyond threading) is that we need to manage which RNGs are robust against a VM image being snapshotted and restored. Coinselection using the same randomness again after a VM restore would be harmless. Choosing a crypto nonce would be much less harmless. If a RNG needs to be outputing data intially after restore there is unfortunately a runtime cost (esp on ARM).
511 2017-02-16 19:37:00 0|wumpus|also I think we need an abstraction for 'kernel randomness', this came up recently in context of OpenBSD, which doesn't have /dev/random/urandom available in all contexts
512 2017-02-16 19:37:09 0|gmaxwell|Pieter and I have been debating this a little bit the past could days.
513 2017-02-16 19:37:25 0|wumpus|the modern way,sandbox-proof way seems to be to use a specific system call fo that, but it differs per OS unfortunately
514 2017-02-16 19:37:28 0|sipa|wumpus: yup, that would go into the (singular) getstrongrandbytes implementation
515 2017-02-16 19:37:29 0|cfields|isn't there an old PR for exactly that abstraction?
516 2017-02-16 19:37:29 0|gmaxwell|wumpus: we do have a function for OS randomness, it should be smarter of course... but it was only fairly recently introduced.
517 2017-02-16 19:37:50 0|Victorsueca|maybe you could get rid of getrandbytes? so we keep the fast one for simple operations and the secure and paranoid one for important stuff and you can focus on implementing more features on those two
518 2017-02-16 19:38:01 0|gmaxwell|GetOSRand()
519 2017-02-16 19:38:08 0|wumpus|(linux also has a "getrandom" system call that can be used instead of /dev/urandom, in sandboxes)
520 2017-02-16 19:38:14 0|sipa|Victorsueca: read the above discussion, that is exactly what i am proposing
521 2017-02-16 19:38:24 0|wumpus|gmaxwell: ok
522 2017-02-16 19:38:42 0|gmaxwell|wumpus: yes, in newer systems. We do mention using that in the PR that implemented GetOSRand I think. (getentropy)
523 2017-02-16 19:38:44 0|wumpus|gmaxwell: in any case, that is the lowerst level, it shouldn't be regarded as 'a level of randomness'
524 2017-02-16 19:38:53 0|gmaxwell|so I think we know what we need to go there.
525 2017-02-16 19:39:10 0|wumpus|indeed, getentropy is bsd, getrandom is linux
526 2017-02-16 19:39:30 0|Victorsueca|sipa: ohh, I somehow misread that you where proposing to merge the fast and the middle one to make it simpler
527 2017-02-16 19:39:39 0|sipa|FWIW linux 4.8 also switched to chacha20 for /dev/urandom
528 2017-02-16 19:39:50 0|wumpus|yes
529 2017-02-16 19:40:16 0|gmaxwell|The framework I think about this is that we have several randomized algorithims where there are basically no cryptographic guarentees needed... coin selection, addr man buckets, and tests being some examples. These need to be fast but can all use just a local context, need no resistance against reversal (somsone steals your ram and recovers older randomness) or prediction (vm saves repeat rando
530 2017-02-16 19:40:21 0|petertodd|gmaxwell: re: VM image being snapshotted and restored, that's basically a case where reusing a secret is by itself harmful - is there an example in Bitcoin where that's the case, now that we do deterministic signing?
531 2017-02-16 19:40:22 0|gmaxwell|mness).
532 2017-02-16 19:40:23 0|gmaxwell|So thats one set of uses.
533 2017-02-16 19:40:24 0|sipa|Victorsueca: i'm proposing to make the fast one stronger (but not much slower), and then things using the middle one need to be judged on a case by case basis whether they can use the new fast one, or the strong one
534 2017-02-16 19:40:52 0|sipa|Victorsueca: after that, the middle one goes away
535 2017-02-16 19:41:00 0|gmaxwell|Then we have other uses where we have randomized behavior which does have stronger security requirements, like ping nonces which need to be strongly unforgable to prevent peers hiding their latency.
536 2017-02-16 19:41:08 0|Victorsueca|sipa: makes sense
537 2017-02-16 19:41:12 0|gmaxwell|But even if they're broken it just turns into DOS attacks.
538 2017-02-16 19:41:41 0|wumpus|it's strong, but far from as strong a requirement as wallet keys
539 2017-02-16 19:41:45 0|gmaxwell|Then we have things like long term keys which we do infrequently and basically no cost is too high. And they have to meet basically every security characteristic we can imagine.
540 2017-02-16 19:41:59 0|wumpus|indeed
541 2017-02-16 19:42:07 0|cfields|suggested similar next topic: clocks
542 2017-02-16 19:42:10 0|gmaxwell|the second class often has to be moderately fast too.
543 2017-02-16 19:42:43 0|gmaxwell|Pieter would like to collapse this class hierarchy some by making the first class use the second while making the second fast enough that it's fine to do so.
544 2017-02-16 19:43:11 0|Victorsueca|cfields: clocks as in CPU clock or as in timestamp?
545 2017-02-16 19:43:28 0|wumpus|Victorsueca: please wait until the topic is actaully started
546 2017-02-16 19:43:34 0|Victorsueca|ohh, sorry
547 2017-02-16 19:43:50 0|wumpus|though I think we've wrapped up randomness
548 2017-02-16 19:43:53 0|sipa|agree
549 2017-02-16 19:43:58 0|wumpus|#topic clocks
550 2017-02-16 19:43:59 0|gmaxwell|I have a little doubt that this is possible, because I think the second may need to deal with reversal resistace and prediction resistance, which cannot be done for free. (e.g. you must mix in TSC and/or RDRAND at every use.)
551 2017-02-16 19:44:01 0|instagibbs|he has to gavel before we can switch
552 2017-02-16 19:44:04 0|gmaxwell|okay!
553 2017-02-16 19:44:17 0|wumpus|gmaxwell: oh, didn't know you were still typing, sorry
554 2017-02-16 19:44:20 0|cfields|I have some local changes that implement the concept of different clocks/time_points/durations. The objective is for them to be incompatible with each-other.
555 2017-02-16 19:44:29 0|gmaxwell|thats fine! just some things to think about.
556 2017-02-16 19:44:34 0|wumpus|cfields: yes, that seems the way to go about it
557 2017-02-16 19:44:56 0|sipa|cfields: f i may interject... i was thinking about creating a generic int class wrapper that supports no implicit conversioms
558 2017-02-16 19:45:01 0|gmaxwell|cfields: pieter and I were talking about type safty recently, and pieter suggested a scheme for introducing more integer types which will never implicitly be converted.
559 2017-02-16 19:45:20 0|wumpus|most importantly we should start using monotonic timestamps in the network code where possible
560 2017-02-16 19:45:52 0|cfields|that sounds fine, but i'm not sure that they're entirely related here. The (my) objective is to stop storing time as an int, and instead as a time_value
561 2017-02-16 19:46:02 0|sipa|cfields: or are timestamps in a c++11 world not something that fit in integers?
562 2017-02-16 19:46:06 0|cfields|that way it can be represented in sec/msec/whatever whenever it's needed
563 2017-02-16 19:46:11 0|cfields|sipa: exactly
564 2017-02-16 19:46:25 0|cfields|it also enforces timestamps that can't be used on the wrong clock
565 2017-02-16 19:46:34 0|sipa|i'm confused
566 2017-02-16 19:46:39 0|gmaxwell|I have suggested in the past that we consider constructing a monotonic local clock, but wumpus seemed to not like the idea. which I think is orthorgonal to the type safty thing, but it would perhaps make time more sane in the codebase.
567 2017-02-16 19:46:46 0|wumpus|cfields: in general that sounds good, though in some structures such as the block index we want to use as compact types as possible
568 2017-02-16 19:47:04 0|gmaxwell|saftey*
569 2017-02-16 19:47:11 0|gmaxwell|doh
570 2017-02-16 19:47:14 0|cfields|wumpus: sure, you can always get an int out of it if you want
571 2017-02-16 19:47:14 0|wumpus|gmaxwell: huh I'm all for using monotonic clocks were possible, they're just not good for everything
572 2017-02-16 19:47:24 0|gmaxwell|safety**
573 2017-02-16 19:47:50 0|sipa|cfields: my point was to have a template<typename tag> class non_convertible_int
574 2017-02-16 19:47:53 0|cfields|also, i believe the class is actually not bigger than an int. It's just not convertable to int
575 2017-02-16 19:48:22 0|wumpus|cfields: well if it represents micro/nanosecond it needs to be at least uint64 :)
576 2017-02-16 19:48:25 0|sipa|and then have typedef non_comvertible_int<systemtime> systemtime_type
577 2017-02-16 19:48:38 0|sipa|and systemtype_type is what is used
578 2017-02-16 19:48:45 0|gmaxwell|you would get_int() on the object to get an int. You would just get a conversion by surprise.
579 2017-02-16 19:48:46 0|sipa|*systemtime_type
580 2017-02-16 19:48:55 0|gmaxwell|I would _hope_ we can construct something that at runtime is _exactly_ equal to using an integer.
581 2017-02-16 19:49:07 0|sipa|cfields: you're being inconsistent
582 2017-02-16 19:49:20 0|cfields|sipa: http://en.cppreference.com/w/cpp/chrono/time_point
583 2017-02-16 19:49:43 0|gmaxwell|I think we should do this far more broadly than just timestamps however.
584 2017-02-16 19:49:45 0|sipa|we can't use that in blocks, etc
585 2017-02-16 19:50:10 0|wumpus|indeed - block times /consensus are a special case
586 2017-02-16 19:50:26 0|cfields|sipa: we don't use timeval in blocks either though, we convert from the clock
587 2017-02-16 19:50:28 0|sipa|but perhaps we should use those types in network state, measuring speed, ...
588 2017-02-16 19:50:37 0|cfields|sipa: i'll demonstrate with code, probably easier that way
589 2017-02-16 19:50:55 0|wumpus|right
590 2017-02-16 19:51:15 0|sipa|cfields: what i want to address is the fact that an int or int64 can now mean microseconds, milliseconds, or seconds, and either system time, or monotonous time, or network-adjusted timr
591 2017-02-16 19:51:45 0|sipa|it's fine that those are int-like, but they shouldn't be convertible from one into another
592 2017-02-16 19:52:00 0|cfields|sipa: and that's exactly what i've addressed. Each of those gets its own type, and they're not convertable to eachother. But you can do a duration_cast<std::chrono::seconds>(foo) and get an int64_t seconds value out
593 2017-02-16 19:52:11 0|sipa|anyway, for everything but consensus data structures, perhaps there are more c++ish ways
594 2017-02-16 19:52:52 0|sipa|cfields: let's discuss this outside of theeeting
595 2017-02-16 19:52:53 0|gmaxwell|This problem exists far beyond timestamps however. Use a node ID as a tx count? no problem. Use a vin index as a block number? no problem. Use a bytes sent as a relay bool? no problem.
596 2017-02-16 19:53:17 0|gmaxwell|We have multiple times had potentially serious bugs from the general issue of implicit conversions.
597 2017-02-16 19:53:37 0|cfields|gmaxwell: yes, agreed that the tag would be very useful
598 2017-02-16 19:53:43 0|gmaxwell|(or in the case of sighash single, an actual consensus behavior flaw)
599 2017-02-16 19:53:51 0|cfields|sipa: np
600 2017-02-16 19:53:53 0|sipa|jtimon had a topic as well
601 2017-02-16 19:53:58 0|wumpus|using enumerations instead of booleans would also go a long way
602 2017-02-16 19:54:02 0|jtimon|well, just a question really
603 2017-02-16 19:54:05 0|jonasschnelli|I also have a little proposal
604 2017-02-16 19:54:06 0|gmaxwell|all the data is there in the compile to prevent these mistakes, we're just not exposing it right. :)
605 2017-02-16 19:54:14 0|jtimon|I guess it can wait after the meeting
606 2017-02-16 19:54:18 0|sipa|wumpus: yeah, generally useful
607 2017-02-16 19:54:18 0|wumpus|especially for functions that have tons of boolean arguments in succession, that's just crazy
608 2017-02-16 19:54:27 0|gmaxwell|wumpus: yea, using bools, also using structs to get named parameters... lots of things we can do.
609 2017-02-16 19:54:31 0|cfields|wumpus: for sure
610 2017-02-16 19:54:44 0|jtimon|or answered fast enough that it doesn't need its own topic: "why 9619 doesn't go in for 0.14?"
611 2017-02-16 19:54:49 0|gmaxwell|true false true true false die die die. ... I hate counting aruments when changing things.
612 2017-02-16 19:54:50 0|morcos|jtimon: i think because there was an error reported and no explanation that it was fixed or wasn't really a problem. that's at least why i haven't looked at the PR.
613 2017-02-16 19:54:55 0|wumpus|(well with some IDEs you can see what gets assigned to what parameter because it parses the interface, but that's not something you can realy on that everyone has available)
614 2017-02-16 19:55:01 0|wumpus|gmaxwell: exactly
615 2017-02-16 19:55:10 0|wumpus|jtimon: what was your topic?
616 2017-02-16 19:55:11 0|instagibbs|gmaxwell, the fun really starts when you drop an arg with a default value at the end
617 2017-02-16 19:55:23 0|cfields|(or three)
618 2017-02-16 19:55:29 0|jtimon|morcos: that explains why is not merged, not why it's not labeled 0.14, but ok I guess
619 2017-02-16 19:55:55 0|wumpus|jtimon: let's reverse the question: why would it need to be added for 0.14?
620 2017-02-16 19:55:56 0|jtimon|wumpus: including 9619 in 0.14
621 2017-02-16 19:56:12 0|jtimon|it's a bugfix and is simple enough, why not?
622 2017-02-16 19:56:43 0|sipa|i think it can go in, it's trivial and very small in scope
623 2017-02-16 19:56:46 0|gmaxwell|basically without it a plausable downstream gbt user that changes the transaction set could construct an overlarge block, is that the concern there?
624 2017-02-16 19:56:48 0|wumpus|I'm fine with merging it before 0.14, if its sufficiently reviewed and teste
625 2017-02-16 19:56:52 0|wumpus|it will however not hold up rc1
626 2017-02-16 19:57:10 0|gmaxwell|it looks trivial and small in scope, and if my understanding is correct it should go in.. but sure, nothing should hold up rc1.
627 2017-02-16 19:57:21 0|gmaxwell|at least nothing that we know of now.
628 2017-02-16 19:57:21 0|sipa|fair
629 2017-02-16 19:57:37 0|jonasschnelli|Not sure if this makes sense, But I propose to rename the ./qa dir to ./test (or something that sorts after ./src). I think it would be better to have the RPC tests further down in the PRs diff.
630 2017-02-16 19:57:38 0|jtimon|sure, was simply surprised it didn't had the 0.14 label since it's not really that new
631 2017-02-16 19:57:58 0|Victorsueca|I see lots of utACKs but not any ACK, so trivial it doesn't need testing I assume?
632 2017-02-16 19:57:59 0|gmaxwell|short of some kind of crash eat money doom bug showing up before we manage to get it out (and even that shouldn't delay _constructing_ RC1; if doom shows up we can abort launch)
633 2017-02-16 19:58:31 0|wumpus|gmaxwell: sure, there are always serious enough problems possible that should postpone the release
634 2017-02-16 19:58:59 0|gmaxwell|jonasschnelli: On that I'd like to get into a state where make check is running those tests. They are most of our tests now, and the most valuable.. and really people building with compilers we've never seen before _REALLY_ ought to be running them.
635 2017-02-16 19:59:19 0|wumpus|jonasschnelli: don't really have an opinion on that, does it matter much how things are sorted?
636 2017-02-16 19:59:37 0|gmaxwell|Why would the sorting matter?
637 2017-02-16 19:59:41 0|jonasschnelli|As long as review is a bottleneck I think it matters
638 2017-02-16 19:59:55 0|jonasschnelli|But maybe I'm alone with that opinion.
639 2017-02-16 20:00:07 0|gmaxwell|OH so they show up lower on github.
640 2017-02-16 20:00:23 0|sipa|/zzztest
641 2017-02-16 20:00:29 0|wumpus|my biggest pet peeve is that they're called RPC tests, not 'functional tests' or such, they're testing much more than RPC these days :)
642 2017-02-16 20:00:42 0|jonasschnelli|./test_functional
643 2017-02-16 20:00:45 0|gmaxwell|It is sometimes a bit confusing that the tests show up first... otoh it can be informative to read the test before the change in the cases where the test is especially good. :)
644 2017-02-16 20:00:46 0|wumpus|but not serious enough to actually go on renamind directories
645 2017-02-16 20:00:50 0|sipa|also, pull-tester should be merged in rpc-tests
646 2017-02-16 20:00:52 0|gmaxwell|wumpus: they are "system tests" rpc is incidental.
647 2017-02-16 20:01:38 0|sipa|we don't have pulltester anymore, and it's annoying to always change directory :)
648 2017-02-16 20:01:45 0|instagibbs|we're over time
649 2017-02-16 20:01:45 0|wumpus|gmaxwell: yes, it doesn't matter what interface they use, whether it's RPC or P2P or ZMQ or REST or command line arguments etc
650 2017-02-16 20:01:47 0|instagibbs|btw
651 2017-02-16 20:01:54 0|jonasschnelli|Okay. I'll do a cleanup PR once we branch off.
652 2017-02-16 20:01:54 0|wumpus|instagibbs: ah yes
653 2017-02-16 20:01:56 0|wumpus|#endmeeting
654 2017-02-16 20:01:57 0|lightningbot|Log: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-02-16-19.02.log.html
655 2017-02-16 20:01:57 0|lightningbot|Meeting ended Thu Feb 16 20:01:55 2017 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)
656 2017-02-16 20:01:57 0|lightningbot|Minutes: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-02-16-19.02.html
657 2017-02-16 20:01:57 0|lightningbot|Minutes (text): http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-02-16-19.02.txt
658 2017-02-16 20:02:12 0|jnewbery|wumpus: Agree, and can we name it something other than pull-tester?
659 2017-02-16 20:02:19 0|Chris_Stewart_5|sipa: gmaxwell So if I understand you guys, you want to create custom types for all time related structures inside of core?
660 2017-02-16 20:02:25 0|gmaxwell|petertodd: nice ACK on 9779.
661 2017-02-16 20:02:35 0|Chris_Stewart_5|even further, integer related structures?
662 2017-02-16 20:02:50 0|sipa|Chris_Stewart_5: well it seems c++11 has things like that already, and they're more featureful than just integers
663 2017-02-16 20:02:53 0|cfields|Chris_Stewart_5: i'm suggesting that we switch to std::chrono::duration and std::chrono::time_point
664 2017-02-16 20:02:57 0|wumpus|jnewbery: yes, pulltester is a weird name now, it's simply a launch framework for the tests
665 2017-02-16 20:03:07 0|Victorsueca|midnightmagic: "and really people building with compilers we've never seen before _REALLY_ ought to be running them." <--- I tried it once on windows but it looks like they're broken and only work on linux
666 2017-02-16 20:03:14 0|sipa|Chris_Stewart_5: but yes, making ints not convertible into other int-like-types can fix bugs
667 2017-02-16 20:03:26 0|jnewbery|test-launcher.py or test-runner.py seem fine
668 2017-02-16 20:03:42 0|gmaxwell|wumpus: re 9779, assuming that gets ACKs feel free to merge that along with the version bump. (the assumevalid was 6119 blocks behind.)
669 2017-02-16 20:03:46 0|wumpus|Victorsueca: that's simply not true! they work on at least openbsd, freebsd, linux, and windows (in wine at least)
670 2017-02-16 20:03:50 0|Chris_Stewart_5|sipa: Sure, no arguments with that. Just wasn't sure if that was _exactly_ what you guys were saying in the meeting.
671 2017-02-16 20:03:55 0|wumpus|Victorsueca: oh and OSX
672 2017-02-16 20:04:06 0|Victorsueca|wumpus: hmmm should try it again
673 2017-02-16 20:04:09 0|Chris_Stewart_5|sipa: But conversions will still be able to be done right? Just with explicit function calls instead of casting correct?
674 2017-02-16 20:04:16 0|wumpus|Victorsueca: our tests are very well maintained on many platforms
675 2017-02-16 20:04:23 0|sipa|Chris_Stewart_5: of course
676 2017-02-16 20:04:36 0|sipa|otherwise it's useless
677 2017-02-16 20:04:41 0|cfields|Chris_Stewart_5: only to a degree. You shouldn't be able to compare a system_clock time_point to a steady_clock one. Because that makes no sense.
678 2017-02-16 20:04:51 0|gmaxwell|They tests have extra dependencies so its quite plausable that on some systems that compile the code the tests fail.
679 2017-02-16 20:05:19 0|wumpus|cfields: or a duration to a absolute time value!
680 2017-02-16 20:05:33 0|cfields|wumpus: right
681 2017-02-16 20:05:38 0|Victorsueca|wumpus: which one should I be running to run all tests?
682 2017-02-16 20:05:57 0|Victorsueca|ahh I think I found it
683 2017-02-16 20:05:59 0|wumpus|gmaxwell: it should disable the tests in question in that case, e.g. if there's no zmq if doesn't run that test
684 2017-02-16 20:06:02 0|jonasschnelli|Victorsueca: ./qa/pull-tester/rpc-tests.py
685 2017-02-16 20:06:14 0|jtimon|wumpus: right, functions with many bools could use thier own flags or something perhaps (sorry, was catching up on the previous discussion)
686 2017-02-16 20:06:28 0|jonasschnelli|Victorsueca: mind the -win parameter
687 2017-02-16 20:06:36 0|wumpus|jtimon: yes, either bitfield or individual enums, everything is better than bool,bool,bool,bool
688 2017-02-16 20:06:53 0|cfields|so instead, we get the concept of a clock, which gives you time_point's with some meaning. a time_point, which is an absolute time (but not necessarily wall-time) on some clock, and a duration, which is the difference between 2 time_points
689 2017-02-16 20:07:01 0|sipa|wumpus: for cases where it's excessive you can emulate named arguments using a struct
690 2017-02-16 20:07:12 0|jnewbery|jonasschnelli: My preference would be to also move the bitcoin-util-test.py and bctest.py (and data for those tests) from src/test to whatever you rename qa to. Those tests seem much more like the integration tests in qa than the unit tests in src/test
691 2017-02-16 20:07:13 0|jtimon|and I really hate we have so many bools with default values
692 2017-02-16 20:07:37 0|sipa|wumpus: for example a struct ATMPArgs that takes in its constructor all 'required' fields for ATMP, and has methods to change optionals
693 2017-02-16 20:07:48 0|Chris_Stewart_5|cfields: Wouldn't that comparison have to be enforced through code review and not a compile time failure? Sorry not super familar with the data structures..
694 2017-02-16 20:07:50 0|jonasschnelli|jnewbery: Indeed. I'll try to move them.
695 2017-02-16 20:07:59 0|gmaxwell|I believe a struct for inputs can be nearly zero runtime overhead for functions with many arguments.
696 2017-02-16 20:08:19 0|sipa|Chris_Stewart_5: it will result in compile time failure; a timepoint for a steady clock would be a different data type
697 2017-02-16 20:08:29 0|wumpus|sipa: c99 designated struct initializers were always nice to use for emulating named arguments in C, too bad that never made it to C++
698 2017-02-16 20:08:34 0|cfields|Chris_Stewart_5: no, it's enforced by the compiler. A time_point knows what clock it belongs to
699 2017-02-16 20:08:51 0|sipa|So you'd call AcceptToMemoryPool(ATMPArgs{std::move(tx)}.max_fee(fee))
700 2017-02-16 20:08:58 0|gmaxwell|Chris_Stewart_5: enforcing things through code review that could be enforced by the machine is a losing strategy. Code review is essential but it should be focused on the bugs the machine cannot prevent.
701 2017-02-16 20:09:00 0|petertodd|gmaxwell: heh, yeah, I wanted to make a point of what the trust model was, particularly since -assumevalid was (partly) my idea! :)
702 2017-02-16 20:09:12 0|Victorsueca|jonasschnelli: wumpus: File "rpc-tests.py", line 283 print('.', end='', flush=True) SyntaxError: invalid syntax
703 2017-02-16 20:09:17 0|Victorsueca|uhmm shit hit the fan?
704 2017-02-16 20:09:22 0|wumpus|sipa: in any case, we also shouldn't go over the top with this, trying to emulate something in c++ that it is not :)
705 2017-02-16 20:09:25 0|jonasschnelli|Victorsueca: python3?
706 2017-02-16 20:09:36 0|Chris_Stewart_5|gmaxwell: No doubt. I'm all for type safety. Compilers are our friends :-)
707 2017-02-16 20:09:39 0|jonasschnelli|(requires p3)
708 2017-02-16 20:09:41 0|sipa|Victorsueca: looks like you're trying to run with python2
709 2017-02-16 20:09:59 0|Victorsueca|ahh forgot python stands for 2 and py stands for 3-2 hub
710 2017-02-16 20:10:27 0|sipa|Victorsueca: no, the first line of the file states the interpreter to use, but i guess that only works in unix-like systems
711 2017-02-16 20:10:45 0|wumpus|you should run all the bitcoin core scripts with python 3
712 2017-02-16 20:10:50 0|jtimon|gmaxwell: ack on adding the rpc tests on make check
713 2017-02-16 20:11:09 0|Victorsueca|here on windows if I run py it auto-detects whether 2 or 3 should be used
714 2017-02-16 20:11:27 0|Victorsueca|it's just i'm used to write python
715 2017-02-16 20:11:47 0|gmaxwell|wumpus: MISRA C (standard for safety critical C code targeting embedded systems) requires that no generic types be used, and certantly no sizeless generic types. And that is in C where you still get the implicit conversion and can't really avoid it, but the standard argues that static analysis tools can still catch your errors so long as you've exposed the type information. Libsecp256k1 is pre
716 2017-02-16 20:11:53 0|gmaxwell|tty close to this now.
717 2017-02-16 20:12:33 0|wumpus|well if the first line contains python3 it should be run with python 3, lacking that there is no general way to detect whether code is python2 or python3. But believe me, the bitcoin core python scripts need to be run with python 3.
718 2017-02-16 20:13:45 0|wumpus|gmaxwell: the most significant non-MISRA thing about secp256k1 is probably that it allocates a context on the heap?
719 2017-02-16 20:15:09 0|bitcoin-git|[13bitcoin] 15jnewbery opened pull request #9780: Suppress noisy output from qa tests in Travis (06master...06travislogging) 02https://github.com/bitcoin/bitcoin/pull/9780
720 2017-02-16 20:16:10 0|gmaxwell|wumpus: Well MISRA doesn't actually forbid anything but requires that for every violation you write an exception document. So the context is one where the exception document is very easy to right: this allocation is pure initilization, not runtime.
721 2017-02-16 20:17:18 0|gmaxwell|What I've found harder to deal with is that it requires no function have multiple returns. As there are some cases where we do where fixing it feels like it would objectively worsen the code. But their argument is also pretty compelling
722 2017-02-16 20:18:21 0|wumpus|yes, there's something to be said for that, especially with regard to cleanup and such
723 2017-02-16 20:18:38 0|gmaxwell|It would also be very easy for us to make it possible to make libsecp256k1 mallocless with ifdefs, it's specifically structured to enable that.
724 2017-02-16 20:18:40 0|wumpus|though in some cases it can lead to terribly verbose code when combined with error handling
725 2017-02-16 20:19:03 0|wumpus|e.g. either deeply nested if() or some status flag that is checked every other statement
726 2017-02-16 20:19:29 0|cfields|wumpus: but those easily fixed with a goto ;)
727 2017-02-16 20:19:30 0|gmaxwell|(My goal though not a priority is to make libsecp256k1 MISRA conformant eventually)
728 2017-02-16 20:19:49 0|gmaxwell|cfields: forbidden by MISRA C. (though like anything else you can make exceptions)
729 2017-02-16 20:19:56 0|jtimon|jonasschnelli: regarding your rename, if rpc-tests/ and pull-tester/ in qa (as I think sipa suggests ), it may make sense to take the opportunity to rename qa as well
730 2017-02-16 20:19:57 0|wumpus|cfields: hah! I didn't expect those to be allowed if multiple returns are not
731 2017-02-16 20:20:09 0|cfields|gmaxwell: was just joking about trading one thing for another
732 2017-02-16 20:20:19 0|gmaxwell|Gotos that go backwards also forbidden by an extra rule, so at least error handling doesn't hit those.
733 2017-02-16 20:20:20 0|wumpus|cfields: I always tend to use goto's in C code for cleanups, kernel style
734 2017-02-16 20:21:04 0|gmaxwell|cfields: well I wasn't goto is actually an excellent way to handle error handling in C in some cases. It's very similar to multiple returns in its downsides, and yet few people care about peppering functions with 15 returns.
735 2017-02-16 20:21:24 0|cfields|wumpus: yes, they seem pretty necessary after using raii for long enough
736 2017-02-16 20:22:34 0|gmaxwell|The MISRA document is a really good read FWIW. It's pretty thoughtful in its recommendations.
737 2017-02-16 20:22:52 0|gmaxwell|though not so applicable to C++. :)
738 2017-02-16 20:22:54 0|cfields|gmaxwell: sure, agreed. I just used it as an example because it's often multiple-returns and gotos blindly spouted as "thou-shalt-not"s in c-code
739 2017-02-16 20:24:44 0|wumpus|I can't come up with a good reason to use backwards gotos though
740 2017-02-16 20:24:45 0|cfields|gmaxwell: well, no-multiple-returns carries some weight in c++ too as they inhibit rvo. Which can be very useful for structures that you assume move freely/cheaply
741 2017-02-16 20:25:30 0|Victorsueca|ok... now this is a mess.... I use WSL to cross-compile windows binaries, now all the tests have UNIX-like paths and can't run them on windows
742 2017-02-16 20:27:11 0|isle2983|gmaxwell: do you try any clang/LLVM plugins for checking MISRA? I am just wondering if it is worthwhile exploring
743 2017-02-16 20:27:22 0|wumpus|gcc computed goto is even more evil: arrays of labels, though it's used in e.g. the python bytecode dispatch loop for the last bits of speed optimization
744 2017-02-16 20:27:53 0|gmaxwell|isle2983: not clang/llvm ones, but I've used other static analysis tools that can check it, in particular pc-lint... They're of some value.
745 2017-02-16 20:28:58 0|wumpus|Victorsueca: strange - python code doesn't get compiled as such, it must be one of the generated py files that has a path in it. You could try explicitly setting the environment variable BITCOIND to the path of bitcoind, that will override the built-in guess
746 2017-02-16 20:29:17 0|gmaxwell|wumpus: some kinds of valid but complex flow control is just not expressable in C without a loss of efficiency. So you could imagine some kind of hyper optimized inner loop that uses backwards goto. I don't recall any case where I've been forced into that, though I have run into cases where performance required do{}while() and non-trivial code inside for expressions, and forwards goto out of a
747 2017-02-16 20:29:23 0|gmaxwell|loop that also had breaks and continues.
748 2017-02-16 20:30:03 0|wumpus|gmaxwell: yes, forwards goto out of a loop makes a lot of sense, if you want to break out of multiple levels
749 2017-02-16 20:30:54 0|gmaxwell|I wish C(++) had named continue/break.
750 2017-02-16 20:31:09 0|wumpus|gmaxwell: and these things matter, I mean if efficiency is not important you wouldn't be using c in the first place
751 2017-02-16 20:31:32 0|gmaxwell|(Rust has named breaks)
752 2017-02-16 20:31:48 0|gmaxwell|(also more important because it lacks the other options C has for that)
753 2017-02-16 20:31:51 0|wumpus|yes I remember quite some languages had them ,though I can't think of any right now
754 2017-02-16 20:32:24 0|wumpus|didn't know that rust did
755 2017-02-16 20:33:23 0|sipa|in c++ it's more complicated because you can't jump over variable initializations
756 2017-02-16 20:34:09 0|cfields|gmaxwell: i suspect that architects assumed throw/catch would be used for breaking out of multiple loops. But that's seen as poisonous to most, i think
757 2017-02-16 20:34:20 0|wumpus|ah, java has them apparently
758 2017-02-16 20:34:27 0|gmaxwell|cfields: youch. :P
759 2017-02-16 20:34:48 0|cfields|gmaxwell: my thought exactly :)
760 2017-02-16 20:34:52 0|wumpus|cfields: exceptions as a control flow statement? speak about shooting a fly with a thermonuclear missile :p
761 2017-02-16 20:35:03 0|gmaxwell|beyond the other issues with exception, they're slow... sooo.
762 2017-02-16 20:35:46 0|wumpus|right, they're slow exactly because they don't know where they're going to be catched, so they're a bad fit if you know exactly where you wantcontrol flow to go
763 2017-02-16 20:36:19 0|wumpus|the code for exceptions and stack unrolling is extremely complex, I looked at it some time there's even some cute VM involved that interprets DWARF debug info
764 2017-02-16 20:37:07 0|cfields|wumpus: heh, i once worked on some code that used it to parse some data, construct the right handler, and throw it. Then the catch was an abstract parent, and it would continue on with the newly-constructed handler
765 2017-02-16 20:37:28 0|wumpus|cfields: hahaha
766 2017-02-16 20:37:30 0|cfields|it was ugly, but surprisingly effective :)
767 2017-02-16 20:37:33 0|wumpus|cfields: anti-reverse-engineering?
768 2017-02-16 20:38:01 0|cfields|wumpus: heh, it would seem. no idea what the historical reasoning was
769 2017-02-16 20:38:54 0|gmaxwell|later you find out the guy that wrote it didn't know that function pointers or virtual methods were possible. :P
770 2017-02-16 20:39:04 0|wumpus|like anytiing so evil it sounds like a hell to debug
771 2017-02-16 20:39:09 0|cfields|gmaxwell: entirely possible :)
772 2017-02-16 20:40:54 0|wumpus|it reminds me of that saying that you should always expect that the person maintaining the code after you is a crazy axe murderer that knows where you live, this certainly classifies as inhuman cruelty to your successors
773 2017-02-16 20:41:28 0|jeremyrubin|sorry for misisng meeting! I was off by an hour :p
774 2017-02-16 20:41:39 0|jeremyrubin|I think w.r.t. entropy levels we should keep 3
775 2017-02-16 20:41:53 0|jeremyrubin|Deterministic, non-deterministic, secure
776 2017-02-16 20:41:54 0|cfields|std::chrono::off_by_one_clock
777 2017-02-16 20:42:10 0|jeremyrubin|deterministic is really useful for writing tests/benchmarks IMO
778 2017-02-16 20:42:30 0|wumpus|it's only useful for the tests and benchmarks, and could be in test_util.cpp
779 2017-02-16 20:42:57 0|cfields|jeremyrubin: we have siphasher, which we use for deterministic randomness, and i don't think it really needs to care about the source of its seed?
780 2017-02-16 20:42:57 0|jeremyrubin|That's fine to me!
781 2017-02-16 20:43:29 0|wumpus|but I agree it's useful to have fast deterministic random for some things, I manually rolled a LFSR in one place in the tests to quickly generate deterministic "random" numbers
782 2017-02-16 20:44:05 0|jeremyrubin|cfields: fine too -- just having something convenient to use for this purpose is all I care for!
783 2017-02-16 20:45:04 0|jeremyrubin|The cuckoocache tests test hit rate against deterministic data, so if the entropy changes then it *could* (unlikely) fail.
784 2017-02-16 20:45:52 0|jeremyrubin|but it depends on the variance of the hit rate... so it would be annoying if it fails say 1/100 times due to unlucky entropy
785 2017-02-16 20:46:36 0|wumpus|yes, that should ideally never happen
786 2017-02-16 20:47:15 0|wumpus|tests that randomly fail are extremely discouraging
787 2017-02-16 20:48:20 0|jeremyrubin|Indeed
788 2017-02-16 20:48:39 0|jeremyrubin|travis-gate was really a sad week for bitcoin ;)
789 2017-02-16 20:52:56 0|cfields|heh
790 2017-02-16 20:59:17 0|jeremyrubin|Speaking of tests -- any chance for putting #9495 (bugfix) and #9497 (tests) in 0.14? The CheckQueue is a pretty big piece of consensus code with almost no test coverage on it... Then again, there's no reason these tests can't wait for 0.15 either :)
791 2017-02-16 20:59:20 0|gribble|https://github.com/bitcoin/bitcoin/issues/9495 | Fix CCheckQueue IsIdle (potential) race condition by JeremyRubin ÷ Pull Request #9495 ÷ bitcoin/bitcoin ÷ GitHub
792 2017-02-16 20:59:21 0|gribble|https://github.com/bitcoin/bitcoin/issues/9497 | CCheckQueue Unit Tests by JeremyRubin ÷ Pull Request #9497 ÷ bitcoin/bitcoin ÷ GitHub
793 2017-02-16 21:15:56 0|jnewbery|jonasschnelli: I've got several PRs that are very disruptive to the qa directory: #9577 #9657 #9768 and the completion of #9707 (which I haven't yet PR'ed). Can you hold off your reorganzation of the qa directory until those are merged? Perhaps open an issue now for discussion but hold off on PR'ing.
794 2017-02-16 21:15:58 0|gribble|https://github.com/bitcoin/bitcoin/issues/9577 | Fix docstrings in qa tests by jnewbery ÷ Pull Request #9577 ÷ bitcoin/bitcoin ÷ GitHub
795 2017-02-16 21:16:00 0|gribble|https://github.com/bitcoin/bitcoin/issues/9657 | Improve rpc-tests.py by jnewbery ÷ Pull Request #9657 ÷ bitcoin/bitcoin ÷ GitHub
796 2017-02-16 21:16:01 0|gribble|https://github.com/bitcoin/bitcoin/issues/9768 | [qa] [WIP] Add logging to test_framework.py by jnewbery ÷ Pull Request #9768 ÷ bitcoin/bitcoin ÷ GitHub
797 2017-02-16 21:16:03 0|gribble|https://github.com/bitcoin/bitcoin/issues/9707 | Fix RPC failure testing by jnewbery ÷ Pull Request #9707 ÷ bitcoin/bitcoin ÷ GitHub
798 2017-02-16 21:31:35 0|jeremyrubin|jnewbery: git can handle renames fine iirc?
799 2017-02-16 21:32:58 0|jnewbery|jeremyrubin: I think you're right. If jonas is only going to rename files then there shouldn't be any conflicts.
800 2017-02-16 21:33:39 0|jeremyrubin|jonasschnelli: ^^^