- 28 Oct, 2017 1 commit
-
-
Scott Michelson authored
Summary: when queues fill, this starts blowing up, affecting server performance and making logs useless. It's useful to know queues are full, but we don't need the log every time we try to append Reviewed By: yfeldblum Differential Revision: D6175784 fbshipit-source-id: b4e6966087c4a6f9fba51d7f9193b9f41e13b899
-
- 27 Oct, 2017 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix `FunctionScheduler::resetFunctionTimer` concurrency bug. The original code from the blamed diff code has a comment with this correct assessment of the bug: > TODO: This moves out of RepeatFunc object while folly:Function can potentially be executed. This might be unsafe. Namely, when the method is invoked with the id of a scheduled function which is concurrently being executed, the function object (including, say, lambda captures) will be moved while possibly being accessed. If the function object is small enough to be placed in-situ within `folly::Function` (48 bytes on x64), then that access to a moved-from object can happen. It might or might not, depending on the particular instance of the race in question. Or, worse, the access might be to a half-moved-from object! The new test case for `resetFunctionTimer` passes after the fix, but is guaranteed to fail before the fix because we manage to control the concurrency enough to force the bad version of the race to happen. In the test, we just capture a `std::shared_ptr` (we could have capatured, e.g., a `std::unique_ptr` or a long-enough `std::string`) and check that it is not empty - if it is moved from, it will be empty, and the test expectation will fail. Reviewed By: simpkins Differential Revision: D6158722 fbshipit-source-id: 33a7ae699bb3b22089fddbebb6d922737668309d
-
Yedidya Feldblum authored
Summary: [Folly] `type_t`, a generalization of `void_t`. Reviewed By: ericniebler Differential Revision: D6082913 fbshipit-source-id: f9557b5da1f6684b12d570b6c1bd52c102cb0703
-
- 26 Oct, 2017 5 commits
-
-
Christopher Dykes authored
Summary: As suggested late in the initial diff (D5840883), just mark it volatile, as it works under all supported platforms. Reviewed By: davidtgoldblatt, yfeldblum Differential Revision: D6155241 fbshipit-source-id: 00c07a11dc7fc2e33c2d1f9a45fd28006eeff6f9
-
Christopher Dykes authored
Summary: It defines `MSG_ERRQUEUE` which breaks things. There's a github PR to do this in a different way, but it's faster to just do it myself. Closes https://github.com/facebook/folly/pull/689 Reviewed By: yfeldblum Differential Revision: D6155606 fbshipit-source-id: f1c6b247efc452b4005ad3b6d82fabfd5a92f49f
-
Dan Melnic authored
Disable zerocopy if we're notified about deferred copies, add a isZeroCopyWriteInProgress method, replace pair with a proper struct Summary: Add zeroWriteDone callback Reviewed By: djwatson Differential Revision: D6097129 fbshipit-source-id: b82a942557680c3a7a3be8f81ee6f2886e99e165
-
Yedidya Feldblum authored
Summary: [Folly] `Expected` coroutines support. Copied from `Optional` coroutines support. Reviewed By: ericniebler, Orvid Differential Revision: D5923792 fbshipit-source-id: 8661012c65762a0e540a4af2fd2fc237a8cb87a1
-
Kenny Yu authored
Summary: Data race reported by TSAN: ``` WARNING: ThreadSanitizer: data race (pid=608219) Read of size 1 at 0x7b5800000c29 by thread T314: #0 0x60b3441 in folly::Codel::overloaded(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) ./folly/executors/Codel.cpp:76 #1 0x5c1222 in apache::thrift::concurrency::ThreadManager::ImplT<folly::LifoSemImpl<std::atomic, folly::Baton<std::atomic, true, true> > >::Worker<folly::LifoSemImpl<std::atomic, folly::Baton<std::atomic, true, true> > >::run() ./thrift/lib/cpp/concurrency/ThreadManager.tcc:119 #2 0x5d803e7 in apache::thrift::concurrency::PthreadThread::threadMain(void*) ./thrift/lib/cpp/concurrency/PosixThreadFactory.cpp:200 #3 0x619739d in __tsan_thread_start_func crtstuff.c:? Previous write of size 1 at 0x7b5800000c29 by thread T315: #0 0x60b33e4 in folly::Codel::overloaded(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) ??:? #1 0x5c1222 in apache::thrift::concurrency::ThreadManager::ImplT<folly::LifoSemImpl<std::atomic, folly::Baton<std::atomic, true, true> > >::Worker<folly::LifoSemImpl<std::atomic, folly::Baton<std::atomic, true, true> > >::run() ./thrift/lib/cpp/concurrency/ThreadManager.tcc:119 #2 0x5d803e7 in apache::thrift::concurrency::PthreadThread::threadMain(void*) ./thrift/lib/cpp/concurrency/PosixThreadFactory.cpp:200 #3 0x619739d in __tsan_thread_start_func crtstuff.c:? Location is heap block of size 768 at 0x7b5800000c00 allocated by main thread: #0 0x616ab83 in operator new(unsigned long) ??:? #1 0x53cb92 in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<apache::thrift::concurrency::SimpleThreadManager<folly::LifoSemImpl<std::atomic, folly::Baton<std::atomic, true, true> > >, std::allocator<apache::thrift::concurrency::SimpleThreadManager<folly::LifoSemImpl<std::atomic, folly::Baton<std::atomic, true, true> > > >, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) ... ``` It looks like there are multiple threads reading and writing the `overloaded_` bool. To fix it, wrap it in a `std::atomic`. Reviewed By: yfeldblum, meyering Differential Revision: D6149766 fbshipit-source-id: 605b29fa2f602d2ed2dfc22e46b739ef169f914e
-
- 25 Oct, 2017 4 commits
-
-
Luca Niccolini authored
Summary: the current implementation had problems with scheduling reads and writes and it would sometimes get stuck when transfering large chunks of data here I am restructuring the code to look more like the one in HTTPSession session flow control is not implemented yet really, it's coming next Depends on: D6048238 Reviewed By: afrind Differential Revision: D6048238 fbshipit-source-id: ae601e771154a7f1a669a58a6e05c9e3720e7017
-
Marko Novakovic authored
Reviewed By: yfeldblum Differential Revision: D6142252 fbshipit-source-id: 9ac98585a92299ca5915982c65c7d2cfa68bf60f
-
Yedidya Feldblum authored
Summary: [Folly] Flesh out `Optional` members `swap`, `reset`, `emplace`, `has_value`. * `swap` as a member and deriving `noexcept`-ness to mimic `std::optional::swap`. * `reset` v.s. `clear` to mimic `std::optional::reset`. * `emplace` returning ref and overload taking initializer list to mimic `std::optional::emplace`. * `has_value` v.s. `hasValue` to mimic `std::optional::has_value`. Reviewed By: WillerZ Differential Revision: D6132775 fbshipit-source-id: 34c58367b9dc63289e4b9721c5e79b1c41ba31e4
-
Yedidya Feldblum authored
Summary: [Folly] Simplify `IsUniquePtrToSL` in `IOBuf.h`. Reviewed By: Orvid Differential Revision: D6131231 fbshipit-source-id: b054ef7ef9f313943a3ac1022ca6a23874a464df
-
- 24 Oct, 2017 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Move `folly/Hash.h` to `folly/hash/`, leaving a shim. Reviewed By: Orvid Differential Revision: D6132955 fbshipit-source-id: dc789e9c6daa28116be6a5d83c3cfbb40e247114
-
Igor Sugak authored
Reviewed By: meyering Differential Revision: D6117783 fbshipit-source-id: 048b056e119bf89ab88c33b1233297d197e8acb9
-
Christopher Dykes authored
Summary: Via clang-tidy's modernize-use-bool-literals Reviewed By: yfeldblum Differential Revision: D6130384 fbshipit-source-id: 359d5195897f04612c9b9042cf69383050a2ec7a
-
Christopher Dykes authored
Summary: It's done in a lot of places, but not all. clang-tidy gives us llvm-namespace-comment, which can force this consistently. Reviewed By: yfeldblum Differential Revision: D6108129 fbshipit-source-id: 1b44c5a26250364f9edf70f84173e9ba6389f06c
-
- 23 Oct, 2017 8 commits
-
-
Christopher Dykes authored
Summary: Via the modernize-make-shared from clang-tidy Reviewed By: yfeldblum Differential Revision: D6129464 fbshipit-source-id: 04f560c6beeb2b8631b819fd4e6a2d51b37eeb4b
-
Lee Howes authored
Summary: ManualExecutor::run() is stable, which means that in cases where we want to fully drain the executor we have to loop over it. This adds ManualExecutor::drain() which does that internally. Reviewed By: yfeldblum Differential Revision: D6126840 fbshipit-source-id: e36cba5c373a57fe01de244977ec852636b58dbd
-
James Sedgwick authored
Summary: this is all non-hphp includes that are going in container/ Reviewed By: mzlee, yfeldblum Differential Revision: D6121745 fbshipit-source-id: b024bde8835fc7f332686793d75eb8e71591c912
-
Qi Wang authored
Summary: tcache.flush may fail if tcache is disabled. Avoid using mallctlCall which throws on error. Reviewed By: davidtgoldblatt Differential Revision: D6115419 fbshipit-source-id: 39411c80af08dc7c855efd43297809b749f935bf
-
Christopher Dykes authored
Summary: Via the clang-tidy check modernize-make-unique. Reviewed By: yfeldblum Differential Revision: D6107790 fbshipit-source-id: 1cf186feae511cbd91f44893059737a85778b6cf
-
Jon Maltiel Swenson authored
Summary: Rename `std::unique_lock` variables named `lock` to `ulock` in `folly::fibers::TimedMutex` member functions in order to avoid shadowing. Reviewed By: andreazevedo Differential Revision: D6123449 fbshipit-source-id: 5fa331bb1541ac995d9b69360ee09923c14f6698
-
Andrew Krieger authored
Summary: Only available in >= 2017 15.3, which is 1911+. Reviewed By: aary, Orvid Differential Revision: D6117237 fbshipit-source-id: 255804af5bfd0c743fd225b8a4fddf3cfc9cfeaf
-
James Sedgwick authored
Summary: all memory/-destined components besides hphp includes Reviewed By: yfeldblum, mzlee Differential Revision: D6121822 fbshipit-source-id: 6c6214d84dcdefe4789ed5200399ae27203d6340
-
- 22 Oct, 2017 1 commit
-
-
James Sedgwick authored
Summary: also gotta split it up/rename it, that's coming later Reviewed By: yfeldblum Differential Revision: D6121525 fbshipit-source-id: 9c6dbabd47323d94657508a0f75a0c6e7f988ace
-
- 21 Oct, 2017 4 commits
-
-
James Sedgwick authored
Summary: That's everything that's going in executors/ except for Executor.h itself, which is included in hphp so will have to wait Reviewed By: mzlee Differential Revision: D6100274 fbshipit-source-id: 6be37892b1ad7f46828acfa6b2951e51b157a86a
-
James Sedgwick authored
Summary: Everything that's going in system/ besides CpuId and Subprocess, which are included in hphp Reviewed By: mzlee Differential Revision: D6102263 fbshipit-source-id: 564ef584c341a4ac79db14a9d58fe23ce51e78b3
-
James Sedgwick authored
Summary: as above (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D6099826 fbshipit-source-id: 20152487135aa8eaf6d2e99369801b6dde4992aa
-
Yedidya Feldblum authored
Summary: [Folly] Use `folly/portability/GTest.h` in `folly/executurs/test/`. Applying the general rule for folly tests to some recently-introduced violations. Reviewed By: Orvid Differential Revision: D6113707 fbshipit-source-id: f9a2961ac845489b85b5a539595e4c82df03d922
-
- 20 Oct, 2017 3 commits
-
-
James Sedgwick authored
Summary: as title, see moves (Note: this ignores all push blocking failures!) Reviewed By: mzlee Differential Revision: D6112001 fbshipit-source-id: 1eb10b44ae8ee1f90a10e05c29e48c99d824afa5
-
Christopher Dykes authored
Summary: This is C++, not C, so let's keep things modern. This is applying the modernize-redundant-void-arg clang-tidy check to Folly. Reviewed By: yfeldblum Differential Revision: D6106921 fbshipit-source-id: 06a56f036f59426df5dd475bf91a3f4a335266f5
-
Christopher Dykes authored
Summary: Via the clang-tidy check misc-argument-comment. Reviewed By: yfeldblum Differential Revision: D6107482 fbshipit-source-id: a1fe6215c31fae472ad3b6e05abea974d706794e
-
- 19 Oct, 2017 8 commits
-
-
Christopher Dykes authored
Summary: This time aided by clang-tidy's modernize-use-nullptr check. Reviewed By: yfeldblum Differential Revision: D6102739 fbshipit-source-id: aeb4bd0a8078d81cc88b766e0a034a37dd25fd1f
-
James Sedgwick authored
Summary: as above Reviewed By: knekritz Differential Revision: D6088687 fbshipit-source-id: 0efbb7f5fa33b5f553c0c2019658370fc6e8613f
-
Alex Yarmula authored
Summary: When timekeeper singleton no longer exists during shutdown and folly::Singleton::try_get() can return nullptr, make sure nullptr is handled gracefully. Reviewed By: yfeldblum Differential Revision: D6101311 fbshipit-source-id: fefeddfbd048d1a7632688bb3526db15b685dd72
-
Yedidya Feldblum authored
Summary: [Folly] Add `InlineExecutor.cpp` to `Makefile.am`. Reviewed By: Orvid Differential Revision: D6101859 fbshipit-source-id: 4cd0f875dedb548189722fd719f4424d485e1b02
-
Yedidya Feldblum authored
Summary: [Folly] Fix `folly/fibers/` build on older boost. Where `jump_fcontext` takes `intptr_t` rather than an actual pointer, and we warn about implicit conversions from pointers to integral types. Reviewed By: Orvid Differential Revision: D6098230 fbshipit-source-id: 61bd7bdff5de728d3febe8b35c97d024ab6f236a
-
Christopher Dykes authored
Summary: The style guidelines say control flow should always have curly braces, and we follow that, mostly. This just uses clang-tidy to clean up everywhere that we weren't. Reviewed By: markisaa, luciang Differential Revision: D6097377 fbshipit-source-id: bfe6766c37bd863ecf68851ef93265a200d4259d
-
James Sedgwick authored
Summary: as above Reviewed By: yfeldblum Differential Revision: D6086563 fbshipit-source-id: ab7f50ba46ebd1dbef6438f956258b2fbb13cb5c
-
Peter Alexander authored
Summary: Simple addition. Easy to track externally, but might as well provide it in the class if it is readily available. Reviewed By: yfeldblum Differential Revision: D6093826 fbshipit-source-id: 9d8c02891b2cea9ce0d3f6ea78e1e0055b536eb8
-