1. 03 Jun, 2015 6 commits
    • Delyan Kratunov's avatar
      Extract TurnSequencer to detail/TurnSequencer · a95dbe43
      Delyan Kratunov authored
      Summary:
      A completely mechanical transformation that moves TurnSequencer into its own
      header, to be used by other collections.
      
      Test Plan: Existing tests.
      
      Reviewed By: jmkaldor@fb.com
      
      Subscribers: folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2065108
      
      Signature: t1:2065108:1431474613:a3a9d063ebd2bedb31abb37be5fd33f0fb3eca6a
      a95dbe43
    • Tudor Bosman's avatar
      Fix toString() for authority-less URIs · 5b39efc2
      Tudor Bosman authored
      Summary: Uri("foo:bar").str() would incorrectly return "foo://bar"
      
      Test Plan: test added
      
      Reviewed By: savasp@fb.com, markisaa@fb.com
      
      Subscribers: folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2107530
      
      Tasks: 7248055
      
      Signature: t1:2107530:1432837143:c100f148c07b5b141cc036b1b39e6c8317e9bbd6
      5b39efc2
    • Dave Watson's avatar
      Chain interrupt handlers · fa248777
      Dave Watson authored
      Summary: Chain interrupt handlers in then().  User can always choose to set a new one later.
      
      Test Plan: added unittest
      
      Reviewed By: hans@fb.com
      
      Subscribers: doug, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2091569
      
      Signature: t1:2091569:1432760579:ea7afa9b4e62e4b04b4d5f17950b9b7356a57f09
      fa248777
    • Sarang Masti's avatar
      Fix AsyncSocket::handleRead · f92ce30d
      Sarang Masti authored
      Summary:
      If openssl has buffered data read from the socket, we might not get a
      read event on the socket. So, we must schedule a readCallback to ensure
      before exiting from AsyncSocket::handleRead if we have exhausted the
      maxReadsPerEvent_ limit.
      
      Test Plan: -- modifying existing test to test this corner case.
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: net-systems@, trunkagent, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2102601
      
      Tasks: 7168699
      
      Signature: t1:2102601:1432837605:82e72a2a1875c08c9c1e8e831796c9c90df927fa
      f92ce30d
    • Lucian Grijincu's avatar
      folly: MemoryMapping: madvise: round the end to lower bound · 23bc29b8
      Lucian Grijincu authored
      Test Plan: n/a
      
      Reviewed By: ott@fb.com
      
      Subscribers: ott, folly-diffs@, yfeldblum, tudort, chalfant
      
      FB internal diff: D2100535
      
      Tasks: 4421175
      
      Signature: t1:2100535:1432674713:6f5f40a8462851b2b8972c68d34ae23aaf1e9340
      23bc29b8
    • Philip Pronin's avatar
      drop V0 of EliasFanoEncoder · 328dda4b
      Philip Pronin authored
      Summary: Cleanup. Drop support for V0 in favor of V1.
      
      Test Plan: unit tests
      
      Reviewed By: lucian@fb.com
      
      Subscribers: fbcode-common-diffs@, chaoyc, search-fbcode-diffs@, unicorn-diffs@, folly-diffs@, yfeldblum, tudort, chalfant
      
      FB internal diff: D2105967
      
      Signature: t1:2105967:1432781247:e420d8b4b8c69d28dfc229e8a2af6df8a580f979
      328dda4b
  2. 28 May, 2015 9 commits
    • Pavlo Kushnir's avatar
      Bump version to 41:0 · 87cd0f3d
      Pavlo Kushnir authored
      87cd0f3d
    • Dave Watson's avatar
      Fix cancel in ThreadWheelTimeKeeper · 03439afb
      Dave Watson authored
      Summary: This is actually a bug, future.cancel() doesn't work with the current THreadWheelTimekeeper, because cancel() only works from the eventBase thread.
      
      Test Plan: added unittest.  Crashes before, passes now
      
      Reviewed By: hans@fb.com
      
      Subscribers: doug, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2091531
      
      Signature: t1:2091531:1432224024:4aa5dd71de15b1344034a414d47c97ffaba68949
      03439afb
    • Hans Fugal's avatar
      folly::Unit docs and use lift in is_void_or_unit · 496a1139
      Hans Fugal authored
      Summary:
      I'm not sure about the name Lift now. We are lifting, yes, but are we lifting into Unit, or into "can't be void because void is unit"? But LiftIntoNonVoid is a bit verbose. I'm totally open to other names or arrangements. We could also rename `is_void_or_unit`, but to what?
      
      I reimplemented `is_void_or_unit` in terms of `Unit::Lift` because it's kinda cool but also to provide a little motivational example to the reader for why Lift exists in the first place.
      
      Test Plan: Still builds and passes tests. Nothing significant depends on this yet.
      
      Reviewed By: hannesr@fb.com
      
      Subscribers: exa, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2102147
      
      Tasks: 6847876
      
      Signature: t1:2102147:1432742966:a03973a45882d3e9f6fa7158ef393b148cbe16fc
      496a1139
    • Andre Pinto's avatar
      Instrument EventHandlers' execution · d07aa05e
      Andre Pinto authored
      Summary:
      Add the option to instrument every EventHandler that runs in a
      EventBase.
      
      Test Plan:
      Unit tests
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: alikhtarov, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2044546
      
      Tasks: 6958000
      
      Signature: t1:2044546:1432221358:6500d6c1a6631d7a06a18e874d051f2ff3108e10
      d07aa05e
    • Hans Fugal's avatar
      Promise::isFulfilled() · 323c9a33
      Hans Fugal authored
      Summary: See task
      
      Test Plan: runtests
      
      Reviewed By: jsedgwick@fb.com
      
      Subscribers: exa, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2101549
      
      Tasks: 7225286
      
      Signature: t1:2101549:1432688294:5fb9d7370c38c1392429a09ba48b131cac16647d
      323c9a33
    • James Sedgwick's avatar
      copy wangle back into folly · 5575da1f
      James Sedgwick authored
      Summary: copy everything but example/
      
      Test Plan: fbconfig -r folly/wangle && fbmake runtests
      
      Reviewed By: hans@fb.com
      
      Subscribers: fugalh, ps, bmatheny, folly-diffs@, jsedgwick, yfeldblum, markdrayton, chalfant
      
      FB internal diff: D2100811
      
      Tasks: 5802833
      
      Signature: t1:2100811:1432678173:6c336fe53aa223993f6f82de4ac91b3c19beacf1
      5575da1f
    • James Sedgwick's avatar
      move folly/wangle to wangle · ef1c65ad
      James Sedgwick authored
      Summary: this preserves history and will be followed by a copy diff
      
      Test Plan: next diff will compile
      
      Reviewed By: hans@fb.com
      
      Subscribers: fugalh, ps, bmatheny, folly-diffs@, jsedgwick, yfeldblum, markdrayton, chalfant
      
      FB internal diff: D2100784
      
      Tasks: 5802833
      
      Signature: t1:2100784:1432677219:838a336d84918145d19c6cfa4290dd58374821fd
      ef1c65ad
    • Marcelo Juchem's avatar
      removing non-existing file from the build · a716b86b
      Marcelo Juchem authored
      Summary: broken by D2096146
      
      Test Plan: arc unit
      
      Reviewed By: andrewcox@fb.com
      
      Subscribers: folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2100773
      
      Signature: t1:2100773:1432676073:a72e72fa5fb915b027fdfd31dd814d02e6606858
      a716b86b
    • Marcelo Juchem's avatar
      cleaning up RequestContext · 4a03236d
      Marcelo Juchem authored
      Test Plan: built folly
      
      Reviewed By: mshneer@fb.com
      
      Subscribers: davejwatson, mshneer, trunkagent, alandau, bmatheny, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2096146
      
      Tasks: 6337419
      
      Signature: t1:2096146:1432658670:4ff00e4274412519dc3b02d2a849b7ff289ac979
      4a03236d
  3. 26 May, 2015 13 commits
    • woo's avatar
      Bump version to 40:0 · ddfdba13
      woo authored
      ddfdba13
    • James Sedgwick's avatar
      remove spurious warning · b5a2084a
      James Sedgwick authored
      Summary: see task
      
      Test Plan: OK
      
      Reviewed By: hans@fb.com
      
      Subscribers: fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2099416
      
      Tasks: 7166291
      
      Signature: t1:2099416:1432658571:4ae632c218c4764f23e4b189167f6fdaff13dc2d
      b5a2084a
    • Anton Likhtarov's avatar
      Some optimizations · 1f656e7d
      Anton Likhtarov authored
      Summary:
      1. Eliminate some string -> StringPiece -> strings conversions
      2. Mcrouter: eliminated unnecessary inlining by moving slow path logic into its own method.
      
      Using a test setup with shadow sampling enabled and shadowing some requests,
      (typical prod setup), this brings down the cost from ~1.4% cpu in standalone mcrouter to ~0.2%:
      
      ```
      before:
      
      + 0.70%          3898  mcrouter_orig  mcrouter_orig  [.] FbAdditionalProxyRequestLogger::logReply
      + 0.13%           864  mcrouter_orig  mcrouter_orig  [.] EventGroup<ScubaRow>::processExtraSamplers
      + 0.58%          3347  mcrouter_orig  mcrouter_orig  [.] DynamicScubaSampler::getSampler
      
      ~ 1.41% total
      
      after:
      
      + 0.18%          1223  mcrouter_fix  mcrouter_fix  [.] FbAdditionalProxyRequestLogger::logReply
      + 0.04%           205  mcrouter_fix  mcrouter_fix  [.] EventGroup<ScubaRow>::processSampler
      
      ~ 0.22% total
      ```
      
      Fiber local optimization might have more of an effect.
      
      Test Plan:
      unit tests
      
      Reviewed By: pavlo@fb.com
      
      Subscribers: trunkagent, fbcode-common-diffs@, alikhtarov, folly-diffs@, yfeldblum, darshan, chalfant
      
      FB internal diff: D2089133
      
      Tasks: 5414865
      
      Signature: t1:2089133:1432338487:4158dc6b720c04f43820193e73b98d4197afcffa
      1f656e7d
    • James Sedgwick's avatar
      move FiberIOExecutor to wangle/concurrent · da432bdc
      James Sedgwick authored
      Summary: Need to cut this dep on wangle out of folly as we're moving wangle to its own repo
      
      Test Plan: chimera unit
      
      Reviewed By: rushix@fb.com
      
      Subscribers: trunkagent, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2092122
      
      Signature: t1:2092122:1432239179:9261c1b3a3a346b886b15899d25a4d0530d4e890
      da432bdc
    • Chip Turner's avatar
      Revert "Make strlcpy available in folly" (D2062632) · c947d451
      Chip Turner authored
      Summary:
      Reverting diff to fix the build.
      
      Test Plan: contbuild rule that failed to build is okay now
      
      Reviewed By: ldbrandy@fb.com
      c947d451
    • Chip Turner's avatar
      Make strlcpy available in folly · bc34a5a7
      Chip Turner authored
      Summary:
      strncpy is bad.  strlcpy is somewhat less bad.  We already had
      this function, but let's move it somewhere more reasonable.
      
      Test Plan: runtests
      
      Reviewed By: ldbrandy@fb.com
      
      Subscribers: trunkagent, lins, anca, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2062632
      
      Signature: t1:2062632:1431969926:cc7f7283073d0242fe8f361efac2557aa0b0a481
      bc34a5a7
    • Marc Horowitz's avatar
      remove unused variable · 3be65bf0
      Marc Horowitz authored
      Test Plan: search, and fbmake
      
      Reviewed By: delyank@fb.com
      
      Subscribers: trunkagent, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2093523
      
      Signature: t1:2093523:1432249208:84a27e2328636c2aafe43412f61a693b5645b895
      3be65bf0
    • Jim Meyering's avatar
      folly/experimental/fibers/EventBaseLoopController.h: include <atomic> · 79e29a6c
      Jim Meyering authored
      Summary: Without <atomic>, this fails to compile with clang:dev and newer glibc.
      
      Test Plan:
      fbconfig --clang --with-project-version=clang:dev --with-project-version=llvm_compiler_rt:dev --platform-all=gcc-4.9-glibc-2.20 --sanitize=address mcrouter/lib/network:client-test-sync && fbmake dbg
      
      Reviewed By: pavlo@fb.com
      
      Subscribers: folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2093709
      
      Signature: t1:2093709:1432250378:2b78c142598bf0a7b0869089c752f5ccdae9da22
      79e29a6c
    • Marc Horowitz's avatar
      Refactor tests to verify that a single folly target can be used successfully · b0131bea
      Marc Horowitz authored
      Summary:
      This includes a change to Range to move operator<< into the
      header, to achieve the goal.  Specifically, see format_test,
      dynamic_test, json_test, demangle_test
      
      Test Plan: fbconfig -r buck && fbmake runtests
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: darshan, tjackson, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2063698
      
      Signature: t1:2063698:1431467309:069da6d74bb5c384e7a21e6be19a4b20466bdd92
      b0131bea
    • Marc Horowitz's avatar
      folly refactorings to better support cross-platform · 3b4d7b6a
      Marc Horowitz authored
      Summary:
      I'm looking into pulling parts of folly (right now, dynamic,
      json, and their dependencies) into fbandroid for use as part of xplat.
      This diff includes a few kinds of changes: portability fixes for arm;
      reduce the size of the code generated by moving non-templated
      functions and methods into cpp files; refactoring header usages which
      require extra compiler flags on android to cpp files; and slicing up
      the libraries a bit differently to reduce dependencies.  This should
      all be backward-compatible, and do no harm to fbcode.
      
      Test Plan: runtests, sandcastle
      
      Reviewed By: njormrod@fb.com
      
      Subscribers: darshan, davejwatson, tudorb, dancol, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2057797
      
      Tasks: 7005344
      
      Signature: t1:2057797:1432145435:fa10f129fc669e682da5b4b207fc96986ca035fc
      3b4d7b6a
    • Dave Watson's avatar
      fixup service filter interface · caf6cdc0
      Dave Watson authored
      Summary:
      Based on a more thourough reading of finagle's interface:
      * adds close/isAvailable, which seem very close to thrift's interfaces
      * ComposedServices are hardcoded to underlying services, to simplify the code (means extra allocs?)
      * Made everything a shared_ptr
      * Addd ServiceFactoryFilters
      
      Test Plan: Updated the existing unittests and added some new ones
      
      Reviewed By: jsedgwick@fb.com
      
      Subscribers: doug, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2037206
      
      Signature: t1:2037206:1432147489:3464d4c12a9e434d4973febcabbf7b2b3a883257
      caf6cdc0
    • Tudor Bosman's avatar
      tupleRange, tuplePrepend · d5550513
      Tudor Bosman authored
      Summary:
      tupleRange<start, n>(tuple): return a tuple consisting of a range of elements
      from the given tuple
      
      tuplePrepend(x, tuple): return a tuple consisting of prepending x to the given
      tuple.
      
      For Lispies:
      
      std::get<0>(tuple) is car.
      tupleRange<1>(tuple) is cdr.
      tuplePrepend(x, tuple) is cons.
      
      Test Plan: test added
      
      Reviewed By: lesha@fb.com
      
      Subscribers: trunkagent, lesha, ilyam, folly-diffs@, yfeldblum, chalfant, jhj, alerer, kma, pamelavagata, tulloch
      
      FB internal diff: D2087568
      
      Signature: t1:2087568:1432164681:18795d0e8bb01f38ffc6949ac233f514ab098355
      d5550513
    • Hannes Roth's avatar
      (Wangle) Fix typo · 3651364b
      Hannes Roth authored
      Summary:
      This was supposed to be the `Result` type, since it's called on the
      Future returned by the lambda.
      
      Test Plan: Added tests for void and different types in vector/lambda.
      
      Reviewed By: mhl@fb.com
      
      Subscribers: folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2087819
      
      Tasks: 7126300
      
      Signature: t1:2087819:1432142435:72914fa64eff03454774b87a24c426379defab3b
      
      Blame Revision: rFBCODEf229322bc273190a85b5e995dcd8209b1fbf0825
      3651364b
  4. 20 May, 2015 12 commits
    • Viswanath Sivakumar's avatar
      Bump version to 39:0 · eae7495c
      Viswanath Sivakumar authored
      eae7495c
    • James Sedgwick's avatar
      make AsyncSocket::WriteRequest an interface · 48a8ecdb
      James Sedgwick authored
      Summary: This will allow a subsequent diff to implement file transfers as another type of write request
      
      Test Plan: unit
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: net-systems@, folly-diffs@, yfeldblum, chalfant, fugalh, bmatheny
      
      FB internal diff: D2080257
      
      Signature: t1:2080257:1432044566:bcc0724d349879f46e3e58ee672aff7bf37fa5f6
      48a8ecdb
    • Brian Watling's avatar
      Make AtomicHashMap shadow declaration clean · e1c97644
      Brian Watling authored
      Summary: Some of AtomicHashMap's locals shadow member functions - rename the locals to fix the warnings
      
      Test Plan: unit tests
      
      Reviewed By: chaoc@fb.com
      
      Subscribers: folly-diffs@, yfeldblum, chalfant, tao-eng@
      
      FB internal diff: D2086270
      
      Signature: t1:2086270:1432083900:fae1be39e55e4c30b47fdc7a069bb13d75292b0a
      e1c97644
    • Alexey Spiridonov's avatar
      Make Subprocess movable · 0e7cb3fe
      Alexey Spiridonov authored
      Summary:
      Subprocess doesn't have any non-movable members, and its implementation does not take addresses of the object, so I think it's safe. Move makes a bunch of code cleaner (you no longer have to wrap it in `std::unique_ptr` with associated clumsiness).
      
      https://phabricator.fb.com/diffusion/FBCODE/browse/master/folly/Subprocess.h
      
      Test Plan:
      - unit test
      - Searched for `this` in `Subprocess.{h,cpp}`.
      - Inspected member variables: `pid_`, `returnCode_`, `pipes_`
      - contbuild
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2079167
      
      Signature: t1:2079167:1432048688:26f96e29310298f47a9a9a7abef22dc863f68942
      0e7cb3fe
    • Hans Fugal's avatar
      Koans to the Future · 461cac77
      Hans Fugal authored
      Summary:
      The first file of Koans. Some simple constructor and `makeFuture` stuff, but this diff is mostly about the framework (ie the `TARGETS` and `main.cpp` and `Koan.h`, and the layout of the Koan files).
      
      Known Issues: I am not nearly enlightened enough to write these in a particularly zen style with lots of inside zen-jokes, so I'm not even trying.
      
      Test Plan:
      Work through the koans,
      then `fbmake runtests`,
      reach enlightenment
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: cgthayer, exa, folly-diffs@, jsedgwick, yfeldblum, bmatheny, chalfant
      
      FB internal diff: D2082141
      
      Tasks: 6973057
      
      Signature: t1:2082141:1432057657:273708f566154cc54f726b85f05457388357ef4e
      461cac77
    • Hasnain Lakhani's avatar
      Add getTotalCount() to Histogram · 2a919488
      Hasnain Lakhani authored
      Summary:
      Add a getTotalCount() method to the Histogram class so that callers
      can read out the number of values that were put into the histogram
      
      Test Plan: Added a new test.
      
      Reviewed By: simpkins@fb.com
      
      Subscribers: net-systems@, evanmao, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2078239
      
      Tasks: 7097793
      
      Signature: t1:2078239:1431739799:5de3a02df67ff535e06b4a1547690440cf594824
      2a919488
    • Brian Watling's avatar
      Add 'runnable' callback to ExecutionObserver · 3d381a35
      Brian Watling authored
      Summary: Add a callback when a fiber becomes runnable
      
      Test Plan: unit tests
      
      Reviewed By: andrii@fb.com
      
      Subscribers: alikhtarov, folly-diffs@, yfeldblum, chalfant
      
      FB internal diff: D2081306
      
      Signature: t1:2081306:1432011152:0ee93cb2682eb2a289b99c403e91465e72dd4ee8
      3d381a35
    • Dave Watson's avatar
      framing handler pipeline stage · 1e2aee3a
      Dave Watson authored
      Summary: last pipeline in the original diff (HeaderServer/Client channel can also become pipeline stages in the future...)
      
      Test Plan:
      fbconfig -r thrift/lib/cpp2; fbmake runtests
      
      canary results will follow in a comment
      
      Reviewed By: alandau@fb.com
      
      Subscribers: fugalh, folly-diffs@, chalfant, trunkagent, doug, alandau, bmatheny, jsedgwick, yfeldblum
      
      FB internal diff: D2033559
      
      Signature: t1:2033559:1430417432:c6cf4ccbf9ef26d89e7d7c5955d103348205b365
      1e2aee3a
    • James Sedgwick's avatar
      RFC: FutureDAG · f51b0466
      James Sedgwick authored
      Summary:
      See task. Set up a DAG of Future-returning tasks (optionally with executors) and eventually kick them off.
      One big question is ownership. Currently the user would be responsible for ensuring that the FutureDAG outlives its own completion. This requirement could go away with shared_from_this magic maybe
      
      Test Plan: unit. I didn't bother to test via() functionality because it's too much work for now - the functionality is trivial. Same for "true-async" dags...
      
      Reviewed By: hans@fb.com
      
      Subscribers: folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2073481
      
      Signature: t1:2073481:1431961131:82a8898502d5308f6ab3cc8cc5b84b016d3998fe
      f51b0466
    • Tudor Bosman's avatar
      Make folly::format no longer crash on invalid format strings · 4ecf6e3f
      Tudor Bosman authored
      Summary:
      Yes, ideally we'd detect this at compile time, but if we can't, causing a SEV1
      is not the best way to do it.
      
      format() now behaves like formatChecked(); the old API is maintained for
      backwards compatibility, but deprecated.
      
      Test Plan: format_test
      
      Reviewed By: simpkins@fb.com
      
      Subscribers: trunkagent, dpittman, jdelong, sdmich, net-systems@, dmitri, folly-diffs@, yfeldblum, andrii, mssarang, chalfant
      
      FB internal diff: D2075829
      
      Tasks: 7095768
      
      Signature: t1:2075829:1431713985:b3fdec4820104b4ddc4be0b6af999db174a692d9
      4ecf6e3f
    • Alan Frindell's avatar
      Fix race issue in EventBase::runInEventBaseThreadAndWait (t6779663) · 1ae1c1ff
      Alan Frindell authored
      Summary: Huge thanks to @afrind for debugging this issue with me and found the root cause. As per the comment from @afrind for the diff D1823407, there is a tricky race issue. The main thread could have left and reset the condition_variable from its stack but the EventBase thread tries to access it afterwards due to race and could be blocked indefinitely. This caused the server-side IO threads not able to pick up the incoming connections for the proxygen case. The fix is to use a simpler struct barrier and get a hold of the shared_ptr instead of the same object in a safer way.
      
      Test Plan:
      The original issue reproes very easily in HDFS XDC encryption case. Servers easily enter into bad state and we got high volume of timeouts from the client. With the fix, this does not happen anymore after the fix being deployed at 11:15PM. Here is the Scuba log before and after the fix:
      https://fburl.com/109969805
      And here is the correspond Scuba diagram for successful calls in the same test:
      https://fburl.com/109971729
      The throughput improved a lot after the fix.
      
      Reviewed By: davejwatson@fb.com
      
      Subscribers: doug, folly-diffs@, yfeldblum, chalfant, afrind, brettp, dougw, fma
      
      FB internal diff: D2071646
      
      Signature: t1:2071646:1431709609:10fb033536f9e4fb428dea8ba68f6a9a051616c0
      1ae1c1ff
    • James Sedgwick's avatar
      fix clang build · d599ae3b
      James Sedgwick authored
      Summary: PipelineBase needs something virtual so we can dynamic_cast from it down to the real pipeline, as we do in Proxy
      
      Test Plan: built proxy with clang
      
      Reviewed By: hans@fb.com
      
      Subscribers: fugalh, mathieubaudet, folly-diffs@, jsedgwick, yfeldblum, chalfant
      
      FB internal diff: D2075855
      
      Tasks: 7077419, 7077417
      
      Signature: t1:2075855:1431708780:03ce8d8f40cdb56d24baf75f4dc29004e5ea4c7a
      d599ae3b