1. 03 Dec, 2021 2 commits
    • Mingtao Yang's avatar
      SSLContext: rename misleading loadClientCAList · 0121c4ee
      Mingtao Yang authored
      Summary:
      `loadClientCAList`, unlike `loadTrustedCertificates`, does not *append*
      "client ca"s to the current context, it *overrides* the list of acceptable
      client CA names.
      
      `load` vs `set` have subtle, but recognizable, semantic differences. There
      is a currently a bug in wangle::SSLContextManager that could have been
      prevented if the name was more wisely chosen.
      
      Rename to `setSupportedClientCertificateAuthorityNames`, which is verbose but
      * Makes the `load` vs `set` distinction clear.
      * Makes it clear that this has nothing to do with changing how client CAs are
        configured. All this does is set a list of supported names; nothing more.
        Existing call sites imply that authors misunderstood what this function
        was doing.
      
      Reviewed By: kylemirz
      
      Differential Revision: D32408104
      
      fbshipit-source-id: acf55c2e0b206e28e13e5922d719b43289a1c0f7
      0121c4ee
    • Adam Simpkins's avatar
      start renaming IOBuf::prependChain() to IOBuf::appendToChain() · 81f781c5
      Adam Simpkins authored
      Summary:
      The `prependChain()` and `appendChain()` method names have always been
      confusing, ever since they were first added in D271954.
      
      These methods prepend and append immediately before or after the current
      element.  However, because IOBuf chains are circular, this effectively means
      that `prependChain()` appends to the very end of the chain when called on the
      head of an IOBuf chain.  This is almost always how it is used in practice, so
      having it be named `prependChain()` is quite confusing.  (Note that in the
      initial version of D271954 these methods were originally named `appendChain()`
      and `appendChainHere()`, but were unfortunately renamed during review.)
      
      This diff adds alternate names for these methods, so we can migrate call sites
      to use the new names, and then deprecate these existing names.
      
      `appendToChain()` is the new recommended name for `prependChain()`, and
      `insertAfterThisOne()` is the new recommended name for `appendChain()`
      
      Reviewed By: voznesenskym
      
      Differential Revision: D32524091
      
      fbshipit-source-id: faf74f8803947c6452a10b58ced0c38efbd320fd
      81f781c5
  2. 02 Dec, 2021 12 commits
    • Jason Fried's avatar
      remove empty .pyx files · c424777a
      Jason Fried authored
      Summary: Remove the empty .pyx files to prevent the temptation to generate empty module.so from them.
      
      Reviewed By: nanshu
      
      Differential Revision: D32634255
      
      fbshipit-source-id: 277f954f3500811df4a8b16e08acf0b8092172c3
      c424777a
    • Nitin Garg's avatar
      Skip TSAN annotations for SharedMutex in Digest · ad230ca8
      Nitin Garg authored
      Summary:
      The slowdown from the tracking is making long running tests that also
      exercise it heavily to time out.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D31715944
      
      fbshipit-source-id: 2b4354242dd035c2a4ba69a2aa3e05f2196ae949
      ad230ca8
    • Shai Szulanski's avatar
      exception_wrapper::terminate_with · 1891a99d
      Shai Szulanski authored
      Summary: Enables terminating the process with the wrapped exception, as if calling folly::terminate_with polymorphically
      
      Reviewed By: Gownta
      
      Differential Revision: D32776269
      
      fbshipit-source-id: d0d1ac374a38010bbe3ae608d22f7b2141d070e6
      1891a99d
    • Vladimir Matveev's avatar
      Convert cdef values into module level attributes · c4d6fcdd
      Vladimir Matveev authored
      Summary: As in title, replace cdef values with module level attributes
      
      Reviewed By: pranavtbhat
      
      Differential Revision: D32788433
      
      fbshipit-source-id: 7df97fd17a6aef9cd2d637f12c0bef8993fd253f
      c4d6fcdd
    • Alex Hornby's avatar
      zstd on ubuntu 18.04 is too old · b7b3c160
      Alex Hornby authored
      Summary: Ubuntu 18.04 zstd version is too old for the folly buikld
      
      Reviewed By: Croohand
      
      Differential Revision: D32693530
      
      fbshipit-source-id: 9de4b8d1eac1043b329016e487241e27bf6bb554
      b7b3c160
    • Alex Hornby's avatar
      dont use cmake 3.10 .deb, it reserves Python3::Interpreter · 39b52772
      Alex Hornby authored
      Summary:
      cmake 3.10 on ubuntu 18.04 reserves the Python3::Interpreter target so that the FBPythonBinary.cmake rules can't definite it when missing
      
      This breaks builds using the Python3::Interpreter rule, notably the python-six manifest which in turn is used by fbthrift
      
      The fix is to use the getdeps manifest cmake manifest instead on .deb platforms.  Once CI is on ubuntu 20.04 everywhere we could revisit
      
      Reviewed By: Croohand
      
      Differential Revision: D32693523
      
      fbshipit-source-id: 8521d904fba588941ab1efd0148f9d24a350e849
      39b52772
    • Alex Hornby's avatar
      add dry-run option to install-system-deps · 5783b9ab
      Alex Hornby authored
      Summary: Useful to be able to see what packages would be installed without doing it, and to see rpm vs deb packages
      
      Reviewed By: Croohand
      
      Differential Revision: D32693528
      
      fbshipit-source-id: a01257e7192f2f0299d57f6f8f7ee93452a6f3e4
      5783b9ab
    • Yedidya Feldblum's avatar
      fix MSVC C5219 conversion warnings in EventBase · de82c426
      Yedidya Feldblum authored
      Summary:
      Fixes warnings like the following:
      
      ```
      folly\io\async\EventBase.cpp(725): warning C5219: implicit conversion from '_Rep' to 'double', possible loss of data
              with
              [
                  _Rep=__int64
              ]
      folly\io\async\EventBase.cpp(738): warning C5219: implicit conversion from '_Rep' to 'double', possible loss of data
              with
              [
                  _Rep=__int64
              ]
      folly\io\async\EventBase.cpp(740): warning C5219: implicit conversion from 'size_t' to 'double', possible loss of data
      ```
      
      Reviewed By: luciang
      
      Differential Revision: D31330566
      
      fbshipit-source-id: 86a2cd10fdad53dce9c0ee0704b26bb1bce2bf18
      de82c426
    • Yedidya Feldblum's avatar
      cut macro FOLLY_HAVE_EVENTFD · a7426cc4
      Yedidya Feldblum authored
      Summary: No place which defines this nominally owns the name.
      
      Reviewed By: Gownta
      
      Differential Revision: D32632858
      
      fbshipit-source-id: ab5ee161b7c80f08a177c752c4bfe693cf9c9de3
      a7426cc4
    • Jacob Bower's avatar
      Allow custom global executor for native callbacks · 9549eeb5
      Jacob Bower authored
      Summary:
      Makes `folly::AsyncioExecutor` an abstract class and adds new `folly::python::setExecutorForLoop()` (C++) and `folly.executor.set_executor_for_loop()` (Python) functions. These control what is returned by `folly::python::getExecutor()` and `folly.executor.get_executor()` and hence allow installing a custom system for handling native callbacks on the Python event loop.
      
      In this implementation we only allow the executor for a given Python event loop to be set _once_ before being explicitly cleared. An alternative which was discussed was returning the previous executor when setting a new one, allowing the caller to stack them. My rationale for not doing this is I think this makes it too easy to accidentally "lose" callbacks registered with an existing executor.
      
      Reviewed By: vladima, pranavtbhat
      
      Differential Revision: D32486564
      
      fbshipit-source-id: 4c9ad4e5f2b7b89f1edafdb4eddd9ccacb23635f
      9549eeb5
    • Yedidya Feldblum's avatar
      invoke-qual macros · 91a18af1
      Yedidya Feldblum authored
      Summary: For invoking things given possible-qualified names. Differs from invoke-free as the latter accepts an optional list of namespaces scope to include in name lookup but does not permit qualified names and does not admit a lambda variation.
      
      Reviewed By: Gownta
      
      Differential Revision: D32670267
      
      fbshipit-source-id: f9b9e33bd1e3cfa1c191eb8c91b3f50bb0e9734e
      91a18af1
    • Yedidya Feldblum's avatar
      a comment about not using badges with unknown callees · a97e36d6
      Yedidya Feldblum authored
      Reviewed By: Gownta
      
      Differential Revision: D32747533
      
      fbshipit-source-id: f3fe004797eeaf22ae1db85f27b547dc7ad7cfbc
      a97e36d6
  3. 01 Dec, 2021 5 commits
    • Alex Hornby's avatar
      add os type filtering to generate-github-actions · 823ec7bd
      Alex Hornby authored
      Summary: Hand to do just one
      
      Reviewed By: zpao
      
      Differential Revision: D32693529
      
      fbshipit-source-id: ac27c79f8a43c540e3b0836eba3a40bd61dd725b
      823ec7bd
    • Vladimir Matveev's avatar
      Add a cache for the last seen event loop to avoid lookup cost · b62b4231
      Vladimir Matveev authored
      Summary: As in title, skip lookup in `WeakKeyDictionary` for repeated `get_fiber_manager` calls on the same event loop
      
      Reviewed By: pranavtbhat
      
      Differential Revision: D32566214
      
      fbshipit-source-id: 7a9305ef88538ae4ef422283bc1b8a4140b8ea33
      b62b4231
    • Alex Hornby's avatar
      change to upload-artifact@v2 · d873835c
      Alex Hornby authored
      Summary: Update to new version of upload-artifact without branch name as that's a separate repo that our dynamic branch settings should not apply to.
      
      Reviewed By: zpao
      
      Differential Revision: D32717494
      
      fbshipit-source-id: 968908d1072d6d4550705e7df0b3828528e057dc
      d873835c
    • Alex Hornby's avatar
      run the github actions update · 8cf76910
      Alex Hornby authored
      Summary: Pick up the changes from master to main change
      
      Reviewed By: zpao
      
      Differential Revision: D32693532
      
      fbshipit-source-id: 8cf68e3310b4d2daf71fb10eee7a801c6eabbd48
      8cf76910
    • Alex Hornby's avatar
      update github actions default from master to main · fc008166
      Alex Hornby authored
      Summary: Branches updated some time ago, update this to match
      
      Reviewed By: zpao
      
      Differential Revision: D32693531
      
      fbshipit-source-id: 02da79e3fb5fcd3b204be4605521a151b977ce2c
      fc008166
  4. 30 Nov, 2021 9 commits
    • Samuel Miller's avatar
      Migrate get509() callsite to OpenSSLTransportCert · ec528801
      Samuel Miller authored
      Summary:
      Before removing `getX509()` from `AsyncTransportCertificate` we need to migrate
      all the callsites to `OpenSSLTransportCertificate`.
      
      Differential Revision: D30487611
      
      fbshipit-source-id: 50deea4904b7b6a6c08c6d4fd0c635a4bc8774cb
      ec528801
    • Shai Szulanski's avatar
      Add method pointer overloads of CoInvoke gmock helpers · b0d73b7b
      Shai Szulanski authored
      Summary: Match overloads of upstream Invoke action to ease migration
      
      Reviewed By: ispeters
      
      Differential Revision: D32706320
      
      fbshipit-source-id: d9564f63e534e3651433806fcf4f1fff7730fcc5
      b0d73b7b
    • Yan Soares Couto's avatar
      Delete Mononoke getdeps builds · 9d7c9e70
      Yan Soares Couto authored
      Summary: Mononoke has decided to no longer support getdeps builds. This diff deletes all mentions to those I could find.
      
      Reviewed By: StanislavGlebik
      
      Differential Revision: D32469441
      
      fbshipit-source-id: a11b3f1d5c57ef20792deb0e7f164e655f62648c
      9d7c9e70
    • Dmytro Stechenko's avatar
      Add subset to superset badge lifting · 9a519751
      Dmytro Stechenko authored
      Summary:
      Conversion for cases when we have a `folly::any_badge<A, B>` and want to call some function that accepts `folly::any_badge<A, B, C>`.
      ```
      void call_superset(folly::any_badge<A, B, C>);
      void call_subset(folly::any_badge<A, B> badges) { call_superset(badges); }
      
      // somewhere in A class
      call_subset(folly::badge<A>{});
      
      // somewhere in B class
      call_subset(folly::badge<B>{});
      ```
      
      Also establish bidirectional conversions between `folly::badge<A>` and `folly::any_badge<A>`.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D32697212
      
      fbshipit-source-id: 2f55d0b5015e133166fcdd6d9c25a0e396c2a151
      9a519751
    • Alex Hornby's avatar
      fix distro name · 4faac360
      Alex Hornby authored
      Summary: Missed this when switching from spaces to underscores in distro names
      
      Reviewed By: krallin
      
      Differential Revision: D32693527
      
      fbshipit-source-id: 658504d76c96defd3f1a217ada8b05f99c841ede
      4faac360
    • Alex Hornby's avatar
      update openssl · fae3a56c
      Alex Hornby authored
      Summary: Update it
      
      Reviewed By: krallin
      
      Differential Revision: D32641645
      
      fbshipit-source-id: 77ad7a2771804ac9d32dc38982635b45863af4dc
      fae3a56c
    • Yedidya Feldblum's avatar
      fix param name in FOLLY_CREATE_FREE_INVOKER_SUITE · 51391b69
      Yedidya Feldblum authored
      Reviewed By: Gownta
      
      Differential Revision: D32669969
      
      fbshipit-source-id: 4e0cd2cf73ba695720dd41416d0d04a3996385da
      51391b69
    • Yedidya Feldblum's avatar
      more asan wrappers for fibers · 20047d63
      Yedidya Feldblum authored
      Summary: Wrap more of poisoning/unpoisoning and fiber stack switching.
      
      Reviewed By: luciang
      
      Differential Revision: D31635307
      
      fbshipit-source-id: 9a6f9adbefe6fd995cfa864e0498102e237e6351
      20047d63
    • Yedidya Feldblum's avatar
      tweak in-place backport · d9ae16d1
      Yedidya Feldblum authored
      Summary:
      Use inline variables to avoid the function-pointer trick.
      
      Use explicit default constructors per the types in the standard.
      
      Import the names from the standard in C++17.
      
      This allows declaring a function with tags from one namespace and calling the function with tags from the other namespace in C++17.
      
      Reviewed By: vitaut
      
      Differential Revision: D32588945
      
      fbshipit-source-id: 0ece26ebf7f9f6acf9abb8b008327f06f84091f2
      d9ae16d1
  5. 29 Nov, 2021 3 commits
    • Lucian Grijincu's avatar
      __folly_memcpy: allow overlapping buffers of any size and provide drop-in replacement for memmove · e19669d3
      Lucian Grijincu authored
      Summary:
      `__folly_memcpy` already behaved as `memmove` for n <= 256B.
      
      For n > 256B and overlapping buffers `__folly_memcpy` did some work
      - it determined the size is large enough for 128B AVX loads/stores
      - it has already copied the first 128B and the last 128B in YMM registers
      
      but then discarded it and fell back on `memmove`.
      
      Instead of wasting this work, forward copy (dst < src) or backward copy (dst > src).
      - use unaligned loads + aligned stores, but not non-temporal stores
      - for dst < src forward copy in 128 byte batches:
      -- unaligned load the first 32 bytes & last 4 x 32 bytes
      -- forward copy (unaligned load + aligned stores) 4 x 32 bytes at a time
      -- unaligned store the first 32 bytes & last 4 x 32 bytes
      - for dst > src backward copy in 128 byte batches:
      -- unaligned load the first 4 x 32 bytes & last 32 bytes
      -- backward copy (unaligned load + aligned stores) 4 x 32 bytes at a time
      -- unaligned store the first 4 x 32 bytes & last 32 bytes
      
      Reviewed By: yfeldblum
      
      Differential Revision: D31915389
      
      fbshipit-source-id: 2c0197b2bddc102a7fb8f70a6f43e79ac994dc73
      e19669d3
    • Shai Szulanski's avatar
      Make Try's copy/move constructability match inner type · 62fa4e65
      Shai Szulanski authored
      Summary: Before this change Try always reports as copy constructible then fires a static_assert if you try to instantiate that constructor for a non-copy-constructible type, which breaks logic like that inside std::vector::resize.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D32567774
      
      fbshipit-source-id: 4e3e35a1f823ac9ccb5e2d648015fddccb14cfbf
      62fa4e65
    • Yedidya Feldblum's avatar
      cut legacy eventfd shims for glibc 2.5 · 7f49eded
      Yedidya Feldblum authored
      Summary: That is an old glibc. The shims are no longer required.
      
      Reviewed By: Orvid
      
      Differential Revision: D32632173
      
      fbshipit-source-id: d6ce675c6f16b896a950363b411bec66cedca966
      7f49eded
  6. 26 Nov, 2021 4 commits
    • Alex Hornby's avatar
      renable eden_scm build on macOS · d079207f
      Alex Hornby authored
      Summary: renable after python update from previous diff took us to a Big Sur compatible version
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32619730
      
      fbshipit-source-id: 50cefe8a2448b7e12d2f666b4570790bfbbe2cdf
      d079207f
    • Alex Hornby's avatar
      update python to 3.8 · 1148195e
      Alex Hornby authored
      Summary:
      Update to a newer python that builds on macOS Big Sur, make eden_scm depend on it and use it from PATH
      
      python 3.8 requires libffi which is reference via its pkg-config setup,  however python's pkg-config libffi detection is broken (https://bugs.python.org/issue34823) with the documented workaround requiring an environment variable to be passed into its ./configure step, which is why this change also adds a feature to AutoconfBuilder
      
      With the updated python in place I was able to remove disable_env_override_pkgconfig = 1
      disable_env_override_path = 1 from the eden_scm config so that it actually uses the pkg-configs, PATHs and other settings from its dependencies. This should make future python and other dependency upgrades much simpler.
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32231261
      
      fbshipit-source-id: a2b6addbe22f38e3d71618c802d2c6f836fdd86c
      1148195e
    • Yedidya Feldblum's avatar
      FOLLY_CXX17_CONSTEXPR · fc80a3aa
      Yedidya Feldblum authored
      Summary: A macro which expands to `constexpr` under C++17. Can be used with `if` and lambdas in cases where `constexpr` is an optional hint but not necessary for the program to compile.
      
      Reviewed By: Mizuchi
      
      Differential Revision: D32607012
      
      fbshipit-source-id: 56a6d8679ab2add4f88c89642166f1ed4b956089
      fc80a3aa
    • Yedidya Feldblum's avatar
      address warning C4866 in bser · 7c40f03a
      Yedidya Feldblum authored
      Summary:
      Fixes this warning:
      
      ```
      folly\experimental\bser\Load.cpp(109) : warning C4866: compiler may not enforce left-to-right evaluation order for call to 'folly::dynamic::operator[]'
      folly\experimental\bser\Load.cpp(131) : warning C4866: compiler may not enforce left-to-right evaluation order for call to 'folly::dynamic::operator[]'
      folly\experimental\bser\Load.cpp(136) : warning C4866: compiler may not enforce left-to-right evaluation order for call to 'folly::dynamic::operator[]'
      ```
      
      Reviewed By: luciang
      
      Differential Revision: D31320782
      
      fbshipit-source-id: 9e42176436d7ebf22af38b0589ccdc75e020b771
      7c40f03a
  7. 25 Nov, 2021 1 commit
  8. 24 Nov, 2021 4 commits
    • Pranjal Raihan's avatar
      Use FOLLY_DISABLE_SANITIZERS in MicroLock · 071b632b
      Pranjal Raihan authored
      Reviewed By: yfeldblum
      
      Differential Revision: D32364716
      
      fbshipit-source-id: f36356d5818adebe5bbbe219044c81282ab008a6
      071b632b
    • Alex Hornby's avatar
      add -v/--verbose option to see more output · 92c5f79b
      Alex Hornby authored
      Summary: I found this useful to see where manifests resolve to when they are already built
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32644308
      
      fbshipit-source-id: b796cb67f154177fbac1093290d97fe5aab6b20c
      92c5f79b
    • Alex Hornby's avatar
      fix lint · d6273303
      Alex Hornby authored
      Summary: Fix FLAKE8 lint about redefintion of 'getdeps' variable
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32644576
      
      fbshipit-source-id: 9c3b4ef54d2278238c3dc88a4969e34e24976a3d
      d6273303
    • Alex Hornby's avatar
      use system cert config when building own openssl · 569318b2
      Alex Hornby authored
      Summary: This fixes some missing cert errors when running eden_scm tests against our own build of openssl on macOS
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32617808
      
      fbshipit-source-id: efc34341c2c9b578f9c1c92e0678dfb16ef9112e
      569318b2