{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":23061798,"defaultBranch":"master","name":"seastar","ownerLogin":"scylladb","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-08-18T07:01:07.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/14364730?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1695049667.0","currentOid":""},"activityList":{"items":[{"before":"717f0f95ab13c58d618cfcfc2e70abfb95f4b89d","after":"ca616e99995fc3f91fbd91146e221ccca7e2745d","ref":"refs/heads/master","pushedAt":"2024-05-28T12:49:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"circular_buffer_fixed_capacity: arrow operator instead of . operator\n\nbefore this change, we use `*i++.~T()` to implement following sequence:\n```c++\nauto p = i++;\nauto& v = *p;\nv.~T();\n```\n\nbut the associativity of `.` and `++` (suffix increment) operator is\nleft-to-right. so from compiler's perspective, it emits:\n\n```c++\nauto p = i++;\nauto v = p.~T();\n*v;\n```\n\nthat's why Clang-19 complains that we are dereferencing a `void`:\n```\n/home/kefu/.local/bin/clang -DFMT_SHARED -DSEASTAR_API_LEVEL=7 -DSEASTAR_BUILD_SHARED_LIBS -DSEASTAR_DEBUG -DSEASTAR_DEBUG_PROMISE -DSEASTAR_DEBUG_SHARED_PTR -DSEASTAR_DEFAULT_ALLOCATOR -DSEASTAR_DEFERRED_ACTION_REQUIRE_NOEXCEPT -DSEASTAR_DEPRECATED_OSTREAM_FORMATTERS -DSEASTAR_HAS_MEMBARRIER -DSEASTAR_HAVE_ASAN_FIBER_SUPPORT -DSEASTAR_HAVE_HWLOC -DSEASTAR_HAVE_NUMA -DSEASTAR_HAVE_SYSTEMTAP_SDT -DSEASTAR_HAVE_URING -DSEASTAR_LOGGER_COMPILE_TIME_FMT -DSEASTAR_LOGGER_TYPE_STDOUT -DSEASTAR_PTHREAD_ATTR_SETAFFINITY_NP -DSEASTAR_SCHEDULING_GROUPS_COUNT=16 -DSEASTAR_SHUFFLE_TASK_QUEUE -DSEASTAR_SSTRING -DSEASTAR_STRERROR_R_CHAR_P -DSEASTAR_THREAD_STACK_GUARDS -DSEASTAR_TYPE_ERASE_MORE -Dseastar_EXPORTS -I/home/kefu/dev/seastar/include -I/home/kefu/dev/seastar/build/debug/gen/include -I/home/kefu/dev/seastar/build/debug/gen/src -I/home/kefu/dev/seastar/src -g -std=gnu++23 -fPIC -U_FORTIFY_SOURCE -Wno-error=unused-result \"-Wno-error=#warnings\" -fstack-clash-protection -UNDEBUG -Wall -Werror -Wimplicit-fallthrough -Wdeprecated -Wno-error=deprecated -gz -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr -MD -MT CMakeFiles/seastar.dir/src/core/app-template.cc.o -MF CMakeFiles/seastar.dir/src/core/app-template.cc.o.d -o CMakeFiles/seastar.dir/src/core/app-template.cc.o -c /home/kefu/dev/seastar/src/core/app-template.cc\nIn file included from /home/kefu/dev/seastar/src/core/app-template.cc:38:\nIn file included from /home/kefu/dev/seastar/include/seastar/core/reactor.hh:27:\n/home/kefu/dev/seastar/include/seastar/core/circular_buffer_fixed_capacity.hh:351:13: error: indirection requires pointer operand ('void' invalid)\n 351 | *i++.~T();\n | ^~~~~~~~~\n/home/kefu/dev/seastar/include/seastar/core/circular_buffer_fixed_capacity.hh:360:13: error: indirection requires pointer operand ('void' invalid)\n 360 | *i++.~T();\n | ^~~~~~~~~\n2 errors generated.\n```\n\nin this change, we trade the `.` operator with `->` operator, to ensure\nthat compiler generates:\n```c++\nauto p = i++;\np->~T();\n```\n\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"circular_buffer_fixed_capacity: arrow operator instead of . operator"}},{"before":"7cd0cabfcb6662dba0ad50aeb07a69b0ad20a786","after":"717f0f95ab13c58d618cfcfc2e70abfb95f4b89d","ref":"refs/heads/master","pushedAt":"2024-05-28T12:47:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"posix-file-impl: Do not keep device-id on board\n\nThis number is needed in two places\n\n- construction-time, to find the io-queue object to use\n- run-time, to construct file handle\n\nFile handle uses device id to create another posix_file_impl object on\nanother shard, so it needs device id to find io-queue for it. However,\nwhen creating handle, the deivce-id can be obtained by file from the\nio-queue it references.\n\nSigned-off-by: Pavel Emelyanov ","shortMessageHtmlLink":"posix-file-impl: Do not keep device-id on board"}},{"before":"5cd5383e73f9bd0c70b82b438829cc401b206b44","after":"7cd0cabfcb6662dba0ad50aeb07a69b0ad20a786","ref":"refs/heads/master","pushedAt":"2024-05-26T16:27:44.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"Merge 'perf_tests: add linux_perf_event::user_cpu_cycles_retired' from Benny Halevy\n\nThis series adds a new linux_perf_event: user_cpu_cycles_retired\nand makes use of it in the general perf tests framework.\n\nExample output for `tests/perf/allocator_perf --blocked-reactor-notify-ms=1000000`:\n```\nsingle run iterations: 0\nsingle run duration: 1.000s\nnumber of runs: 5\nnumber of cores: 32\nrandom seed: 3842059098\n\ntest iterations median mad min max allocs tasks inst cycles\nalloc_bench.malloc_only 63527000 8.893ns 0.255ns 8.632ns 9.497ns 1.000 0.000 43.3 13.6\nalloc_bench.free_only 65545000 5.820ns 0.038ns 5.765ns 6.009ns 0.000 0.000 27.3 7.8\nalloc_bench.malloc_free 51283000 14.776ns 0.145ns 14.593ns 14.993ns 1.000 0.000 70.6 22.0\nalloc_bench.op_new_only 68012000 8.630ns 0.126ns 8.445ns 8.836ns 1.000 0.000 41.3 13.7\nalloc_bench.op_delete_only 68054000 5.877ns 0.050ns 5.797ns 5.927ns 0.000 0.000 27.3 7.9\nalloc_bench.op_new_delete 52444000 14.442ns 0.082ns 14.132ns 14.526ns 1.000 0.000 68.6 21.3\nalloc_bench.new_array_only 68676000 8.692ns 0.007ns 8.651ns 8.748ns 1.000 0.000 42.3 13.7\nalloc_bench.delete_array_only 69221000 5.765ns 0.028ns 5.727ns 5.864ns 0.000 0.000 29.3 7.6\nalloc_bench.array_new_delete 50895000 14.952ns 0.071ns 14.684ns 15.023ns 1.000 0.000 71.6 21.3\nalloc_bench.alloc_only_large 20392000 28.326ns 0.090ns 27.729ns 28.481ns 1.000 0.000 201.2 53.5\nalloc_bench.free_only_large 20668000 20.227ns 0.269ns 19.434ns 20.497ns 0.000 0.000 137.2 36.6\nalloc_bench.alloc_free_large 18993000 47.542ns 0.230ns 47.312ns 48.205ns 1.000 0.000 338.3 90.1\nalloc_bench.single_alloc_and_free_small_many 10790191 92.200ns 0.203ns 91.839ns 92.479ns 10.000 0.000 710.0 192.1\nalloc_bench.single_alloc_and_free_small_many_cross_page 21399784 47.149ns 1.048ns 45.682ns 48.197ns 5.000 0.000 360.0 98.1\nalloc_bench.single_alloc_and_free_small_many_cross_page_alloc_more 557930 1.772us 6.331ns 1.751us 1.785us 101.000 0.000 12837.0 3704.1\nrandom_sampling.exp_dist 41050000 24.108ns 0.039ns 23.847ns 24.218ns 0.000 0.000 120.8 50.5\nrandom_sampling.geo_dist 37260000 26.713ns 0.044ns 26.564ns 26.896ns 0.000 0.000 129.8 55.9\n```\n\nCloses scylladb/seastar#2261\n\n* github.com:scylladb/seastar:\n perf_tests: measure and report also cpu cycles\n linux_perf_events: add user_cpu_cycles_retired\n linux_perf_event: user_instructions_retired: exclude_idle","shortMessageHtmlLink":"Merge 'perf_tests: add linux_perf_event::user_cpu_cycles_retired' fro…"}},{"before":"f583e21bce7048974a3b76adce2b4bafef068965","after":"5cd5383e73f9bd0c70b82b438829cc401b206b44","ref":"refs/heads/master","pushedAt":"2024-05-25T13:23:53.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"Merge 'github: s/clang++-18/clang++/' from Kefu Chai\n\nin 28b05551, we switched from ubuntu:jammy to fedora:40 as the building environment of our CI workflow. and we replaced the input parameter \"clang++-18\" in test.yml with \"clang++\", because in fedora:40, the clang++ executable does not have the postfix as the clang-18 installed by the setup-cpp action.\n\nbut we failed to update all of them in that change, that's why the \"check header\" step was not performed after that change.\n\nin this change, we replace that last \"clang++-18\" in the workflow to \"clang++\".\n\nCloses scylladb/seastar#2267\n\n* https://github.com/scylladb/seastar:\n github: s/clang++-18/clang++/\n include: include used headers","shortMessageHtmlLink":"Merge 'github: s/clang++-18/clang++/' from Kefu Chai"}},{"before":"532b795b9cf8149172a12ff2d1b941590985e0fa","after":"f583e21bce7048974a3b76adce2b4bafef068965","ref":"refs/heads/master","pushedAt":"2024-05-25T07:46:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"include: include used headers\n\nin b822c94b2b, we removed some \"#include\":s in std-compat.hh. despite\nthat the Seastar library and all tests still compile. some header are\nnot self-contained anymore.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2268","shortMessageHtmlLink":"include: include used headers"}},{"before":"87191c6231f0a19199049bfcfee89e6a5075f533","after":"532b795b9cf8149172a12ff2d1b941590985e0fa","ref":"refs/heads/master","pushedAt":"2024-05-23T16:45:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"iotune: allow user to set buffer size for random IO\n\nIn some cases the buffer size used by iotune was\nincorrect. Because of that, the reported IOPS\nfor random write was lower than expected.\n\nThis change adds '--random-io-buffer-size '\nparameter that enables users to force the buffer\nsize used in measurements of random read and\nrandom write IOPS.\n\nRefs: scylladb#1698\nSigned-off-by: Patryk Wrobel \n\nCloses scylladb/seastar#2204","shortMessageHtmlLink":"iotune: allow user to set buffer size for random IO"}},{"before":"a6369cd2f8b35e23ffd2182aed688c639c1deee7","after":"87191c6231f0a19199049bfcfee89e6a5075f533","ref":"refs/heads/master","pushedAt":"2024-05-23T13:53:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"abort_source: add method to get exception pointer\n\nCurrently to check the exact type of an exception in abort_source,\nwe need to rethrow it.\n\nAdd method to get abort_source exception_ptr.\n\nCloses scylladb/seastar#2263","shortMessageHtmlLink":"abort_source: add method to get exception pointer"}},{"before":"b822c94b2bb5860003995ff3fa197709dfc46c2c","after":"a6369cd2f8b35e23ffd2182aed688c639c1deee7","ref":"refs/heads/master","pushedAt":"2024-05-23T13:51:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"github: cancel a job if it takes longer than 40 minutes\n\nin general, it takes less than 34 minutes to build the tree from\nscratch and to test all tests, even with DPDK enabled. but to be\non the safe side, let's add 6 more minutes.\n\nthis helps to stop if we run into some unexpected infra issues,\nor to identify some very time consuming tests.\n\nsee also\nhttps://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2258","shortMessageHtmlLink":"github: cancel a job if it takes longer than 40 minutes"}},{"before":"914a4241c36c41a327cfbe77813bffc6d0de1274","after":"b822c94b2bb5860003995ff3fa197709dfc46c2c","ref":"refs/heads/master","pushedAt":"2024-05-23T13:49:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"std-compat: remove #include:s which were added for pre C++17\n\nthese `#include`s were introduced by 0bbcbbae and 79e846e9, for backward\ncompatibility with pre-C++17 era. since we've dropped C++17 support,\nand now only support C++20 and up. let's remove these cruft.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2257","shortMessageHtmlLink":"std-compat: remove #include:s which were added for pre C++17"}},{"before":"67a14f94492198f996888aab2cefe99a83294582","after":"914a4241c36c41a327cfbe77813bffc6d0de1274","ref":"refs/heads/master","pushedAt":"2024-05-21T15:03:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"sstring: deprecate formatters for vector and unordered_map\n\nSeastar is an event-driven framework, not a collection of libraries\nfor multiple purposes. also, when migrating to a {fmt} only formatting\nsolution, the operator<< based printers can actually makes our lives\nmore difficult. for instance, Boost.test expects operator<< and fall\nback to `boost_test_print_type()`, so even if we provide a templated\n`boost_test_print_type()` which accepts all types which can be formatted\nwith {fmt}, if Boost.test is able to find the operator<<-based\nformatter for a std::vector, it just picks it, and then hits the brick\nwall, as the elements in the vector does not provide an operator<<-based\nformatter.\n\ninstead of enabling these operator<<:s to print the element with\nfmt::formatter support, let's just disable them on user's request.\n\nin this change, a new option is added. so that user can disable these\nformatter on request. and these two formatters are marked deprecated.\nso in future, we can remove them when we bump up the API level or just\ncompletely drop them.\n\nFixes #1544\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"sstring: deprecate formatters for vector and unordered_map"}},{"before":"d8a70b3906f5d70cf1367feba7099e9bbace18af","after":"67a14f94492198f996888aab2cefe99a83294582","ref":"refs/heads/master","pushedAt":"2024-05-21T13:01:34.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"Merge 'github: build with fedora 40 and add 2 build combinations back' from Kefu Chai\n\nin order to address the infra issues caused by unreliable connection to llvm's apt repo, and to bring the two missing build combinations back, in this series, we switch from `setup-cpp` action to fedora 40, and extract the test job into a reusable workflow.\n\nCloses #2248\n\n* github.com:scylladb/seastar:\n github: use fedora:40 image for testing\n github: add 2 testing combinations back to the matrix\n github: extract test.yaml into a resusable workflow","shortMessageHtmlLink":"Merge 'github: build with fedora 40 and add 2 build combinations back…"}},{"before":"f83b7041853f154a1e1cab9d9e5d3668cf58910c","after":"d8a70b3906f5d70cf1367feba7099e9bbace18af","ref":"refs/heads/master","pushedAt":"2024-05-20T13:51:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"build: use initial-exec TLS when building seastar as shared library\n\nquote from\nhttps://patchwork.ozlabs.org/project/glibc/patch/8734v1ieke.fsf@oldenburg.str.redhat.com/\n\n> On the glibc side, we should recommend that intercepting mallocs and its\n> dependencies use initial-exec TLS because that kind of TLS does not use\n> malloc. If intercepting mallocs using dynamic TLS work at all, that's\n> totally by accident, and was in the past helped by glibc bug 19924.\n\nso instead of allocating TLS variables using malloc, let's allocate them\nusing initial-exec TLS model. another approach is to single out the\nstatic TLS variables in the code path of malloc/free and apply\n`__attribute__ ((tls_model(\"initial-exec\")))` to them, and optionally\nonly do this when we are building shared library.\n\nbut this could be overkill as\n\n1. we build static library in the release build\n2. the total size of the static TLS variables is presumably small, so\n the application linking against the seastar shared library\n should be able to afford this.\n\nsee also\nhttps://patchwork.ozlabs.org/project/glibc/patch/8734v1ieke.fsf@oldenburg.str.redhat.com/\nand\nhttps://sourceware.org/bugzilla/show_bug.cgi?id=19924\n\nFixes #2247\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"build: use initial-exec TLS when building seastar as shared library"}},{"before":"855fc4b401ee17498fc10531a4117ab02be24bfe","after":"f83b7041853f154a1e1cab9d9e5d3668cf58910c","ref":"refs/heads/master","pushedAt":"2024-05-20T10:26:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"coroutine: preserve this->container before calling dtor\n\nin `intermediate_task`, we intend to destroy the task right after\nextracting the value from it, and then call `awaiter.process()`.\nbut GCC-14 warns at seeing this:\n\n```\nFAILED: tests/unit/CMakeFiles/test_unit_coroutines.dir/coroutines_test.cc.o\nccache /usr/bin/g++ -DBOOST_ALL_DYN_LINK -DFMT_SHARED -DSEASTAR_API_LEVEL=7 -DSEASTAR_DEFERRED_ACTION_REQUIRE_NOEXCEPT -DSEASTAR_HAS_MEMBARRIER -DSEASTAR_HAVE_ASAN_FIBER_SUPPORT -DSEASTAR_HAVE_HWLOC -DSEASTAR_HAVE_NUMA -DSEASTAR_HAVE_SYSTEMTAP_SDT -DSEASTAR_HAVE_URING -DSEASTAR_LOGGER_COMPILE_TIME_FMT -DSEASTAR_LOGGER_TYPE_STDOUT -DSEASTAR_SCHEDULING_GROUPS_COUNT=16 -DSEASTAR_SSTRING -DSEASTAR_TESTING_MAIN -DSEASTAR_TESTING_WITH_NETWORKING=1 -I/__w/seastar/seastar/tests/unit -I/__w/seastar/seastar/src -I/__w/seastar/seastar/include -I/__w/seastar/seastar/build/release/gen/include -I/__w/seastar/seastar/build/release/gen/src -O2 -g -DNDEBUG -std=gnu++23 -U_FORTIFY_SOURCE -Wno-maybe-uninitialized -Wno-error=unused-result -UNDEBUG -Wall -Werror -Wimplicit-fallthrough -Wdeprecated -Wno-error=deprecated -Wno-error=stringop-overflow -Wno-error=array-bounds -Wdeprecated-declarations -Wno-error=deprecated-declarations -fvisibility=hidden -gz -MD -MT tests/unit/CMakeFiles/test_unit_coroutines.dir/coroutines_test.cc.o -MF tests/unit/CMakeFiles/test_unit_coroutines.dir/coroutines_test.cc.o.d -o tests/unit/CMakeFiles/test_unit_coroutines.dir/coroutines_test.cc.o -c /__w/seastar/seastar/tests/unit/coroutines_test.cc\nIn file included from /__w/seastar/seastar/tests/unit/coroutines_test.cc:46:\n/__w/seastar/seastar/include/seastar/coroutine/all.hh: In member function 'void seastar::coroutine::all::intermediate_task::run_and_dispose() [with long unsigned int idx = 1; Futures = {seastar::future, seastar::future}]':\n/__w/seastar/seastar/include/seastar/coroutine/all.hh:138:13: error: '*this.seastar::coroutine::all, seastar::future >::intermediate_task<1>::container' is used uninitialized [-Werror=uninitialized]\n 138 | container.template process();\n | ^~~~~~~~~\n```\n\nit believes that after returning from the destructor of\n`intermediate_task`, the instance is in an \"uninitialized\" state,\nso if we reference any of its member variables. we could have\nundefined behavior. this is a false alarm, as the destructor does\nnot change the value of `container` reference. but this could be\nstill confusing at first glance. so, to silence the warning, let's\npreserve the `container` before calling the destructor, and use\nthe preserved reference to call `awaiter::process()`.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2246","shortMessageHtmlLink":"coroutine: preserve this->container before calling dtor"}},{"before":"397f1deae056e56d784bd9583890dbc007bdb5cf","after":"855fc4b401ee17498fc10531a4117ab02be24bfe","ref":"refs/heads/master","pushedAt":"2024-05-19T18:58:49.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"Merge 'build: support enabled options when building seastar-module' from Kefu Chai\n\nbefore this change, when building seastar-module, we don't check for\nthe enabled features. so, for instance io uring backend is not enabled\neven `Seastar_IO_URING` is set.\n\nin this series we\n\n* move `add_subdirectory(src)` down\n* `#include` the used header files\n* check for the enabled options,\n* link against the related libraries, and\n* add the required macro definitions\n\nthis should enable seastar-module to build with, for instance, io_uring\nbackend enabled. as `SEASTAR_HAVE_URING` enables this backend when\nbuilding `src/core/reactor_backend.cc`.\n\nFixes https://github.com/scylladb/seastar/issues/2249\n\nCloses scylladb/seastar#2252\n\n* github.com:scylladb/seastar:\n build: support enabled options when building seastar-module\n treewide: include required header files\n build: move add_subdirectory(src) down","shortMessageHtmlLink":"Merge 'build: support enabled options when building seastar-module' f…"}},{"before":"5918cb02b6886c7ae5a751fb72d9e1997eec3c9f","after":"397f1deae056e56d784bd9583890dbc007bdb5cf","ref":"refs/heads/master","pushedAt":"2024-05-19T17:02:02.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"Merge 'shared_mutex: Add RAII locks' from Dawid Mędrek\n\nIn this PR, we introduce RAII locks for `seastar::shared_mutex`, similar to `seastar::semaphore_units` and `seastar::gate::holder`.\n\nCloses #2196\n\n* github.com:scylladb/seastar:\n shared_mutex: Add tests for std::shared_lock and std::unique_lock\n shared_mutex: Add RAII locks","shortMessageHtmlLink":"Merge 'shared_mutex: Add RAII locks' from Dawid Mędrek"}},{"before":"5fd6cc91b6a75873a15b2f35a8c54a2d39e88382","after":"5918cb02b6886c7ae5a751fb72d9e1997eec3c9f","ref":"refs/heads/master","pushedAt":"2024-05-19T16:53:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"smp: allocate hugepages eagerly when kernel support is available\n\nInstead of deferring merging pages into hugepages to the transparent\nhugepage scanner, advise the kernel to do so immediately using the new\nMADV_POPULATE_WRITE and MADV_COLLAPSE advices.\n\nRefactor the prefaulter to attempt first to use MAP_POPULATE_WRITE\nto fault in a whole hugepage's worth of memory. This should fault\nthe range as a hugepage but for good measure use MADV_COLLAPSE too\n(which would be a no-op if the work was done in MADV_POPULATE_WRITE).\n\nCloses #2146","shortMessageHtmlLink":"smp: allocate hugepages eagerly when kernel support is available"}},{"before":"1be97852f4de6b50ad864d5fb61f59acabb062b5","after":"5fd6cc91b6a75873a15b2f35a8c54a2d39e88382","ref":"refs/heads/master","pushedAt":"2024-05-19T09:23:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"README.md: replace C++17 with C++23\n\nin 5d3ee98073, we dropped the support of C++17 in our CI and building\nsystem. but README.md was not updated. so in this change, let's update\nit accordingly.\n\nSigned-off-by: Kefu Chai \n\nCloses #2250","shortMessageHtmlLink":"README.md: replace C++17 with C++23"}},{"before":"a7fb8ffa6548ea49c4f81dbcb4e7218b00e9460c","after":"1be97852f4de6b50ad864d5fb61f59acabb062b5","ref":"refs/heads/master","pushedAt":"2024-05-19T09:21:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"treewide: do not check for SEASTAR_COROUTINES_ENABLED\n\nsince we've dropped the support for C++17, and we even started using\nC++20 coroutines in 1d56a1d17a unconditionally in the implementation\nof Seastar, there is no need to check the support of coroutine anymore.\n\nso, in this change, we\n\n* stop check and define SEASTAR_COROUTINES_ENABLED\n* do not check SEASTAR_COROUTINES_ENABLED\n* drop the code for handling the case where SEASTAR_COROUTINES_ENABLED\n is not defined.\n\nSigned-off-by: Kefu Chai \n\nCloses #2253","shortMessageHtmlLink":"treewide: do not check for SEASTAR_COROUTINES_ENABLED"}},{"before":"0ad9d82359be20c4c6c83b09c3bb72fa8706526e","after":"a7fb8ffa6548ea49c4f81dbcb4e7218b00e9460c","ref":"refs/heads/master","pushedAt":"2024-05-16T13:27:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"README.md: replace CircleCI badge with GitHub badge\n\nnow that we've dropped the CircleCI integration, let's update\nthe badge accordingly.\n\nSigned-off-by: Kefu Chai \n\nCloses #2245","shortMessageHtmlLink":"README.md: replace CircleCI badge with GitHub badge"}},{"before":"97aa2474be7502b70731a8a7f1b1961d2737b195","after":"0ad9d82359be20c4c6c83b09c3bb72fa8706526e","ref":"refs/heads/master","pushedAt":"2024-05-16T12:34:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"weak_ptr: Make it possible to convert to \"compatible\" pointers\n\nThe patch introduces weak_ptr(weak_ptr&&) constructor that creates\nweak_ptr out of convertible to T* Y's. This has two implications.\n\nFirst, the main one, is that it's now possible to obtain a constant weak\npointer on an object.\n\nAnother, a nice side effect, is: given a base-class we can now create\nweak_ptr out of weak_ptr.\n\nSigned-off-by: Pavel Emelyanov ","shortMessageHtmlLink":"weak_ptr: Make it possible to convert to \"compatible\" pointers"}},{"before":"223eccf09c3e0835e61ba737fdc9056a1112eb23","after":"97aa2474be7502b70731a8a7f1b1961d2737b195","ref":"refs/heads/master","pushedAt":"2024-05-16T12:21:14.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"Merge 'build: use DPDK_MACHINE=haswell when testing dpdk build on github-hosted runner' from Kefu Chai\n\nwhen building dpdk on a building host which has AVX10.1 ISA support,\nwith Clang 18, we have following failure\n```\n/usr/lib/llvm-18/bin/clang -Ilib/net/libnet_crc_avx512_lib.a.p -Ilib/net -I../../../../../../dpdk/lib/net -I. -I../../../../../../dpdk -Iconfig -I../../../../../../dpdk/config -Ilib/eal/include -I../../../../../../dpdk/lib/eal/include -Ilib/eal/linux/include -I../../../../../../dpdk/lib/eal/linux/include -Ilib/eal/x86/include -I../../../../../../dpdk/lib/eal/x86/include -Ilib/eal/common -I../../../../../../dpdk/lib/eal/common -Ilib/eal -I../../../../../../dpdk/lib/eal -Ilib/kvargs -I../../../../../../dpdk/lib/kvargs -Ilib/metrics -I../../../../../../dpdk/lib/metrics -Ilib/telemetry -I../../../../../../dpdk/lib/telemetry -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-missing-field-initializers -D_GNU_SOURCE -Wno-error -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -DCC_X86_64_SSE42_PCLMULQDQ_SUPPORT -DCC_X86_64_AVX512_VPCLMULQDQ_SUPPORT -mavx512f -mavx512bw -mavx512dq -mavx512vl -mvpclmulqdq -mavx2 -mavx -MD -MQ lib/net/libnet_crc_avx512_lib.a.p/net_crc_avx512.c.o -MF lib/net/libnet_crc_avx512_lib.a.p/net_crc_avx512.c.o.d -o lib/net/libnet_crc_avx512_lib.a.p/net_crc_avx512.c.o -c ../../../../../../dpdk/lib/net/net_crc_avx512.c\nError: ../../../../../../dpdk/lib/net/net_crc_avx512.c:324:22: error: always_inline function '_mm512_broadcast_i32x4' requires target feature 'evex512', but would be inlined into function 'crc32_load_init_constants' that is compiled without support for 'evex512'\n 324 | crc32_eth.rk1_rk2 = _mm512_broadcast_i32x4(a);\n | ^\n```\n\naccording to https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html\nand\nhttps://github.com/llvm/llvm-project/blob/release/18.x/clang/docs/UsersManual.rst#x86,\nwe should either use `-mevex512` or use `-mavx10.1-512` for accessing these new vectorized instructions provided by AVX10.1.\n\nwe also pass `-march=native` to the compiler. and it turns out that at least some github-hosted runners do not support AVX10.1 ISA, but the Clang 18 compiler does. so this combination breaks the build, as dpdk tries to check if compiler supports AVX512, and if it does, dpdk builds the AVX512 C files with this unsupported combination. that's why we\nhave build failures recently.\n\nto address this issue, instead of using \"native\" as the value of `Seastar_DPDK_MACHINE`, let's use a more conservative but still capable architecture supported by github-hosted runner: \"haswell\", which supports the instruction set that is used by quite a few DPDK optimizations. so we can still have a decent coverage for building with DPDK, and for testing the build. please note, we don't test Seastar with the DPDK backend yet.\n\nto enable the workflow to pass extra options to `configure.py`, we change the \"cooks\" parameter in the matrix to \"options\", and append \"--dpdk-machine haswell\" to it, so that we use this option only when testing the dpdk build.\n\nFixes #2242\n\nCloses scylladb/seastar#2243\n\n* github.com:scylladb/seastar:\n build: use DPDK_MACHINE=haswell when testing dpdk build on github-hosted runner\n build: add --dpdk-machine option to configure.py\n build: stop translating -march option to names recognized by DPDK","shortMessageHtmlLink":"Merge 'build: use DPDK_MACHINE=haswell when testing dpdk build on git…"}},{"before":"169831e0760de36d3b0696132fe4cea61320f983","after":"223eccf09c3e0835e61ba737fdc9056a1112eb23","ref":"refs/heads/master","pushedAt":"2024-05-16T08:51:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"circleci: remove circleci CI tests\n\nsince we are using github CI which enables constributors to run\nthe CI tests when they create a pull request even if they don't\nhave an account on circleci. there is no need to keep circleci\nanymore.\n\nSigned-off-by: Kefu Chai \n\nCloses #2230","shortMessageHtmlLink":"circleci: remove circleci CI tests"}},{"before":"31f330368a18d1b2d1e7c42de259d37d3fe70517","after":"169831e0760de36d3b0696132fe4cea61320f983","ref":"refs/heads/master","pushedAt":"2024-05-15T17:24:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"github: encode matrix.enables in cache key\n\nas matrix.enables controls how the tree is configured, so we should\ntake it into consideration, otherwise the hit rate of cache would be\nlower than expected.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2228","shortMessageHtmlLink":"github: encode matrix.enables in cache key"}},{"before":"bb143055a7d6fb71795fe358f3a2d6d64b5c1843","after":"31f330368a18d1b2d1e7c42de259d37d3fe70517","ref":"refs/heads/master","pushedAt":"2024-05-15T17:23:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"doc/prometheus.md: add metrics? in URL exporter URI\n\nthe metrics are always exported with /metrics. so fix the document\nto reflect this fact.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2235","shortMessageHtmlLink":"doc/prometheus.md: add metrics? in URL exporter URI"}},{"before":"998d29970b9207c4ba8a125684f883c363d1010a","after":"bb143055a7d6fb71795fe358f3a2d6d64b5c1843","ref":"refs/heads/master","pushedAt":"2024-05-15T17:23:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"tests/unit/metrics_tester: use deferred_stop() when appropriate\n\nsimpler this way.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2241","shortMessageHtmlLink":"tests/unit/metrics_tester: use deferred_stop() when appropriate"}},{"before":"d1ec692b7d562e1a43ac881d39d070373967ae3b","after":"998d29970b9207c4ba8a125684f883c363d1010a","ref":"refs/heads/master","pushedAt":"2024-05-14T07:49:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"httpd: mark http_server_control::stop() noexcept\n\nthe only callee in `http_server_control::stop()` is\n`sharded::stop()`, which is `noexcept`. so we can assume that\n`http_server_control::stop()` is also `noexcept`.\n\nso, in this change, we mark `http_server_control::stop()` noexcept.\nthis allows us to use `deferred_stop` to stop an `http_server_control`.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2236","shortMessageHtmlLink":"httpd: mark http_server_control::stop() noexcept"}},{"before":"9c421161cd09c23901de9e449dcec5f11472caa8","after":"d1ec692b7d562e1a43ac881d39d070373967ae3b","ref":"refs/heads/master","pushedAt":"2024-05-14T06:31:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"reactor: print scheduling group along with backtrace\n\nBacktraces are printed in at least 2 cases:\n 1) during segfaults,\n 2) during reactor stalls.\nExtra context is always helpful in identifying the exact circumstances\nduring which the above happen. E.g. in a server application where user\nrequests are processed in one (or more) scheduling group(s), background\nprocesses are split between different scheduling groups as well, knowing\nthe scheduling group narrows the search space.\n\nPrior to this commit:\n\n```\nSegmentation fault on shard 0.\nBacktrace:\n ...\n```\n\nWith this commit:\n\n```\nSegmentation fault on shard 0, in scheduling group main.\nBacktrace:\n ...\n```\n\nRef https://github.com/scylladb/seastar/issues/2216\n\nCloses scylladb/seastar#2221","shortMessageHtmlLink":"reactor: print scheduling group along with backtrace"}},{"before":"5de9d95f97753c31ce888ca56fae7c102d706a3f","after":"9c421161cd09c23901de9e449dcec5f11472caa8","ref":"refs/heads/master","pushedAt":"2024-05-13T15:05:17.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"xemul","name":"Pavel Emelyanov","path":"/xemul","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4498177?s=80&v=4"},"commit":{"message":"Merge 'tests: add test for prometheus exporter' from Kefu Chai\n\nunlike metrics_test.cc, prometheus_test exercises the exporter server, so it tests the different query parameters supported by it.\n\nFixes #2233\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2237\n\n* https://github.com/scylladb/seastar:\n tests: add test for prometheus exporter\n tests: move apps/metrics_tester to tests/unit\n apps/metrics_tester: keep metrics with \"private\" labels\n apps/metrics_tester: support \"labels\" in conf.yaml\n apps/metrics_tester: stop server properly\n apps/metrics_tester: always start exporter\n apps/metrics_tester: fix typo in conf-example.yaml","shortMessageHtmlLink":"Merge 'tests: add test for prometheus exporter' from Kefu Chai"}},{"before":"42f15a5fd54b8a6e99b593202bbccf311e7e09e1","after":"5de9d95f97753c31ce888ca56fae7c102d706a3f","ref":"refs/heads/master","pushedAt":"2024-05-12T18:04:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"reactor: update lowres_clock when max_task_backlog is exceeded\n\nlowres_clock promises task_quota resolution, but we forgot to update\nlowres_clock when first, there's a need to preempt *and* second,\nmax_task_backlog is exceeded. all tasks that follow until backlog\nreduces below max target, will find lowres_clock with \"now\" time as\nof beginning of run_tasks() execution, despite multiple task quotas\nmay have passed since then.\n\nSigned-off-by: Raphael S. Carvalho ","shortMessageHtmlLink":"reactor: update lowres_clock when max_task_backlog is exceeded"}},{"before":"d3657ec70e934a1e747ed9e3e970bd8102648bf6","after":"42f15a5fd54b8a6e99b593202bbccf311e7e09e1","ref":"refs/heads/master","pushedAt":"2024-05-09T09:07:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nyh","name":"Nadav Har'El","path":"/nyh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/584227?s=80&v=4"},"commit":{"message":"prometheus: revert the condition for enabling aggregation\n\nin d7e16bbca0, we added the query time configuration for disabling\naggregation, but the condition for disabling aggregation was wrong.\nbefore that change, we always enable the aggregation, but after that\nchange, the aggregation is disabled when the value of query parameter\nof \"__aggregate__\" is not \"false\". in other words,\n\n- if this query parameter is not set, the aggregation is disabled. this\n changes the existing behavior.\n- if this query parameter's value is \"false\", the aggregation is\n enabeld. this is not the expected behavior.\n\nso, in this change\n\n- change the parameter from `disable_aggregation` to\n `enable_aggregation`. as the positive condition is\n always easier to understand.\n- and update the handling accodingly.\n\nFixes d7e16bbca0d81e2d3b43886c932c242eeffb6e96\nSigned-off-by: Kefu Chai \n\nCloses #2232","shortMessageHtmlLink":"prometheus: revert the condition for enabling aggregation"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVdkcuQA","startCursor":null,"endCursor":null}},"title":"Activity · scylladb/seastar"}