1. 15 Nov, 2021 3 commits
    • Shai Szulanski's avatar
      Add error hint to CoroutineHandle (resubmit) · 6b58b9e8
      Shai Szulanski authored
      Summary: Provies single-await co_nothrow wrapper
      
      Reviewed By: capickett
      
      Differential Revision: D32405920
      
      fbshipit-source-id: b0b5c55149aebe4246422fabeffb7ed433b4e20d
      6b58b9e8
    • Andrii Grynenko's avatar
      Remove MicroLock::init() · 22073b2c
      Andrii Grynenko authored
      Summary: Have constructor do init() instead. I can't think of any valid reason to have this API other than confusing everyone who decides to use it.
      
      Reviewed By: praihan
      
      Differential Revision: D32302228
      
      fbshipit-source-id: 136e0d2919291acd60be953337309cd006bd674b
      22073b2c
    • Pranjal Raihan's avatar
      Add FOLLY_DISABLE_MEMORY_SANITIZER to FOLLY_DISABLE_SANITIZERS · 84c2ff1c
      Pranjal Raihan authored
      Summary: Now we'll ignore all the known sanitizers: ASAN, TSAN, MSAN, UBSAN.
      
      Reviewed By: yfeldblum, jdonald
      
      Differential Revision: D32364717
      
      fbshipit-source-id: f71a294dd9ebaa8521f0487ebc65c6f7c1e7bf04
      84c2ff1c
  2. 13 Nov, 2021 1 commit
    • Michel Salim's avatar
      Fix for ppc64le · 028a9aba
      Michel Salim authored
      Summary:
      Inlining `getStackTraceInPlace` fails on Fedora with
      
      ```
      /builddir/build/BUILD/folly-2020.12.21.00/folly/experimental/symbolizer/StackTrace.cpp: In function 'folly::symbolizer::(anonymous namespace)::getStackTraceInPlace(ucontext_t&, unw_cursor&, unsigned long*, unsigned long)':
      /builddir/build/BUILD/folly-2020.12.21.00/folly/experimental/symbolizer/StackTrace.cpp:88:9: error: function 'folly::symbolizer::(anonymous namespace)::getStackTraceInPlace(ucontext_t&, unw_cursor&, unsigned long*, unsigned long)' can never be inlined because it uses setjmp
         88 | ssize_t getStackTraceInPlace(
            |         ^~~~~~~~~~~~~~~~~~~~
      ```
      
      Reviewed By: yfeldblum
      
      Differential Revision: D29639503
      
      fbshipit-source-id: 823692d95171d5fb3968761c00b4cc5650db171b
      028a9aba
  3. 12 Nov, 2021 4 commits
  4. 11 Nov, 2021 6 commits
    • Shai Szulanski's avatar
      Add error hint to CoroutineHandle · 8f26eb68
      Shai Szulanski authored
      Summary: Provies single-await co_nothrow wrapper
      
      Reviewed By: capickett
      
      Differential Revision: D31450124
      
      fbshipit-source-id: e8d18c49248d85ef864abad2eecffe69de58a546
      8f26eb68
    • Shai Szulanski's avatar
      CoroutineHandle · f5a43a13
      Shai Szulanski authored
      Summary: Extended coroutine handle interface for attaching new features
      
      Reviewed By: capickett
      
      Differential Revision: D31450126
      
      fbshipit-source-id: 2aa6b8a4fb72e5007d08f38fcde5c7abd8eabd67
      f5a43a13
    • Andrew Huang's avatar
      Back out "Add support for remove session callbacks in SSLContext; remove from SSLSessionCallbacks" · 9ededa2b
      Andrew Huang authored
      Reviewed By: AjanthanAsogamoorthy
      
      Differential Revision: D32328268
      
      fbshipit-source-id: e2816aa89d0ffc96e0377603fca6ca4a39830def
      9ededa2b
    • Philip Pronin's avatar
      fix frame count reporting · a922f5ff
      Philip Pronin authored
      Summary:
      We're hiding internal frames during dump, but forget to adjust
      the reported count, so the output looks clowny.
      
      Reviewed By: luciang
      
      Differential Revision: D32340094
      
      fbshipit-source-id: 86a02c54178a03a83fa64c29faf6d82abfa45bf8
      a922f5ff
    • Thomas Orozco's avatar
      eden: add python-filelock to getdeps build · 11af35b6
      Thomas Orozco authored
      Summary: I use it in the next diff.
      
      Reviewed By: xavierd
      
      Differential Revision: D32280314
      
      fbshipit-source-id: 32d86780ae3187449fc7ceb1dc474cc7ac2d1ac1
      11af35b6
    • Yedidya Feldblum's avatar
      let c/x expected and value params be dependent · db8ef89b
      Yedidya Feldblum authored
      Summary: Let their types be determined by the atomic parameter only so that conversions may happen at the call-site. This is what the `std::atomic_compare_exchange` functions do. Those functions are specified to use `typename std::atomic<T>::value_type` rather than `T` but, curiously, not all implementations of `std::atomic` have member type alias `value_type`. So instead of using member type alias `value_type` to get dependency, we use `type_t`.
      
      Reviewed By: ot
      
      Differential Revision: D32259208
      
      fbshipit-source-id: 413e3580aff3dd0ece5051b7a62dfd16f49eb5a8
      db8ef89b
  5. 10 Nov, 2021 5 commits
    • Yedidya Feldblum's avatar
      tweaks to atomic-fetch-bit-op tests · fb8d10f5
      Yedidya Feldblum authored
      Summary: Use invokers and rename the invokers for clarity.
      
      Reviewed By: luciang
      
      Differential Revision: D32160395
      
      fbshipit-source-id: 97052fc42c23db3e315bd721dcf7b3f29669bcaa
      fb8d10f5
    • Yedidya Feldblum's avatar
      rename atomic_fetch_set, atomic_fetch_reset impls · ae59c690
      Yedidya Feldblum authored
      Summary: Choose `_native` and `_fallback` suffixes nstead of `_x86` and `_deafult` suffixes. `_native` instead of `_x86` since the intention is broader than x86; `_fallback` instead of `_default` since fallback is a clear word.
      
      Reviewed By: luciang
      
      Differential Revision: D32160396
      
      fbshipit-source-id: 08d064aae670ea7e93a098b16a511ff43ca8a7e1
      ae59c690
    • Andrii Grynenko's avatar
      Fix stack use after return in Observer.ObservableLockInversion · d1e4e4d4
      Andrii Grynenko authored
      Reviewed By: praihan
      
      Differential Revision: D32297368
      
      fbshipit-source-id: a58c7805d396cc30c0d82a49d5998e2f9d8a799a
      d1e4e4d4
    • Yedidya Feldblum's avatar
      fix mask spec in atomic-fetch-bit-op docs · e5276d4b
      Yedidya Feldblum authored
      Summary: The bit param is 0-based. So, for bit 1, the mask is `0b10`.
      
      Reviewed By: luciang
      
      Differential Revision: D32160394
      
      fbshipit-source-id: cfef250b3035d8c7e29b2f36848482888801781c
      e5276d4b
    • Konstantin Tsoy's avatar
      Mock AsyncUDPSocket::applyOptions() · 039e8ff1
      Konstantin Tsoy authored
      Summary: This fixes mvfst OSS tests on Mac.
      
      Reviewed By: lnicco
      
      Differential Revision: D32227732
      
      fbshipit-source-id: 1375799046803a5183f83441b93deb0ab2e0961f
      039e8ff1
  6. 09 Nov, 2021 2 commits
  7. 08 Nov, 2021 3 commits
    • Andrew Smith's avatar
      Fix crash in MergeChannel when removing subscription to closed receiver · 99b9a899
      Andrew Smith authored
      Summary: We currently call closeReceiver() on a receiver in receiversBySubscriptionId_ that has already been removed from receivers_ (and freed). The fix is to check to see whether the receiver in receiversBySubscriptionId_ is still present in receivers_ before invoking any functions on it. If the receiver is not present in receivers_, that means it has already been closed, so we do not need to close it.
      
      Reviewed By: aary
      
      Differential Revision: D32233062
      
      fbshipit-source-id: 0aa763b509897db7de970e12e2f01cffc1b49fc3
      99b9a899
    • Alex Hornby's avatar
      eden_scm: disable macos CI getdeps build · e9906e2a
      Alex Hornby authored
      Summary: macos build is failing, disable to get clean internal CI
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32238516
      
      fbshipit-source-id: dad2d15d65a9ee971c254775fcc8e6e80fa97ab0
      e9906e2a
    • Andrew Huang's avatar
      Add support for remove session callbacks in SSLContext; remove from SSLSessionCallbacks · bdaec845
      Andrew Huang authored
      Reviewed By: mingtaoy
      
      Differential Revision: D32218077
      
      fbshipit-source-id: 5a966ced07387340d02ad2a85c095939c9e7f530
      bdaec845
  8. 07 Nov, 2021 1 commit
  9. 06 Nov, 2021 3 commits
    • Andrew Smith's avatar
      Immediately cancel any running transform callback on sender cancellation · a4cffed8
      Andrew Smith authored
      Summary: Currently, when we get a cancelled notification on the output sender for a transform, we schedule the cancellation of any running transform callback on an executor. CancellationSource is thread-safe, so we don't need to do this. This diff ensures that cancelling the output receiver will immediately trigger cancellation of any running transform callback, allowing the transform callback to deterministically know that it has been cancelled.
      
      Reviewed By: aary
      
      Differential Revision: D32191796
      
      fbshipit-source-id: aabd58be9b58b0f560b8127b336e626c3482a644
      a4cffed8
    • Andrew Smith's avatar
      Change FanoutChannel to synchronously process handle destruction. · 85724a41
      Andrew Smith authored
      Summary: This ensures that closing a FanoutChannel will synchronously cancel its input receiver. We don't need to run this code on the provided executor, because it is not running as part of a callback (and because we already have a lock).
      
      Reviewed By: aary
      
      Differential Revision: D32191795
      
      fbshipit-source-id: 9ec2a2303a12580e052de7af8651ebf5b773b8b6
      85724a41
    • Yedidya Feldblum's avatar
      DelayedDestructionUniquePtr · b0066f2b
      Yedidya Feldblum authored
      Summary: To ease writing and reading IO code.
      
      Reviewed By: iahs
      
      Differential Revision: D32220718
      
      fbshipit-source-id: db695eb33a60aae0db1b34991bd7d5ce33489f86
      b0066f2b
  10. 05 Nov, 2021 9 commits
    • Yedidya Feldblum's avatar
      a comment explaining the Baton::wait early-delivery c/x · cfbc23fa
      Yedidya Feldblum authored
      Summary: The memory orders seem backwards but are correct. Add a comment explaining the surprising situation.
      
      Reviewed By: ot
      
      Differential Revision: D31594601
      
      fbshipit-source-id: 61a3f5a5700cfe640e025ad5d5388a5dda1f97eb
      cfbc23fa
    • Akrama Baig Mirza's avatar
      Add ThreadIdCollector to IOThreadPoolDeadlockDetectorObserver · d4af6bb8
      Akrama Baig Mirza authored
      Summary:
      Add an implementation of `WorkerProvider` to `IOThreadPoolDeadlockDetectorObserver`.
      
      - On thread start, the observer creates a `TaskStallDetector` and provides it a `ThreadIdCollector` containing the TID of the thread that started
      - The thread will be blocked from exiting until any existing `WorkerProvider::KeepAlive`s are destroyed
      
      Differential Revision: D31963855
      
      fbshipit-source-id: cd749d76a433684a8280d95a4dbff441e32bfda9
      d4af6bb8
    • Alex Hornby's avatar
      remove fbthrift_socket-02 references · ddcb646b
      Alex Hornby authored
      Summary: Move the hg build to fbthrift_socket, it was referencing the removed fbthrift_socket-02 from some cargo files
      
      Reviewed By: mzr
      
      Differential Revision: D32159904
      
      fbshipit-source-id: 58db0fd53cf859d19a237c0a1d50370d405132b8
      ddcb646b
    • Alex Hornby's avatar
      update boost rpm package names for centos stream · 6b0244e2
      Alex Hornby authored
      Summary:
      rpm names needed updating as boost-contract wasn't found.
      
      The rpm names now include the boost version which should be handy when boost dependency is updated next
      
      Unfortunately the centos boost 1.69 rpms aren't found automatically by the centos cmake boost rules, so this also adds builder.py logic to point to it using  BOOST_INCLUDEDIR and BOOST_LIBRARYDIR
      
      Reviewed By: mzr
      
      Differential Revision: D32140834
      
      fbshipit-source-id: 3e2dd822613957ae4d7be5b73623ff581f11d02b
      6b0244e2
    • Alex Hornby's avatar
      add rpms for double-conversion · c20ad836
      Alex Hornby authored
      Summary: Add the system dependencies so getdeps can install them if not present
      
      Reviewed By: krallin
      
      Differential Revision: D32152976
      
      fbshipit-source-id: 29311f37126e1eac8dfbe2f46f6bc3516848d48b
      c20ad836
    • Giuseppe Ottaviano's avatar
      Codemod EliasFanoEncoderV2 -> EliasFanoEncoder · a0e9a217
      Giuseppe Ottaviano authored
      Summary: There hasn't been a V1 for a very long time.
      
      Reviewed By: philippv, luciang
      
      Differential Revision: D32170751
      
      fbshipit-source-id: f495a81657cf53f870ce93572d46d835c7fb8496
      a0e9a217
    • Giuseppe Ottaviano's avatar
      Optimize skipTo() if it is guaranteed to make progress · 7139fa7a
      Giuseppe Ottaviano authored
      Summary: Add an option to specify that `skipTo()` cannot be called on the current value, so we can save a comparison.
      
      Reviewed By: luciang
      
      Differential Revision: D32161927
      
      fbshipit-source-id: 6ebfe7711a5ee3bcdf40cd8a1097da777f78c277
      7139fa7a
    • Giuseppe Ottaviano's avatar
      Do not read the end of the list on EliasFanoReader construction · 928aa5de
      Giuseppe Ottaviano authored
      Summary:
      Move size and upper bound accounting to `UpperBitsReader`, so we don't need to read the last value on construction, which can be expensive when opening a large number of small lists.
      
      This also makes the maximum `ValueType` representable, and lifts the requirement that the provided upper bound at construction time must be equal to the last element in the list, allowing multiple lists to share the encoding of the upper bound.
      
      Based on initial work by swaroopnm.
      
      Reviewed By: philippv
      
      Differential Revision: D32130075
      
      fbshipit-source-id: e98a053b46b10c435ac0d402ff94a56fcfe095ad
      928aa5de
    • Giuseppe Ottaviano's avatar
      Improve test coverage of EliasFanoCoding · 446ac5fa
      Giuseppe Ottaviano authored
      Summary:
      Add tests where the list size is close or at the maximum supported size, by fixing `EliasFanoReader` to support `uint16_t` as value and size type.
      
      Types smaller than `int` require special support because any arithmetic operation promotes them to `int`, so operations that rely on unsigned overflow break. Work around this by introducing a helper for addition that preserves the type.
      
      Reviewed By: philippv, luciang
      
      Differential Revision: D32130076
      
      fbshipit-source-id: 763a8e4cc2b023405c173316d2415ca8c3ec7148
      446ac5fa
  11. 04 Nov, 2021 3 commits
    • Cristian Lumezanu's avatar
      Initialize state_ early when creating AsyncSocket from connected fd_ · 75752063
      Cristian Lumezanu authored
      Summary: Move `state_` and `addr_` to the initializer list of the AsyncSocket constructor. This is necessary as there may be installed callbacks for AsyncSocket (e.g., using ConstructorCallback) that need these values early.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D31761420
      
      fbshipit-source-id: 2790cff1413835927be8610d7117208ef39e1cd1
      75752063
    • Alex Hornby's avatar
      openssl: update system rpms · cab1d598
      Alex Hornby authored
      Summary: It was missing openssl-libs
      
      Reviewed By: mzr
      
      Differential Revision: D32139851
      
      fbshipit-source-id: a60febe3c9e916d1b1c65dfe88a364f5bcfb33b0
      cab1d598
    • Alex Hornby's avatar
      add centos stream support · 9b43e4c4
      Alex Hornby authored
      Summary:
      Distro name wasn't matching and thus no rpms being installed or used
      
      Also improved the error message for unknown systems
      
      Reviewed By: farnz
      
      Differential Revision: D32139850
      
      fbshipit-source-id: 438278094159f732f6b1de506490b89d2c9cd3f7
      9b43e4c4