{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":16211818,"defaultBranch":"main","name":"mcrouter","ownerLogin":"facebook","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-01-24T17:42:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/69631?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717426977.0","currentOid":""},"activityList":{"items":[{"before":"f93c41fdd20667457ea6304947c363d9d1980713","after":"bbaba7a920dad349c1b81878015be2285e546bc2","ref":"refs/heads/main","pushedAt":"2024-06-07T03:25:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Deshim ReadMostlySharedPtr in mcrouter\n\nSummary:\nThe following rules were deshimmed:\n```\n//folly/experimental:read_mostly_shared_ptr -> //folly/concurrency/memory:read_mostly_shared_ptr\n```\n\nThe following headers were deshimmed:\n```\nfolly/experimental/ReadMostlySharedPtr.h -> folly/concurrency/memory/ReadMostlySharedPtr.h\n```\n\nThis is a codemod. It was automatically generated and will be landed once it is approved and tests are passing in sandcastle.\nYou have been added as a reviewer by Sentinel or Butterfly.\n\np:ad_drmspx.mcrouter\n\nReviewed By: yfeldblum\n\nDifferential Revision: D58152387\n\nfbshipit-source-id: f4014cf32ad4927e3b24b960eaeb76f5e2259b6d","shortMessageHtmlLink":"Deshim ReadMostlySharedPtr in mcrouter"}},{"before":"6845eed9741fa106abf8fb7fff265ea8504a1335","after":"f93c41fdd20667457ea6304947c363d9d1980713","ref":"refs/heads/main","pushedAt":"2024-06-07T03:11:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Deshim FunctionScheduler in mcrouter\n\nSummary:\nThe following rules were deshimmed:\n```\n//folly/experimental:function_scheduler -> //folly/executors:function_scheduler\n```\n\nThe following headers were deshimmed:\n```\nfolly/experimental/FunctionScheduler.h -> folly/executors/FunctionScheduler.h\n```\n\nThis is a codemod. It was automatically generated and will be landed once it is approved and tests are passing in sandcastle.\nYou have been added as a reviewer by Sentinel or Butterfly.\n\np:ad_defsx.mcrouter\n\nReviewed By: yfeldblum\n\nDifferential Revision: D58154996\n\nfbshipit-source-id: 0d0bfc2c3d3b366fc3926b0623b110e816c7bf14","shortMessageHtmlLink":"Deshim FunctionScheduler in mcrouter"}},{"before":"720952e57ab6ad18cc03e6956bdefd85cc5a04ef","after":"6845eed9741fa106abf8fb7fff265ea8504a1335","ref":"refs/heads/main","pushedAt":"2024-06-05T01:11:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"remove the bucketization stat\n\nSummary:\nSince everything is bucketized now, there is no reason to keep bumping this stat. Remove it.\nMcBucketRoute is tested in McBucketRouteTest, so the test is reduntant.\n\nReviewed By: stuclar\n\nDifferential Revision: D58001479\n\nfbshipit-source-id: 423e1f3ec9c4b55a456f639e7c5919c17890bc0f","shortMessageHtmlLink":"remove the bucketization stat"}},{"before":"313398058676b0799f2f26844cd5af86ab0821fa","after":"720952e57ab6ad18cc03e6956bdefd85cc5a04ef","ref":"refs/heads/main","pushedAt":"2024-06-04T18:04:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add ServiceInterceptor storage in Cpp2ConnContext for connections\n\nSummary:\nThis diff adds a storage \"slot\" for each `ServiceInterceptor` in `ThriftServer`.\n\nUnlike per-request storage, we just allocate on the heap for connections — they are much rarer and the code complexity of `AllocationColocator` does not seem worth it.\n\nReviewed By: iahs\n\nDifferential Revision: D57681073\n\nfbshipit-source-id: 6ab39a3fde1cac90504c34f8de208578434cccab","shortMessageHtmlLink":"Add ServiceInterceptor storage in Cpp2ConnContext for connections"}},{"before":"8b3b54ed488b7c0213752a83881e017611840e87","after":"313398058676b0799f2f26844cd5af86ab0821fa","ref":"refs/heads/main","pushedAt":"2024-05-30T21:08:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Move default cert flag to a separate method\n\nSummary: Reintroduction of D57737100 with fix for Thrift build\n\nDifferential Revision: D57970247\n\nfbshipit-source-id: 55815037522533aadf01f04813a4edb6b050a30b","shortMessageHtmlLink":"Move default cert flag to a separate method"}},{"before":"a9e2c2d2c50812dc73de265ca46fffc2bef78cb9","after":"8b3b54ed488b7c0213752a83881e017611840e87","ref":"refs/heads/main","pushedAt":"2024-05-30T16:30:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Deshim observer in mcrouter\n\nSummary:\nThe following rules were deshimmed:\n```\n//folly/experimental/observer:observable -> //folly/observer:observable\n//folly/experimental/observer:observer -> //folly/observer:observer\n//folly/experimental/observer:hazptr_observer -> //folly/observer:hazptr_observer\n//folly/experimental/observer:read_mostly_tl_observer -> //folly/observer:read_mostly_tl_observer\n//folly/experimental/observer:core_cached_observer -> //folly/observer:core_cached_observer\n//folly/experimental/observer:simple_observable -> //folly/observer:simple_observable\n//folly/experimental/observer:with_jitter -> //folly/observer:with_jitter\n```\n\nThe following headers were deshimmed:\n```\nfolly/experimental/observer/Observable.h -> folly/observer/Observable.h\nfolly/experimental/observer/Observable-inl.h -> folly/observer/Observable-inl.h\nfolly/experimental/observer/Observer.h -> folly/observer/Observer.h\nfolly/experimental/observer/Observer-inl.h -> folly/observer/Observer-inl.h\nfolly/experimental/observer/Observer-pre.h -> folly/observer/Observer-pre.h\nfolly/experimental/observer/HazptrObserver.h -> folly/observer/HazptrObserver.h\nfolly/experimental/observer/ReadMostlyTLObserver.h -> folly/observer/ReadMostlyTLObserver.h\nfolly/experimental/observer/CoreCachedObserver.h -> folly/observer/CoreCachedObserver.h\nfolly/experimental/observer/SimpleObservable.h -> folly/observer/SimpleObservable.h\nfolly/experimental/observer/SimpleObservable-inl.h -> folly/observer/SimpleObservable-inl.h\nfolly/experimental/observer/WithJitter.h -> folly/observer/WithJitter.h\nfolly/experimental/observer/WithJitter-inl.h -> folly/observer/WithJitter-inl.h\n```\n\nThis is a codemod. It was automatically generated and will be landed once it is approved and tests are passing in sandcastle.\nYou have been added as a reviewer by Sentinel or Butterfly.\n\nDifferential Revision: D57688702\n\nfbshipit-source-id: 4b9395c33aae2b3ed8681ac3e00cc7c191117576","shortMessageHtmlLink":"Deshim observer in mcrouter"}},{"before":"e733e39301287f38540c93ba7956500fd2991c4d","after":"a9e2c2d2c50812dc73de265ca46fffc2bef78cb9","ref":"refs/heads/main","pushedAt":"2024-05-30T05:28:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Revert D57737100: Move default cert flag to a separate method\n\nDifferential Revision:\nD57737100\n\nOriginal commit changeset: 166163ddd721\n\nOriginal Phabricator Diff: D57737100\n\nfbshipit-source-id: 9d62da7f00ab36a3250a82366dc30b4467eacf5a","shortMessageHtmlLink":"Revert D57737100: Move default cert flag to a separate method"}},{"before":"9e72e3d1212c773524c99594302c4f6d5e1d5f41","after":"e733e39301287f38540c93ba7956500fd2991c4d","ref":"refs/heads/main","pushedAt":"2024-05-29T22:52:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Move default cert flag to a separate method\n\nSummary: Changed the Interfaces and Implementations of CertManager and DelegatedCertManager to include a new default method.\n\nReviewed By: AjanthanAsogamoorthy\n\nDifferential Revision: D57737100\n\nfbshipit-source-id: 166163ddd7213c49bb58fadf72b6b314adfaed10","shortMessageHtmlLink":"Move default cert flag to a separate method"}},{"before":"3490ce97d5a9347b338f539ca0086572784ed79d","after":"9e72e3d1212c773524c99594302c4f6d5e1d5f41","ref":"refs/heads/main","pushedAt":"2024-05-29T02:52:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Use prod value for fiber stack size\n\nSummary: Tests overflow in fibers. Default is 24k, while prod is 64k.\n\nReviewed By: stuclar, lenar-f\n\nDifferential Revision: D57885718\n\nfbshipit-source-id: b86369d65f94d4fe2092a4fb84506bf81cc7a4e3","shortMessageHtmlLink":"Use prod value for fiber stack size"}},{"before":"e253ede42c3d8351394578d9394038ef4925f0e4","after":"3490ce97d5a9347b338f539ca0086572784ed79d","ref":"refs/heads/main","pushedAt":"2024-05-24T22:57:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Use folly::Init in standalone main()\n\nSummary: Installs logging for fatal signals and exceptions\n\nReviewed By: stuclar\n\nDifferential Revision: D57798214\n\nfbshipit-source-id: 9a59e003488e0570f7352e34b8989e2343c402f9","shortMessageHtmlLink":"Use folly::Init in standalone main()"}},{"before":"2d38cfd69ea4767cbd2bed2137dcf04dc4dc4345","after":"e253ede42c3d8351394578d9394038ef4925f0e4","ref":"refs/heads/main","pushedAt":"2024-05-23T14:12:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Remove unused-but-set variables in koski/koski_tester/tests/TestBatchIterator.cpp +5\n\nSummary:\nThis diff removes a variable that was set, but which was not used.\n\nLLVM-15 has a warning `-Wunused-but-set-variable` which we treat as an error because it's so often diagnostic of a code issue. Unused but set variables often indicate a programming mistake, but can also just be unnecessary cruft that harms readability and performance.\n\nRemoving this variable will not change how your code works, but the unused variable may indicate your code isn't working the way you thought it was. If you feel the diff needs changes before landing, **please commandeer** and make appropriate changes: there are hundreds of these and responding to them individually is challenging.\n\nFor questions/comments, contact r-barnes.\n\n - If you approve of this diff, please use the \"Accept & Ship\" button :-)\n\nReviewed By: palmje\n\nDifferential Revision: D57685888\n\nfbshipit-source-id: 3e927b21838f416235e6c75497094dd26830e48e","shortMessageHtmlLink":"Remove unused-but-set variables in koski/koski_tester/tests/TestBatch…"}},{"before":"4896c1f26d653cc1f6c0b8b137ee269f2b1670b3","after":"2d38cfd69ea4767cbd2bed2137dcf04dc4dc4345","ref":"refs/heads/main","pushedAt":"2024-05-11T04:40:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"pass distribution set configs\n\nSummary:\n`enable_set_distribution` - enable distribution of cross-region set requests.\n`enable_cross_region_set_rpc` - disable cross-region set RPC. Can be only disabled if distribution is enabled.\n\nReviewed By: stuclar\n\nDifferential Revision: D56885372\n\nfbshipit-source-id: 0e908c343d4bbf87d6d248315c595c0b8e154e06","shortMessageHtmlLink":"pass distribution set configs"}},{"before":"922237058c4eb81da222347f9b3103cbbbaab05f","after":"4896c1f26d653cc1f6c0b8b137ee269f2b1670b3","ref":"refs/heads/main","pushedAt":"2024-05-10T17:14:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add option to limit number of Ucache connections\n\nSummary: https://fb.workplace.com/groups/570521934307660/permalink/1178185280207986/\n\nReviewed By: alikhtarov\n\nDifferential Revision: D56368134\n\nfbshipit-source-id: d9463c0b34d774e71cfcdff847a8823219e73584","shortMessageHtmlLink":"Add option to limit number of Ucache connections"}},{"before":"4c2dd97c4d0b264eb5ab7943191a916f58938842","after":"922237058c4eb81da222347f9b3103cbbbaab05f","ref":"refs/heads/main","pushedAt":"2024-05-10T17:05:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add RegionalizationEntity to Memcache IDL and log to mcrouter_requests if present in request payload\n\nSummary: MCP regionalizationEntity added to mcrouter requests.\n\nReviewed By: ghostonhuang, lenar-f\n\nDifferential Revision: D57127892\n\nfbshipit-source-id: 3098640c060bd9029339d2461321509fc461858e","shortMessageHtmlLink":"Add RegionalizationEntity to Memcache IDL and log to mcrouter_request…"}},{"before":"2cd1f9978087b82f4e73daba59744f9cd30c79af","after":"4c2dd97c4d0b264eb5ab7943191a916f58938842","ref":"refs/heads/main","pushedAt":"2024-05-08T22:04:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"\"[fizz] 20/n update fizz dependencies in mcrouter/\"\n\nSummary: `fizz::`-> `fizz::openssl::`\n\nReviewed By: rnandan08\n\nDifferential Revision: D56612337\n\nfbshipit-source-id: 23e3dca33dfb0e920d7a65917c4ef91b76d39ab1","shortMessageHtmlLink":"\"[fizz] 20/n update fizz dependencies in mcrouter/\""}},{"before":"ed648904560e84c510c8e43fc4eac9310eaa2b0b","after":"2cd1f9978087b82f4e73daba59744f9cd30c79af","ref":"refs/heads/main","pushedAt":"2024-05-06T19:06:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Change `result_of` to `invoke_result` in mcrouter/routes/BigValueRoute-inl.h\n\nSummary: C++20 has [eliminated](https://en.cppreference.com/w/cpp/types/result_of) `result_of` in favour of `invoke_result`. It's mysterious that this code even still works, but, nevertheless, I'm fixing it.\n\nDifferential Revision: D56987440\n\nfbshipit-source-id: 746c00074f30a93fecaf77515d8b97e793a8b9ed","shortMessageHtmlLink":"Change result_of to invoke_result in mcrouter/routes/BigValueRout…"}},{"before":"c359ccea9ac6214b4d5dc96d7ce4ab7e8c9cc0c5","after":"ed648904560e84c510c8e43fc4eac9310eaa2b0b","ref":"refs/heads/main","pushedAt":"2024-05-06T13:31:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Deshim jemalloc in mcrouter\n\nSummary:\nThe following rules were deshimmed:\n```\n//folly/experimental:jemalloc_nodump_allocator -> //folly/memory:jemalloc_nodump_allocator\n//folly/experimental:jemalloc_huge_page_allocator -> //folly/memory:jemalloc_huge_page_allocator\n```\n\nThe following headers were deshimmed:\n```\nfolly/experimental/JemallocNodumpAllocator.h -> folly/memory/JemallocNodumpAllocator.h\nfolly/experimental/JemallocHugePageAllocator.h -> folly/memory/JemallocHugePageAllocator.h\n```\n\nThis is a codemod. It was automatically generated and will be landed once it is approved and tests are passing in sandcastle.\nYou have been added as a reviewer by Sentinel or Butterfly.\n\nDifferential Revision: D56308353\n\nfbshipit-source-id: 4762cf50bf77fe2b10c767e2d8df9a5c77e5d8db","shortMessageHtmlLink":"Deshim jemalloc in mcrouter"}},{"before":"ac5e35eff86fd5295b067f8fb3402ba2a87bec63","after":"c359ccea9ac6214b4d5dc96d7ce4ab7e8c9cc0c5","ref":"refs/heads/main","pushedAt":"2024-05-06T07:21:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Change `result_of` to `invoke_result` in mcrouter/lib/fbi/cpp/FuncGenerator.h\n\nSummary: C++20 has [eliminated](https://en.cppreference.com/w/cpp/types/result_of) `result_of` in favour of `invoke_result`. It's mysterious that this code even still works, but, nevertheless, I'm fixing it.\n\nDifferential Revision: D56987468\n\nfbshipit-source-id: 98f9aa284b31d275b0586bf691b2e9c5b649e194","shortMessageHtmlLink":"Change result_of to invoke_result in mcrouter/lib/fbi/cpp/FuncGen…"}},{"before":"4e492abe94acc26b7e2067ba612929f930390b22","after":"ac5e35eff86fd5295b067f8fb3402ba2a87bec63","ref":"refs/heads/main","pushedAt":"2024-05-06T06:57:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Change `result_of` to `invoke_result` in mcrouter/lib/HashUtil.h\n\nSummary: C++20 has [eliminated](https://en.cppreference.com/w/cpp/types/result_of) `result_of` in favour of `invoke_result`. It's mysterious that this code even still works, but, nevertheless, I'm fixing it.\n\nDifferential Revision: D56987401\n\nfbshipit-source-id: 76593c3efebbd4ea0016b0f0ab1db02aabe706d1","shortMessageHtmlLink":"Change result_of to invoke_result in mcrouter/lib/HashUtil.h"}},{"before":"fd1c622e9f1229ccd0dbcb9e366d22ca837fbc6f","after":"4e492abe94acc26b7e2067ba612929f930390b22","ref":"refs/heads/main","pushedAt":"2024-05-06T06:48:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Change `result_of` to `invoke_result` in mcrouter/McrouterFiberContext.h\n\nSummary: C++20 has [eliminated](https://en.cppreference.com/w/cpp/types/result_of) `result_of` in favour of `invoke_result`. It's mysterious that this code even still works, but, nevertheless, I'm fixing it.\n\nDifferential Revision: D56987436\n\nfbshipit-source-id: 73c86ace2ef88a26d9f8daa1ea5cdf42d749fea4","shortMessageHtmlLink":"Change result_of to invoke_result in mcrouter/McrouterFiberContext.h"}},{"before":"01ada44ba41a45262df707f2d6dfc7549adc8d08","after":"fd1c622e9f1229ccd0dbcb9e366d22ca837fbc6f","ref":"refs/heads/main","pushedAt":"2024-05-06T06:38:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Change `result_of` to `invoke_result` in mcrouter/lib/network/ThriftTransport-inl.h\n\nSummary: C++20 has [eliminated](https://en.cppreference.com/w/cpp/types/result_of) `result_of` in favour of `invoke_result`. It's mysterious that this code even still works, but, nevertheless, I'm fixing it.\n\nDifferential Revision: D56987456\n\nfbshipit-source-id: 4e3fa1e55c43e3c9b72029f83aac1ae15644cf36","shortMessageHtmlLink":"Change result_of to invoke_result in mcrouter/lib/network/ThriftT…"}},{"before":"8c75c4bbe8203800fe6a8234543f78d5f2edf021","after":"01ada44ba41a45262df707f2d6dfc7549adc8d08","ref":"refs/heads/main","pushedAt":"2024-05-04T17:08:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Additional fanout bucketization support\n\nSummary:\nKeyspace based shadows with bucketization often dont have enough unique keys to exhaust the configured additional_fanout destinations. This diff modifies the additional_fanout logic so that, if used on a PoolRoute with bucketization enabled, will suffix the routing key with the client ip address to increase the fanout across the additional_fanout destinations.\n\nIn order to use this the client ip address, its necessary to enable flavor option retain_source_ip.\n\nReviewed By: alikhtarov\n\nDifferential Revision: D55020352\n\nfbshipit-source-id: 1350b80afb06bcf79fd135e5f5158d287ef3f218","shortMessageHtmlLink":"Additional fanout bucketization support"}},{"before":"ed892591e8f3e675a3dc3f919617bea098556911","after":"8c75c4bbe8203800fe6a8234543f78d5f2edf021","ref":"refs/heads/main","pushedAt":"2024-04-14T18:35:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Apply clang-format 18\n\nSummary: Previously this code conformed from clang-format 12.\n\nReviewed By: igorsugak\n\nDifferential Revision: D56065247\n\nfbshipit-source-id: f5a985dd8f8b84f2f9e1818b3719b43c5a1b05b3","shortMessageHtmlLink":"Apply clang-format 18"}},{"before":"e65f28d073c63dd7dbc5425d98bf57b0859499de","after":"ed892591e8f3e675a3dc3f919617bea098556911","ref":"refs/heads/main","pushedAt":"2024-04-11T05:26:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Use HandlerCallbackPtr instead of std::unique_ptr> (part 2)\n\nSummary:\nThis is a follow-up of {D55937714} with some cases missed from the original codemod because of whitespaces not being accounted for in the regex. Like the parent diff, this is a no-op.\n\n```\n$ codemod -m '(std::)?unique_ptr\\s*<\\s*(apache::thrift::)?HandlerCallback\\s*<(.*?)>\\s*' '\\2HandlerCallbackPtr<\\3'\n```\n\nReviewed By: thedavekwon\n\nDifferential Revision: D55983582\n\nfbshipit-source-id: 3181ad2a96a4ed24355a6148cd18d37dbdb0e3e6","shortMessageHtmlLink":"Use HandlerCallbackPtr<T> instead of std::unique_ptr<HandlerCallback<…"}},{"before":"3a96990b404379737e837c01c08bbee9757d6e43","after":"e65f28d073c63dd7dbc5425d98bf57b0859499de","ref":"refs/heads/main","pushedAt":"2024-04-09T19:11:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Rename RpcSizeStat to RpcTransportStat\n\nSummary:\n^ This structure is used more than just size now. And we may add more for logging.\n\nBetter rename it earlier than later.\n\nReviewed By: AkramaMirza\n\nDifferential Revision: D55899468\n\nfbshipit-source-id: 4e80c73b88dc73ed188afebcf77c94f1dcfe88e2","shortMessageHtmlLink":"Rename RpcSizeStat to RpcTransportStat"}},{"before":"d6eab85fff64c00cdf6c99e5c4daf8eab32a3a14","after":"3a96990b404379737e837c01c08bbee9757d6e43","ref":"refs/heads/main","pushedAt":"2024-04-05T19:34:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Back out \"Make async_tm and async_eb HandlerCallback param a shared_ptr\"\n\nSummary:\nOriginal commit changeset: 4feec3b1b393\n\nOriginal Phabricator Diff: D55506070\n\nReviewed By: mogeb, sumit-g\n\nDifferential Revision: D55812267\n\nfbshipit-source-id: 21037f6997e426b6ec5b7c90f7d7ce8b11be4e80","shortMessageHtmlLink":"Back out \"Make async_tm and async_eb HandlerCallback param a shared_ptr\""}},{"before":"98e525e00a3c0df787b2119294ee5a90e68b1c9c","after":"d6eab85fff64c00cdf6c99e5c4daf8eab32a3a14","ref":"refs/heads/main","pushedAt":"2024-04-05T01:33:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"fix cross-region distribution for async cases\n\nSummary: for async cases we should add explicit distributionTargetRegion as an empty string for this to work.\n\nReviewed By: disylh\n\nDifferential Revision: D55770327\n\nfbshipit-source-id: b8d511668daca491371f75eef9aa6a8649993cc9","shortMessageHtmlLink":"fix cross-region distribution for async cases"}},{"before":"bc7800b7dde4af0d617e65e541941d6ebfb405e7","after":"98e525e00a3c0df787b2119294ee5a90e68b1c9c","ref":"refs/heads/main","pushedAt":"2024-04-04T21:31:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Make async_tm and async_eb HandlerCallback param a shared_ptr\n\nSummary:\nThis diff does two things:\n 1. Make the parameter of `async_tm_*` and `async_eb_*` callbacks in `ServiceHandler<>` implementations be a `shared_ptr` of `HandlerCallback<...>` instead of `unique_ptr`.\n 2. Hide this detail behind an alias, `HandlerCallback<...>::Ptr` (which expands to `std::shared_ptr>` and codemod all of fbcode.\n\n(2) is useful independently of (1) but it seemed like a good opportunity to bundle both into one codemod.\n\n## Why do we need `shared_ptr`?\n\nConsider that:\n1. `HandlerCallback`'s lifetime is tied to the lifetime of the Thrift's internal request object. That is, when `HandlerCallback` is destroyed, we mark the request as \"done processing\" and the schedule a task on the IO thread to deallocate the associated memory.\n2. We ask the user to manage this lifetime, since we provide them a `unique_ptr`. In other words, if they leak it then we leak the request-internal memory as well. This is not a problem usually because the user just calls `callback->{result,exception,done}` and then lets the object go out of scope.\n\nNow with `ServiceInterceptor`, we want to be able to inject an event handling customization point *before* deserialization and we want it to be asynchronous. But `HandlerCallback::{result,exception,done}` are all synchronous. Furthermore, `result` and `exception` delegate to user-overridable `doResult` and `doException` functions!\n\nThis means that the only reliable place where we can invoke `ServiceInterceptor::onResponse` is in `result` / `exception` functions themselves.\n\nWe can't simply make these functions asynchronous / as coroutines — that's a very big breaking change that would require a lot of code changes across fbcode.\n\nWe also can't block the thread inside the implementation of `result` / `exception` because... well it would take down our infra.\n\nUnfortunately, we also cannot **asynchronously schedule invocation of `ServiceInterceptor::onResponse`** before calling the user-defined `doResult`. Why? Because, by that time, the `unique_ptr` would have gone out of scope and thus the request would be deleted.\n\nHere lies the trick — instead of giving the user *exclusive* ownership of `HandlerCallback`, we provide *shared* ownership with the runtime code. In other words, if there are `ServiceInterceptor`s installed, then the runtime will extend the lifetime of `HandlerCallback` (and thus the request) while they are executing, even after the callback object provided to user code has gone out of scope.\n\nThis is how `HandlerCallback<>::result` might be implemented:\n```\n\n void result(InputType r) {\n#if FOLLY_HAS_COROUTINES\n if (!hasServiceInterceptorsInstalled()) {\n doResult(std::forward(r));\n } else {\n this->processServiceInterceptorsOnResponse()\n .semi()\n .deferValue(\n [callback = shared_from_this()),\n result = std::decay_t(static_cast(r))](\n auto&&) mutable { callback->doResult(std::move(result)); })\n .via(executor_);\n }\n#else\n doResult(std::forward(r));\n#endif // FOLLY_HAS_COROUTINES\n }\n```\n\nAnd in fact, I've verified that it works: D55459493.\n\nCalling `folly::to_shared_ptr` on the callback seems to be a relatively common pattern in user code anyways for non-trivial cases.\n\n## Performance?\n\nIn practice we are not doing much more work. In the case that no `ServiceInterceptor` is installed, the refcount always stays at 1. So the added work is an (uncontested) atomic deref of the refcount. Note that since we use `make_shared` in generated code, we are not adding any mallocs.\n\nIf a `ServiceInterceptor` is installed, then the execution of the `ServiceInterceptor` implementation will dominate the execution time.\n\n ---\n\nReviewed By: sethdelliott\n\nDifferential Revision: D55506070\n\nfbshipit-source-id: 4feec3b1b39387856019c7c10b6b1a1a2b704d1a","shortMessageHtmlLink":"Make async_tm and async_eb HandlerCallback param a shared_ptr"}},{"before":"482416dd4198278fa79a9167a61eed50fe512835","after":"bc7800b7dde4af0d617e65e541941d6ebfb405e7","ref":"refs/heads/main","pushedAt":"2024-04-04T18:06:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Use `nullptr` in lightspeed/msysclient/ArmadilloUserContext.cpp\n\nSummary:\n`nullptr` is preferable to `0` or `NULL`. Let's use it everywhere so we can enable `-Wzero-as-null-pointer-constant`.\n\n - If you approve of this diff, please use the \"Accept & Ship\" button :-)\n\nReviewed By: dmm-fb\n\nDifferential Revision: D54835576\n\nfbshipit-source-id: 4dfa91ea23a21ba2bf9edbf4ded73314fe15fba4","shortMessageHtmlLink":"Use nullptr in lightspeed/msysclient/ArmadilloUserContext.cpp"}},{"before":"fff09b465e2e8b4e52fd7db10699bc74bee71e09","after":"482416dd4198278fa79a9167a61eed50fe512835","ref":"refs/heads/main","pushedAt":"2024-03-29T22:31:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Give CpuStatsWorker function scheduler tasks a unique name per flavor\n\nSummary: functionScheduler is a singleton, give CpuStatsWorker function scheduler tasks a unique name per flavor.\n\nReviewed By: alikhtarov\n\nDifferential Revision: D55491744\n\nfbshipit-source-id: cf4896c12ea1f13df480259a1b8b2c4fe85b941e","shortMessageHtmlLink":"Give CpuStatsWorker function scheduler tasks a unique name per flavor"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXs5xkQA","startCursor":null,"endCursor":null}},"title":"Activity · facebook/mcrouter"}