13:29:31 <nickm> #startmeeting
13:29:31 <MeetBot> Meeting started Wed Aug 19 13:29:31 2015 UTC.  The chair is nickm. Information about MeetBot at http://wiki.debian.org/MeetBot.
13:29:31 <MeetBot> Useful Commands: #action #agreed #help #info #idea #link #topic.
13:29:35 <nickm> hello meetbot!
13:29:38 <teor> 30-35 hours in transit, and cheaper with a day either side
13:29:44 <nickm> I'll start with a quick status report:
13:30:01 <nickm> I've been hacking on getting testing/refactoring stuff done, and trying to get ed25519 backend/key-mgt stuff done.
13:30:11 <nickm> I'm behind on code review; the world is behind on reviewing my code.
13:30:30 <Yawning> wut I reviewed like, 3 branches of yours ;_;
13:30:33 <nickm> I'm a bit frustrated by our use of low-rent vtbls, which means that our callgraph isn't so reliable.
13:30:47 <nickm> Yawning: yeah, and thanks!  But i'm still behind.  Got a backlog.
13:30:54 <Yawning> gotcha
13:31:06 <Yawning> wait, if the vtbl thing wasn't good, should I have done the ed25519 stuff differently?
13:31:15 <Yawning> cuz I def made the problem worse >.>
13:31:22 <nickm> Yawning: no worries there; the ed25519 stuff doesn't call back into the blob
13:31:35 <Yawning> ahh
13:31:45 <nickm> But I think some of athena's vtbl stuff is maybe hiding blob complexity
13:31:49 <nickm> that's a topic for 0.2.8 though
13:31:58 <dgoulet> nickm: just did a review of #16679
13:32:13 <nickm> I'm looking at the pile of stuff we said we do in august, and getting a bit intimidated: 11 days left!
13:32:25 <nickm> but, hey, triage
13:32:44 <nickm> also, I'm hoping for end-of-august feature freeze on 0.2.7, which probably means that we just have a more exiciting and fun 0.2.8
13:32:51 <Yawning> hm
13:32:54 <Yawning> kind of fast but ok
13:33:06 <nickm> well, it's a 6-month interval, IIRC
13:33:43 <nickm> (tor 0.2.6 feature freeze was start-of-march)
13:34:19 <Yawning> what's our plan for freeze->stable (and I assume that's when we deprecate 0.2.4.x?)
13:34:20 <nickm> I'm not sure what I'm prioritizing between now and end-of-month, and what will slip. I would have liked to get #15055 done, but that seems implausible.
13:34:30 <nickm> dgoulet: thanks!
13:34:32 <isabela> oi
13:34:37 <nickm> Yawning: hm, let's look at history
13:35:24 <nickm> 0.2.6.6 came out end-of-march.  First 0.2.6 freeze was Feb-ish
13:35:28 <nickm> https://lists.torproject.org/pipermail/tor-dev/2015-January/008216.html
13:35:34 <Yawning> a month?
13:35:41 <nickm> yeah; we'll see
13:35:48 <nickm> it all depends how much huge stuff we merge at last minute
13:35:59 <nickm> I think we should probably commit to having first step for 0.2.8 be merging big pending stuff
13:36:02 <nickm> else, drama
13:36:08 <nickm> no plan yet for 0.2.4 deprecation
13:36:10 <Yawning> man I wanted time to parallelize the client link crypto stuff
13:36:11 * isabela reading backlog
13:36:14 <nickm> should have one, it would be nice
13:36:26 <Yawning> potentially supporting 4 versions
13:36:29 <nickm> Yawning: and you still can!
13:36:29 <Yawning> would really suck
13:36:37 <Yawning> have pt stuff that I'd rather see
13:37:20 <Yawning> also our circuit build crypto is substantially faster in 0.2.7.x anyway
13:37:23 <nickm> maybe we should do something like https://lists.torproject.org/pipermail/tor-dev/2015-January/008216.html this time around, with a loose freeze at 1 Sep and a hard freeze on 15 sep?  dunno
13:37:23 <dgoulet> nickm: hrm so end of August feature freeze, I don't see "new features" for R (HS also) but #16389 might requires a "revision-counter" to the descriptor to fix the 5 min. random wait
13:37:27 <nickm> Yawning: yeah
13:37:36 <dgoulet> nickm: which would be too late after feature freeze I guess :S
13:37:42 <Yawning> we should probably
13:37:54 <Yawning> think about if we want to freeze pre or post dev meeting
13:38:09 <Yawning> I can make a case for either, even if one means pushing it back
13:38:10 <dgoulet> I would advocate for post-dev meeting
13:38:11 <nickm> IME there is always a great reason to delay the freeze another week or month
13:38:14 <dgoulet> but it's far away
13:38:31 <nickm> but the benefit of an early freeze is that we don't fight about last-minute merges forever
13:38:36 <Yawning> nickm: yeah, which is why, I can make a case for either
13:38:49 <nickm> stabilizing 0.2.6 was pretty easy, and if we freeze soon, I think 0.2.7 will be easy to stabilize soon
13:39:02 <Yawning> I think 0.2.7.x has been fairly stable
13:39:03 <nickm> I think that if we delay 0.2.7 for anything big, stability issues might bite us:
13:39:14 <Yawning> we ship it in tor browser alpha
13:39:16 <nickm> also IME, it's the last big patch you merge that hurts the most.
13:39:33 <Yawning> I guess we should dinish reports and revisit this?
13:39:39 <nickm> yes let's!
13:39:40 <Yawning> *finish
13:39:43 <Yawning> I can go
13:39:45 <nickm> go !
13:40:00 <Yawning> Reviewd some patches, made curve25519 key gen/ed25519 operations 5x faster on 32 bit x86
13:40:01 <Yawning> done
13:40:03 <Yawning> >.>
13:40:09 <Yawning> though the latter was trivial
13:40:16 <Yawning> oh, and added batch verification support
13:40:57 <Yawning> (so yeah, 0.2.7.x public key crypto is "fast" now)
13:41:16 <Yawning> next on my task list is pt stuff, writing docs about pt stuff
13:41:17 <nickm> yaaay
13:41:26 <dgoulet> On my part, had lots of discussion at camp, particularly with asn and DonnchaC, shared random is on it's way to an implementation, currently in "vacation" but will try to follow a bit the emergencies for feature freeze
13:41:27 <Yawning> fixing a tor browser build issue to do with locales
13:41:47 <nickm> isabela: towards the end of this meeting should we have a look over https://trac.torproject.org/projects/tor/query?status=!closed&keywords=~TorCoreTeam201508 ?
13:42:24 <isabela> yes
13:42:39 <isabela> nickm: and the other one where we are tracking sponsor deliverables
13:42:41 * dgoulet done btw
13:43:31 <nickm> anybody else around?
13:43:48 <teor> I cleared up some testing stuff
13:44:12 <teor> And then my laptop went in the blink.
13:44:53 <teor> Should be back mid-next week, but that means no coding from me for a little while
13:45:03 <teor> But I can still read code
13:45:18 * teor done
13:45:52 <nickm> athena, asn: ping?
13:46:16 <nickm> either could be asleep; timezones are a real thing
13:46:24 <nickm> or so I hear
13:46:27 <dgoulet> 15h46 currently here :)
13:46:40 <isabela> dgoulet: stil in germany?
13:46:51 <teor> I missed the patch meeting yesterday/today due to time zones
13:46:54 <dgoulet> isabela: nope, I'm in France since yesterday :)
13:47:17 <nickm> ok, we can take more status stuff if more folks are around, but for now, let's move on to discussion.
13:47:20 <nickm> issues I'm aware of:
13:47:40 <nickm> 1. upcoming freeze 2. Stuff between now and end-of-month. 3. pending funder deliverables for Oct.
13:47:44 <nickm> Anything else?
13:47:56 <nickm> there's probably a pile of tech issues to talk about too
13:48:18 <dgoulet> nickm: multi-thread crypto thingy maybe?
13:48:37 <nickm> ah, the one where I sent the chat to the ml?  sure, let's call that 4.
13:48:40 <dgoulet> yeah
13:49:07 <nickm> anything else/
13:49:08 <nickm> ?
13:49:11 <teor> I'd like some guidance on fallback directories and how many clients they should see, but that could even be after meeting
13:49:49 <nickm> ok
13:50:03 <Yawning> uh
13:50:06 <Yawning> I have one
13:50:09 <nickm> ok
13:50:17 <armadev> dgoulet: can you put it on your todo list to get nickm to answer https://trac.torproject.org/projects/tor/ticket/15254#comment:5 sometime?
13:50:48 <dgoulet> armadev: flagged for August, hrm ok
13:50:56 <nickm> Yawning: go ahead?
13:50:58 <Yawning> #15482
13:51:06 <Yawning> We should figure out wtf we want to do
13:51:11 <Yawning> before 0.2.7.x and merge something
13:51:24 <teor> Oh yeah, tor vs tor browser?
13:51:27 <nickm> ok, let's call that 5.
13:51:28 <Yawning> because that's the biggest point of divergence behavior wise between Tor Browser and everything else
13:51:29 <Yawning> yah
13:52:29 <nickm> let's call teor's question about fallback dirs 6.
13:52:38 <nickm> and let's call armadev's question about #15254 7
13:52:53 <nickm> and so some number after the meeting. :)
13:53:00 <nickm> so, 1: the freeze!
13:53:46 * isabela has a question
13:53:46 <teor> I like the current size and stability of 027
13:54:07 <nickm> My first thought and default plan is to declare a Sep-1 freeze after which only bugfixes and preapproved "small features" are merged. Then after 15 Sep, only take regression fixes, security fixes, doc fixes, typo fixes, and stuff like that.
13:54:12 <nickm> isabela: shoot
13:54:13 <isabela> did  anyone reviewed what is not on august and is on 0.2.7.final tag?
13:54:21 <nickm> isabela: I don't think so
13:54:26 <nickm> Probably a whole lot of stuff
13:54:29 <isabela> :)
13:54:53 <nickm> I can start throwing stuff out of 0.2.7 today if we believe in this general principle...
13:55:33 <nickm> or send out an email to give people a few days to tag stuff TorCore201508 or PostFreeze027 if they really want to save it
13:55:47 <nickm> (but remember, short release cycles mean clean releases!)
13:55:53 <isabela> yes
13:56:09 <nickm> #action nickm sends out email describing freeze plans
13:56:19 <nickm> any objections to my plan above? :)
13:56:20 <isabela> nickm: use PostFreeze027
13:56:22 <teor> I like the idea of freezing early, then allowing the dev meeting hackery to contribute to 028
13:56:31 <nickm> sounds good IMO
13:56:36 <dgoulet> I'm fine with Sept 1 on my part, most of the stuff I need to get in 027 are fixes except the changes to the client cache (if needed)
13:57:32 <nickm> I used to hate early freezes then I learned to tell myself "Delaying the release for the feature you want won't make it  come out any earlier"
13:57:48 <teor> So will we be releasing 027 on/around the dev meeting itself?
13:57:49 <dgoulet> (also... I start to feel like I have to take a few days out of my time off to fix those because seems a bad timing ... :S)
13:58:30 <nickm> teor: I hope so.  Generally, we'll be doing it when we're confident that there aren't any bad regressions, bad security bugs, showstoppers, etc
13:59:12 <teor> Of course, just making sure timing works out
13:59:28 <nickm> I hope that takes around a month, but hey, you never know
13:59:40 <teor> Don't want to plan too much in the same week :-)
13:59:49 <nickm> it's done when it's done
13:59:52 <isabela> nickm: with the tag thing / you mean tag tickets you want in the release?
13:59:54 <teor> Indeed
14:00:30 <nickm> isabela: Tag tickets that you think are so important that they should go in during the first 2 weeks of september.
14:00:43 <nickm> even though they aren't regressions, security bugs, etc
14:01:01 <teor> Rather than, say, in 028 in October/November
14:01:18 <isabela> nickm: ok! so yes, PostFreeze027 :) and also add to september tag which we should do next week TorCore201509
14:01:25 <isabela> nickm: since they are september work
14:01:28 <nickm> ok
14:01:40 <nickm> shall we move on to discussion of what to do with TorCore201508 stuff?
14:02:04 <Yawning> I can get my pt stuff done
14:02:16 <nickm> https://trac.torproject.org/projects/tor/query?status=!closed&keywords=~TorCoreTeam201508
14:02:39 <nickm> isabela: should we move things that won't happen out of that keyword now, or leave it there till next week?
14:02:50 <isabela> leave till next week
14:02:51 <nickm> and if we identify more work that we should do before end-of-month, do we put that tag on it?
14:02:54 <nickm> ok
14:02:55 <teor> I might get fallback code done, but not doco, emails etc; not sure about the stats stuff
14:03:24 <nickm> #action we aren't going to do a big revision of TorCore201508 this week. It'll wait till next week.
14:03:41 <nickm> on to topic 3: pending funder deliverables between now and oct?
14:03:52 <nickm> isabela: do you have a link for  that?
14:04:09 <isabela> yes
14:04:53 <isabela> https://docs.google.com/spreadsheets/d/1dTva10mu-FcX8KrxRjgkFvHSyNy7aBpD9xehNuUeZ-4/edit#gid=0
14:05:17 <isabela> column J could have some new names :)
14:05:35 <nickm> ideall more names not equal to nickm
14:05:38 <nickm> *idally
14:06:30 <nickm> Are any of the tasks listed there in anybody's interest area?
14:06:50 <nickm> Please don't be afraid to take tasks away from me, or to join me on tasks; I sure don't mind!
14:07:02 <Yawning> prolly the DoS stuff if the pt stuff doesn't totally wear me out
14:07:17 <teor> Send in the clones, nickm1, nickm2, …
14:07:58 <nickm> back in 2 minutes; making tea; please add yourselves to the "can do" column of anything you would like to do?  it's okay if "can do" means "yes but only in collaboration"
14:10:34 <isabela> Yawning: column 12 and 13 or just one of them?
14:11:58 <nickm> re
14:12:22 <Yawning> isabela: one of 12/13, can collaborate on both, knopw the problem space
14:12:39 <nickm> maybe add "yawning?" to both ?
14:13:33 <isabela> done
14:13:52 <nickm> anybody else want to volunteer, or should I try to socially-engineer folks over the next week or so?
14:14:12 <teor_> I can help with the chutney-related tasks, just need to know what's missing
14:14:35 <nickm> awesome.  Can we add a "teor?"  to  those and we'll make a plan to collaborate on 'em?
14:14:35 <isabela> I would say to look at sponsor S
14:14:41 <teor_> But I can't edit the spreadsheet with my dumb browser
14:14:44 <isabela> some of them has up to 3 weeks completion and the year ends in october
14:15:02 <isabela> that means it will be close
14:15:18 <isabela> (a close call) i mean
14:15:35 <teor_> nickm: helping asn with guard fraction and chutney would be a win all round
14:15:47 <nickm> isabela: well, for S, I don't see any 3-week items?
14:15:54 <isabela> oh
14:15:55 <isabela> sorry
14:15:58 <nickm> lines 17 and 6 are the scary ones
14:15:58 <isabela> is days!
14:15:59 <isabela> ufa
14:16:15 <nickm> it might be longer than days if we can find the time
14:16:19 * isabela needs more coffee
14:16:52 <isabela> nickm: true, 6 and 17
14:17:16 <nickm> if asn is on track with 5, I believe andrea can do a reasonable job with 6.  but maybe should have help.
14:17:21 <isabela> we should do another check next week
14:17:30 <isabela> asn: ping
14:17:34 <dgoulet> nickm, isabela: ok, so as you know I'll be off for the next ~two weeks, I realized that it's nonsense to do that for the release, so I'll allocate a few days to help with tickets that need to be done in August, is that OK with you? :S
14:17:37 <nickm> for 17 I have a lot of it under control, but it's going to eat a bunch of my life
14:17:47 <nickm> dgoulet: sounds great!
14:17:59 <nickm> dgoulet: and don't worry here; it's important to take a break.
14:18:06 <isabela> dgoulet: of course!
14:18:13 <isabela> dgoulet: enjoy the wine !
14:18:25 * isabela joking :)
14:18:42 <nickm> (Other news: I am going to be taking a Very Long Weekend for my birthday around the end of the month. I expect to be largely AFK some time next thursday through monday the 31st.
14:18:45 <dgoulet> thanks a lot
14:18:46 <nickm> )
14:18:58 <asn> isabela: hello
14:19:01 <isabela> cool
14:19:05 <nickm> isabela: so we should make sure I do all my end-of-month stuff for you early next week if possible
14:19:06 <asn> kind of not here but hit me!
14:19:16 <isabela> asn: maybe we can do a check in next week on the guard stuff and see if you need help etc
14:19:34 <isabela> asn: so we are on track for andrea to pick it up
14:19:37 <asn> my plan is to have the first draft of the algorithm tomorrow
14:19:41 <isabela> wow
14:19:51 <asn> then give it 3 days for comments. and work more on it after that.
14:20:19 <isabela> cool we do a check in next wed then during the meeting
14:20:22 <asn> ok
14:20:23 <asn> sounds good
14:20:51 <teor_> asn: also, your guard fraction testing looks like a good task for nickm and I for SponsorS
14:21:02 <teor_> Speculatively
14:21:05 <nickm> +1
14:21:20 <nickm> this all sounds like progress.  Shall we move on to item #4 ?
14:21:25 <isabela> sim
14:22:07 <nickm> so, I apologize for the bad subject on https://lists.torproject.org/pipermail/tor-talk/2015-August/038796.html
14:22:31 <teor_> ++item
14:22:32 <nickm> it's a chat we had on #tor-dev a couple of days back about how much folks would like parallel crypto, and how some folks on the ML asked how much it'd cost to do it
14:23:01 <nickm> and I realized that outside of a formal proposal to a funding org, we have no real procedure to do such a thing.
14:23:08 <teor_> Fair question
14:23:09 <nickm> To me, it seems like a pretty big amount of work
14:23:24 <nickm> any thoughts how we should estimate this?
14:23:41 <nickm> maybe we don't neeed to come up with an estimate right now, but we should have a plan IMO
14:24:24 <teor_> Is it just parallel crypto, or is it also parallel 7000-relay-list-walking and other intensive tasks?
14:24:54 <dgoulet> ouf estimation of that... we should maybe start by enumerating what "crypto part" can/should be para.
14:24:55 <nickm> Ideally it's 'parallel everything that matters'.  Right now it's crypto that matters
14:25:51 <nickm> so maybe 1. enumerate slow stuff (by profiling main threads of relays, exits, hidden services?),  2. Figure out what would be easy to parallelize and what'd be hard.  3. ...
14:25:54 <nickm> ?
14:26:20 <dgoulet> that's a good start imo, we even already have some of elements of 1)
14:27:10 <teor_> (Some configs would also benefit from reduced system calls/more caching, we seem to have recurring complaints about gettimeofday on systems where it's slow)
14:27:24 <Yawning> we need to re-profile
14:27:32 <nickm> always
14:27:33 <Yawning> HSes
14:27:35 <dgoulet> yeah openssl read/write also are horrible
14:27:36 <teor_> (but that's orthogonal, might come up in profiling)
14:27:40 <Yawning> with 0.2.7.x
14:27:43 <nickm> anybody want to do the reprofile?
14:28:25 <teor_> Do we want just a Linux profile? Should we include a profile where system calls suck?
14:28:26 <dgoulet> I would like to do that but that won,t be before sept. :S ... (maybe it's fine?)
14:29:16 <dgoulet> I,m quite familiar with profiling and tracing tools but if we need that soon, someone better take it
14:29:36 <teor_> chutney is developed enough to run volumes of data through a test network
14:29:47 <teor_> *now*
14:31:03 <nickm> are there platforms where syscalls suck and profiling still works?
14:31:07 <nickm> I have easy access to osx
14:31:35 <teor_> Yeah, OS X, I can profile when laptop is back
14:31:41 <Yawning> teor_: I want to see a high load HS's profile
14:31:50 <teor_> It's all set up, should be quick work
14:32:14 <nickm> teor_: would you like to write a "running chutney for dummies" guide?
14:32:27 <teor_> Yawning, I tend to crash test HSs when I load them
14:32:33 <Yawning> the non-openssl stuff is probably still Curve25519
14:32:34 <isabela> that would be cool (chutney for dummies)
14:32:45 <Yawning> teor_: yeahhh, I've been trying to fix that ;_;
14:32:46 <teor_> nickm: I think the README is a
14:32:57 <teor_> almost there
14:33:06 <nickm> cool.  if you want to write  a patch, it would rock
14:33:26 <nickm> we need to break the openssl stuff down by purpose, if possible
14:33:42 <nickm> like, relay crypto vs TLS online crypto vs TLS handshake vs misc other RSA/DH vs ...
14:34:07 <teor_> I don't know what needs to improve in the current README, but I'll try to take a step back
14:34:14 <nickm> the low-hanging fruit of what to parallelize will be relay crypto and inner OR handshake.
14:34:22 <nickm> the harder bit will be parallelizing TLS stuff
14:34:32 <teor_> Nickm: is the calling tor function enough, or do we need
14:34:35 <teor_> More
14:34:41 <nickm> hm?
14:34:58 <nickm> ah
14:35:04 <Yawning> the only parts of the relay crypto left ot paralellize is client side handshake right?
14:35:08 <teor_> can we identify OpenSSL purpose by the calling tor function
14:35:11 <dgoulet> ok I have to leave unfortunately, let me know if I can help with profiling after August (email ideally), cheers all! see you on the inter-tubes!
14:35:18 <Yawning> dgoulet: cheers
14:35:23 <nickm> Yawning: that's the only part of the circuit crypto left to parallelize
14:35:26 <nickm> peace dgoulet !
14:35:40 <nickm> Yawning: but the actual per-cell crypto will need to be parallelized too maybe
14:35:47 <Yawning> ah gotcha
14:36:49 <nickm> so, do we have a plan plan, or is more info needed?
14:37:04 <nickm> seems to me that "parallelize whatever is easiest to parallelize" is a bad idea, and we should do real profiling-based stuff
14:37:25 <teor_> Iteratively develop repeatable profiles?
14:37:43 <teor_> Whether a short HOWTO or scripted
14:37:54 <nickm> sounds good to me
14:38:00 <a00001> Yawning: ping @  https://github.com/Yawning/obfs4/issues/12
14:38:11 <nickm> teor_: also will you be around later in the day? I'd like to chat about more chutney things
14:38:18 <Yawning> ...
14:38:18 <nickm> but I don't want to disrespect your timezone
14:38:27 <Yawning> I don't use the github issue tracker
14:38:30 <Yawning> but ok
14:38:50 <teor_> My timezone is 0040, so your later is my morning
14:38:56 <Yawning> a00001: Oh that. Uh, not sure if I want to merge that or not yet.
14:39:36 <nickm> teor_: yow.
14:39:43 <teor_> And my IRC is webirc, so intermittent
14:39:44 <nickm> teor_: maybe later in the evening then?
14:39:53 <nickm> or should we just try to run into each other?
14:40:04 <Yawning> I think in parallel with the profiling effort, we can/should finish the circuit crypto stuff
14:40:04 <teor_> Whose evening?
14:40:20 <Yawning> Seems low-hanging friut ish
14:40:27 <teor_> nickm: happy to ping you when I am on
14:40:38 <nickm> teor_: mine; I've got a free hour or so starting around 20:00 my time, ==  about 10:00 your morning?
14:40:51 <teor_> I'll make a note
14:40:58 <nickm> cool, I'll try to remember to be online too
14:42:04 <nickm> so, topics 5-7 are: 5. #15482;  6. teor and fallback dirs.  7.  armadev's question about #15254
14:42:34 <nickm> I propose that we end the meeting, and I chat with teor about 6 later today; try to answer 7 myself on the ticket, and we talk about 5 immediately after the meeting?
14:42:45 <Yawning> ok
14:42:57 <nickm> any more topics?   Sorry for long meeting today
14:43:02 <nickm> 60 sec timeout
14:45:47 <nickm> #endmeeting