18:59:52 #startmeeting 18:59:52 Meeting started Thu Jan 21 18:59:52 2016 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:59:52 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:00:07 topic proposals? 19:00:18 proposed topic opt-in RBF default value 19:01:35 I'd say there's been enough discussion of that on github already today, but ok 19:01:35 proposed topic: 0.11 backport release for (at least) chainstate obfuscation 19:01:53 #topic opt-in RBF default value 19:01:56 proposed topic: leveldb corruption 19:02:04 okay. RBF... 19:02:27 today i said lets not get pushed into a corner... but somehow users are afraid of RBF. 19:02:38 hmm, is leveldb prone for corruption? 19:03:53 not saying we should make the RBF default false, but maybe we should consider in in terms to not deeper splitting the community 19:03:58 I've said everything I wanted to say on the topic in https://github.com/bitcoin/bitcoin/pull/7386 https://github.com/bitcoin/bitcoin/pull/7388 19:04:17 Okay. I agree. 19:04:49 #topic 0.11 backport release for (at least) chainstate obfuscation 19:04:53 I think we should then stick to what we said and keep RBF on by default. I'm fine with this it should just be the groups opinion. 19:06:16 ACK on backport release, the code (#7259) is already in there, so it's just a matter of tagging 19:06:41 I had suggested we do that back at the last 0.11 release... but the changes aren't super small and obviously correct. 19:06:42 it also has some other fixes like #7381 19:06:45 context: it's not possible to downgrade from 0.12 -> 0.11 in most cases. 19:06:51 right, sounds good 19:07:02 jonasschnelli, i have yet to see a single entity which accepts unconfirmed transactions raise issue with opt-in RBF 19:07:04 will pruning nodes be able to downgrade withotu redownloading the blockchain? i havent' reviewed that pull yet 19:07:04 cfields: right, not if you started on 0.12 or reindexed on 0.12. 19:07:35 jonasschnelli: it seems by far most want to leave it enabled, there are a few people strongly against it, which now have their option 19:07:51 gmaxwell: are you nervous about the backport? or the change itself when it went in? 19:07:53 wumpus: Yes. Fully agree. 19:08:01 sdaftuar, downgrading is no issue, unless you've reindexed 19:08:32 reindexing builds a new chainstate with obfuscation enabled 19:09:15 which is why we want to backport so that people get a sane error message instead of an assertion fail 19:09:22 cfields: I'm not really nervous, but some expressed nervousness before; and I couldn't disagree. Perhaps we're better now that it's been in master for a long time. 19:09:43 wumpus: ah ok 19:09:44 gmaxwell, to be clear this is not a backport of the obfuscation code, just an error 19:10:14 wumpus: oh, that wasn't my understanding. guess i need to click on those PRs 19:10:20 gmaxwell, see #7259 19:10:32 ^ cfields 19:10:35 https://github.com/bitcoin/bitcoin/pull/7259 19:10:39 so there's no reason to be nervous 19:10:43 wumpus: right, looking 19:12:22 oh! just an error. 19:12:24 wumpus: i don't care strongly enough to argue, works for me 19:12:26 sorry, missed that. 19:12:29 okay. sounds great. 19:13:00 oh i'm late 19:13:12 gmaxwell, the current assertion has put many people on the wrong track (thinking this was corruption), so an error is better. Even better would be versionoing in chainstate like we have for the wallet, so this can be avoided in the future, but this is good for now 19:13:16 Hello, is this the right channel to ask a question about failing "make" part of building of bitcoin core 0.12? 19:13:35 e4xit: use #bitcoin 19:13:41 ok 19:13:52 e4xit, normally it's ok but we're in the middle of a meeeting 19:14:03 I thought it sounded like that :) 19:14:25 wumpus: version makes sense 19:15:16 I do think we should do a 0.11 backport release immediately after 0.12 final, instead of before, to avoid confusion 19:15:43 we could do it concurrently and just not announce the 0.11 update. 19:15:47 (e.g. having both 0.12.0 and 0.11.3 in RC phase) 19:15:56 sure, could be almost immediately 19:15:57 ah but yes, we'd get no testing on it. 19:16:26 there's much less testing needed for the 0.11 release than for a new major release, but still makes sense to do one RC 19:17:03 yes, I agree with your reasoning. FWIW. 19:17:17 proposed next topic: c++11 update 19:17:38 agree this topic is done, but we still had 19:17:42 #topic leveldb corruption 19:17:50 (this is news for me btw) 19:17:55 ok 19:18:24 @jonasschnelli 19:18:55 The issue I saw this morning said the corruption was during IBD. But IIRC we disable fsync on the block files during IBD. Is there more to it than that? 19:19:06 corruption: https://github.com/bitcoin/bitcoin/issues/7382 19:19:11 Isn't that leveldb? 19:19:53 jonasschnelli, that's a strange issue, I don't think it's related to leveldb itself though 19:20:08 I also had a corrupt database after running 0.12 (maybe not related, was running a external SSD). 19:20:30 I just think in general, we see lots of db corruptions with bitcoin core. 19:20:52 Wonder if we like to sketch a plan / roadmap for a better strategy 19:20:55 oops, did i miss meeting? 19:21:05 (you missed 20 mins) 19:21:07 jonasschnelli: I believe that issue is unrelated. 19:21:20 jonasschnelli: and I think phantomcircuit can reproduce it now. 19:21:38 Jonas well switching to a new, maintained db is the long term plan, no? 19:21:54 But we know what remains to be done there 19:22:26 I'm not aware of any evidence of leveldb corruption on linux, right now, and I've been running the most agressive testing I can perform on 0.12 for the last month. Eg. a node with four daemons running under load test and random kill -9ing the process and random power cuts every few hours and no corruption. 19:22:36 gmaxwell, i reproduced the error once and haven't been able to since 19:22:40 which has me a bit puzzled 19:22:42 just don't blame everything on leveldb: application errors that happen to happen with something stored in the leveldb database are not leveldb corruption errors 19:22:49 this may well be a bug in our code 19:23:00 Indeed. 19:23:04 or in the OS/filesystem. 19:23:09 right. 19:23:31 but as we don't have more information, it's impossible to say. Unfortunately he didn't make a backup before upgrading 19:23:32 Also not sure about Virtualized envs (sudden shutdowns)... and Windows. 19:24:09 Okay. I will grab out the logs from the prev. meeting where we did discuss that topic (sqlite, etc.). 19:24:12 it is the only report of this issue that we have 19:24:15 I think it's likely that many virtualized envs get fsync wrong, in which case there isn't much that any database could do. :( 19:25:10 ok, next topic? 19:25:14 LevelDB can corrupt due to OS performing out-of-order writes... https://www.usenix.org/conference/osdi14/technical-sessions/presentation/pillai 19:26:14 proposed next topic: c++11 update 19:26:16 #topic c++11 19:26:31 just wanted to give a brief update there 19:26:40 IIRC there are 6 lines that need to change, relating to the use of shared_ptr/unique_ptr. I have a patch. 19:26:43 afaik, all changes needed for c++11 have gone in and we're ready to switch. atm, the only hold-out is travis. I've talked with their team, and they've indicated that the features we need (trusty, caching) will be ready by the end of the month. So I've proposed that we wait for that to flip the switch, since it's not that far out. 19:26:44 did travis already upgrade? 19:27:17 awesome, thanks for the update cfields 19:27:21 wumpus: nothing new, just posting it here for the record 19:27:34 nice, thanks cfields 19:27:36 i agree with waiting until we can test 19:27:36 we can wait a month, awesome 19:27:53 agreed 19:27:59 proposed topic "EOL policy" 19:28:04 There was a report of wangchung from f2pool that he would not run code that required a C++11 compiler. I don't know if anyone has spoken with him to try to figure out what it would take for him to upgrade his operating systems in the future. I think that conversation should happen. 19:28:26 or use static linking 19:28:26 gmaxwell: i saw that and i'd really like to understand the concern 19:28:34 wangchun: ping 19:28:48 the gitian-built executables don't need any special OS support after the C++11 switch 19:28:48 fwiw, official binary releases are statically linked 19:28:50 mayeb jl2012 can reach out in Chinese 19:28:54 cfields: not during the meeting. :) 19:28:54 this is just for compiling 19:29:16 ok, sure 19:29:22 I'm just bringing it up so it's not a surprise at the 0.13 release time. 19:29:39 let me know anything i can help to bring the message to wangchun. 19:30:17 next topic? 19:30:32 #topic EOL policy 19:30:38 I have been putting together a software lifecycle document which I'd like further feedback on https://github.com/bitcoin-core/website/pull/37 19:30:39 kangx_: i'll ping him in #bitcoin-core-dev after the meeting. feel free to help relay 19:30:51 ok. that is fine with me.. 19:30:57 action item talk to wangchun about C++11 eupgrade ? 19:31:00 kangx_: thanks :) 19:31:15 I've replied there https://github.com/bitcoin-core/website/pull/37#issuecomment-172494669 19:31:20 sure.. 19:31:48 Agree with wumpus about EOL: "I tend to regard the last two major releases as maintained" 19:31:49 wumpus: sure. just wanted bring to everyone's attention for RFC 19:32:11 btcdrak, yes, just wanted to bring it to attention so I don't have to re-type everything here ;) 19:32:17 :) 19:32:22 I don't know how useful or used our backports are, even just one release back. I think in principle we should continue to do it; but perhaps we're wasting resources on things that aren't helpful to anyone. 19:32:48 If there are people who use them (rather than just staying with old versions and not upgrading), they haven't been providing any feedback anyplace I can see them. 19:32:56 perhaps. But it seems there are people willing to do even more work here, like Luke-Jr 19:32:59 gmaxwell: it may be a useful policy to just play it as "see if anyone yells" 19:33:12 maybe we could have something like ubuntu's long term support and officially support only the last tw plus the last LTS one ? 19:33:37 jtimon: and how frequently would LTSs be? 19:33:40 jtimon: I was waiting to see if anyone brought that up. 19:33:45 I don't see a strong reason to switch to another policy than has been implicit already all this time 19:33:57 I don't know, 4 years? I mean, maybe only backport consensus critical stuff 19:33:58 The thing about LTS is they are maintained for years. 19:33:58 wumpus: perhaps-- but just luke doing backports doesn't mean there is meaningful testing. I worry a lot that one of these backports will have some awful bug from integration; fortunately if no one runs them that also doesn't matter. 19:34:05 backports are a drain on manpower, and if they end up being unused mostly, they may not get sufficient testing to consider thay safe 19:34:17 I think it would be irresponsible not to have a policy at least with regards to security back ports and consensus changes 19:34:32 But I think the current policy is not bad, I wouldn't want to make it stronger without any evidence that people care. 19:34:33 we should have a policy, i agfee 19:34:36 maaku, we do those 19:34:37 I just wanted to document EOL given the scale at which Core software is used at enterprise level. 19:34:52 ok, just something that crossed my main, please continue the discussion without the LTS proposal 19:35:10 maaku: it's irrelevant if litterally no one uses them. Right now our last 0.10 backport is totally unused as far as I can tell. 19:35:18 EOL is something that people can hold onto. Gives trust, makes a project look stable. I think we should have a clear policy and follow it. 19:35:50 so to be clear: so you're arguing to not do backports at all anymore gmaxwell 19:35:57 jonasschnelli: exactly 19:36:01 It also affects development, with respect to whether features have to be back ported or not changes the design. 19:36:08 This has been a point of contention recently. 19:36:12 at the last soft fork we saw people mining on it with a signficant fraction of the hashrate, running git _master_, not even a release. 19:36:23 features are not backported, the idea is to backport fixes 19:36:30 maaku: good point. c++11 usage will be affected strongly. 19:36:38 wumpus: consensus changes are backported though 19:36:48 sipa, yes, to help adoption 19:36:56 sipa but how far? 19:36:57 My own understanding is maintenance releases get softforks and bug fixes only. 19:37:10 btcdrak: +1 19:37:13 Thats a clear policy. 19:37:16 maaku: as far back as is required for miners 19:37:18 wumpus: I don't know. I am observing the backports appear to be a waste of time. From a matter of principle, I think they are important, but the industry doesn't appear to agree. 19:37:20 maaku: that's what we're discussion :) 19:37:34 I disagree with completely stopping backports, but ok, if everyone else thinks that I"m happy to drop that work I'm busy enough 19:37:39 wumpus: softforks are also backported 19:37:39 we dont really have a good way on knowing what miners are running though. 19:37:59 i think we should continue them, and clearly document the policy 19:38:06 wumpus: I think continuing with what we're doing for now is okay, but I do worry that the backports don't see adequate testing (a symptom of no one actually using them) 19:38:07 seems it's hard/impossible to say what will be necessary to backport in the fugure, but imo it'd be reasonable to say explicitly "after version X's release, version Y will receive no more updates" 19:38:13 I think we should continue with the status quo wumpus has established 19:38:14 For the record I don't care what the answer is. But I care strongly that we decide on one policy. :) 19:38:18 we should also not feel bad about changing the policy, if we clearly announce 19:38:39 maaku: agree 19:38:58 Well I think our current policy is that we backport bugfixes (based on severity and difficulty of backport) and soft-forks to the last major version. 19:39:14 indeed gmaxwell 19:39:19 I would say to the last *two* major versions.. 19:39:22 yeah, but it seems to have been pretty adhoc 19:39:28 0.11 and 0.10 in the current state. 19:39:44 jonasschnelli: and once 0.12 is released? 19:39:51 it becomes 0.11 and 0.12 19:39:51 jonasschnelli: do you mean when 0.12 is out we should continue backporting to 0.10? 19:39:52 only 0.11 and 0.12 then? 19:39:56 yes sipa 19:40:00 sounds good to me 19:40:07 although Luke-Jr apparently wants to pick up and maintain 0.10 19:40:14 Once 0.12 is released 0.12 and 0.11 (sorry, was a bit confisuing) 19:40:20 jonasschnelli: okay 19:40:29 final release of 0.X means EOL of 0.(X-2) 19:40:39 hurray for math 19:40:54 The signal of and the value of that signal of supporting older versions is extremely valuable IMO (especially in such times) 19:40:54 ok ,topic solved? 19:40:55 it's ad hoc in a way, how ciritical something needs to be to be backported, but there's no way to avoid that 19:40:57 why would people download a bugfix to an older version rather than just grab the latest version other than custom patches? 19:41:11 then i agree with wumpus's goal of doing 0.12 before 0.11 backport. that way we don't have to do it for 0.10 :p 19:41:16 CodeShark: custom patches 19:41:19 cfields: hah 19:41:24 And since we're on a 6mo cadence, that's 1yr support 19:41:26 CodeShark: because they're carrying local patches, or do not want to invalidate integration testing they've performed. 19:41:38 yes, custom patches. The tagging is mostly symbolic then, I agree, but still 19:42:07 and "this works and I don't want to risk a large upgrade or read a lot of release notes" 19:42:37 proposed neighbor topic: shorter release cycles?! 19:42:47 0.12 changelog is --- huge! 19:43:17 jonasschnelli: to what timeframe? 19:43:47 cfields kangx_: pong, i'm on my way to the aiport for early morning flight 19:43:49 I don't know,I like a major release per half year, at least you can really call it major 19:44:01 I would like a shorter cycle, but I don't know if it's realistic. Right now the long cycle is like a 3 month RC cycle for high risk features that go in early in the cycle. 19:44:06 it's a lot of testing and effort to finalize a release 19:44:07 Not sure, 4month to short? 19:44:15 I think 6mo is pretty fast... 19:44:25 wumpus: agreed, the overhead of a release is time consuming 19:44:35 shorter releases would reduce the "oops release coming we *must* get X in quickly!" fever 19:44:40 wangchun: i'll ping you after the meeting in #bitcoin-core-dev. If you're already gone, we can talk about it later 19:44:42 by the time we get around though it's usually 7+ months irrc 19:44:51 sipa, I don't believe that 19:44:58 sipa, it just increases the occurence of that 19:45:02 maaku: the cyclelength also contributes to frustration and pressure to get features in. 19:45:06 wumpus: fair enough 19:45:08 if we aimed for 5 months, maybe we'd be closer to 6 19:45:10 ok. 19:45:19 Yes. Maybe 6 months is good. It just feels 0.11 was ages ago... but maybe that's just how a dev feels it. 19:45:23 wangcun: what is your wechat account? 19:45:55 for users it's not really better to have more frequent major releases I think. Upgrading may not always be a trivial process and comes with a risk 19:46:00 gmaxwell: as in longest = more frustration? 19:46:25 it compounds the EOL problem 19:46:26 mo, I guess the opposite 19:46:35 jtimon: yes; as in "my work is a waste of time because it won't see the light of day for another 6 months if it doesn't go in now" 19:46:51 in any case, I don't think we're in a position to consider a change in that process right now. 19:46:52 gmaxwell: thanks, yeah, makes sense 19:46:57 what are the release cycles for other mature projects? 19:47:13 Ubuntu is 6 monthly 19:47:40 There is a ton of work that goes into releases, like string translation. 19:47:46 indeed maaku 19:47:52 wumpus: there are many things that are quarterly and many things that are biannually for major releases (and of course many much slower too) 19:47:59 I think 6 month is perfectly fine... if just the GUI and wallet would be detached, we could to more released there. 19:48:00 it's surprising how devs, of all, seem to underestimate that 19:48:08 firefox releases every 6 weeks 19:48:09 yes. But I think we can wrap up sooner to allow translations/QA and RC 19:48:17 jonasschnelli, +1 on a faster release cycle for the GUI if that was possible 19:48:40 if we finished dev work at 5 months, then we'd have less slippage from the 6mnth mark 19:48:46 but we have this huge monilithic project and yes everything needs to be synchronized 19:48:55 btcdrak, I plan a release every 6 months 19:48:59 oh, reminds me. topic suggestion: current server/wallet inter-dependencies 19:49:00 a year is not multiple of 5 months releases, shorter than 4 months seems to big of a change, I think if we move from 6 months it would be to 4 months no matter what other projects do 19:49:03 wumpus: firefox is now nearly _monthly_ major releases. 19:49:14 gmaxwell, I don't really want to follow firefox inthat 19:49:16 I think we just need more clarity on things like redactor windows. 19:49:23 s/to big/too big 19:49:26 btcdrak, there are always two releases per year now 19:49:27 i am perfectly fine with 6 months 19:49:43 wumpus: I wouldn't suggest that; only pointing out that there are large projects behind basically any schedule you might consider. 19:49:43 maaku, I always post a release schedule in advance on the mailing list 19:50:13 I'm fine with adding more deadlines though if that feels better :) 19:50:20 Slower cycles also mean reduced user feedback. Different parts of the system benefit differently from that. 19:50:21 I'm fine with 6 months but wouldn't oppose to 4 motnhs either 19:50:55 gmaxwell, as said, I'd be OK with faster release cycle for the GUI if that was possible 19:50:58 e.g. if most of our current activity were UI facing it would be more adventagious to have a faster cycle. 19:51:00 but not for the core code 19:51:17 Agree. 19:51:20 ok 19:51:27 I have to admit wumpus does a awesome job on keeping deadlines for the releases! 19:51:34 wumpus your release schedule did not have a refactoring window 19:51:40 jonasschnelli: +1 19:52:14 yeah, if shortenning it is going to mean not keeping deadlines, let's not do it 19:52:28 in any case, I think this discussion is covered. 19:52:30 maaku, true 19:52:57 so it's basically as written in the EOL PP 19:52:58 maaku: refactoring? We have a main.cpp. We don't need refactoring. :) 19:53:00 PR 19:53:27 yes, it's the same thing every time, I want 6 months everyone else wants a shorter release cycle, at some point I'm going to make one of you release manager and figure it out :p 19:53:41 :} 19:53:44 jonasschnelli: can we move everything back into main.cpp? I'd save a lot of time grepping. :P 19:53:51 LOL 19:53:56 haha 19:53:58 hehe 19:54:18 gmaxwell: and headers.h :) 19:54:18 ok, any other topics? we're running out of time 19:54:21 wumpus: The solution is to make everything so wonderful that even you will want a shorter cycle. :) Core is not there yet. 19:54:24 hehe, ok, if wumpus willing is not going to do 4 months then the topic is solved for now 19:55:29 no more topics? end meeting? 19:55:30 i proposed lib dependencies as a topic above, but there's really no need to do that here. we can discuss later 19:55:34 gmaxwell: ACK on making things wonderful 19:55:38 +1 19:55:42 +2 19:55:48 #endmeeting