{"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:1719507074.0","currentOid":""},"activityList":{"items":[{"before":"3b856339bc931f662df04758d74375d5b88a5b70","after":"e5b80b4ce61b20666573dcbd0c3745baf9ac05a9","ref":"refs/heads/master","pushedAt":"2024-09-25T08:04:20.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"Merge 'json_formatter: Make formatter::write work for std::pair' from Stephan Dollberg\n\nPreviously the un/associative container overloads for `formatter::write`\nwere broken because it failed to find an overload for\n`write(output_stream, pair)`.\n\nTo fix this we make the `write(output_stream&, state, Iter, Iter)`\noverload actually `write(output_stream, state, pair)` so that the\nexisting overload that handles `pair` can be found.\n\nFurther we fix the fallback `write(output_stream, state, T)` overload to\ncall `formatter::write` recursively with the state stripped instead of\ncalling `to_json`. This keeps the recursive zero-copy nature of\n`formatter::write` intact.\n\nAll of the above mirrors how the existing overloads for `to_json`\nalready work.\n\nAdds some tests as well.\n\nCloses scylladb/seastar#2440\n\n* github.com:scylladb/seastar:\n json_formatter: Add tests for formatter::write\n json_formatter: Make formatter::write work for std::pair","shortMessageHtmlLink":"Merge 'json_formatter: Make formatter::write work for std::pair' from…"}},{"before":"cd7f3b8e8850cd80a4f6899cedc726e576c51abe","after":"3b856339bc931f662df04758d74375d5b88a5b70","ref":"refs/heads/master","pushedAt":"2024-09-25T07:44:17.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: do not print the default value of --c++-standard in help output\n\nbefore this change, the output of `./configure.py --help` looks like:\n```\n --c++-standard CPP_STANDARD\n C++ standard to build with [default: ]\n```\n\nbecause the default value of `--c++-standard` option is an empty string.\nprinting out its value is not helpful, and could be confusing.\n\nas the actual default value of this option varies depending on the\nused compiler, so even if we print out the deduced C++ standard,\nit is still confusing. not to mention that argparse does not\ndifferentiate the defaulted value in the returned namespace from\n`parse_args()` from the user specified one. so, a simpler approach\nis just do not specify the default value.\n\nin this change, we\n\n* do not specify the default value for `--c++-standard`, so its\n value would be `None` if not specified\n* do not print its default value in the `--help` output\n\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"build: do not print the default value of --c++-standard in help output"}},{"before":"e88b356fe466e9f2c022d7267bce24907fe81e7d","after":"cd7f3b8e8850cd80a4f6899cedc726e576c51abe","ref":"refs/heads/master","pushedAt":"2024-09-24T08:44:05.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":"Add APIs to get group details and to change ownership of file.\n\nThere are a few calls in scylladb that bypass Seastar APIs when making libc\nand syscall (getgrnam, chown), see issue scylladb/scylladb#17443.\n\nThis commit implements those APIs, which can be used to address the\nissue scylladb/scylladb#17443","shortMessageHtmlLink":"Add APIs to get group details and to change ownership of file."}},{"before":"a8b25888d0a896376701b75a3bc5dfefeb877881","after":"e88b356fe466e9f2c022d7267bce24907fe81e7d","ref":"refs/heads/master","pushedAt":"2024-09-24T04:40:04.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":"scripts/perftune.py: improve a dry-run printout\n\nLet's be optimistic when printing our intention during --dry-run execution:\nlet's print the IRQ affinity configuration intent as if the Rx channels setting was successful.\n\nWithout this patch we are going to print a different configuration\nintent than what we are actually going to configure.\n\nNote: unfortunatelly the same trick is not possible for RPS/XPS\nconfiguration intent because different NIC drivers are going to behave\ndifferently in regards to rps_cpus and xps_cpus files when one changes\nthe numeber of Rx channels.\n\nCloses scylladb/seastar#2443","shortMessageHtmlLink":"scripts/perftune.py: improve a dry-run printout"}},{"before":"e9915ccc76a8e9d0af22c3b396c947ae6ba78d47","after":"a8b25888d0a896376701b75a3bc5dfefeb877881","ref":"refs/heads/master","pushedAt":"2024-09-23T18:04:53.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: drop the workaround for a GCC bug\n\nthis change partially reverts 87a6540906, which workarounded a bug\nin GCC-10 and LLVM-3.8, see\nhttps://gcc.gnu.org/git/?p=gcc.git&a=commit;h=1842a04ce06a470b731bc9a29bfec17e6e147c3f\nand\nhttps://github.com/llvm/llvm-project/commit/894d5821e7af9128398ec8153f3cb4025ae9ad50\nrespectively.\n\nsince scylla builds with GCC-13 and GCC-14, LLVM-17 and LLVM-18.\nso we don't need to keep this workaround anymore.\n\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"build: drop the workaround for a GCC bug"}},{"before":"1147ac2b699ee5f583d7f022b6fbb0d468381d8d","after":"e9915ccc76a8e9d0af22c3b396c947ae6ba78d47","ref":"refs/heads/master","pushedAt":"2024-09-23T17:58: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":"cmake: Depend on libbsd if DPDK depends on it\n\nIf libbsd-dev is installed during build time, DPDK will depend on it\nwithout a way to turn this off.\n\nconfig/meson.build has the following:\n\nlibbsd = dependency('libbsd', required: false, method: 'pkg-config')\nif libbsd.found()\n dpdk_conf.set('RTE_USE_LIBBSD', 1)\nendif\n\nAnd lib/eal/include/rte_string_fns.h contains:\n\n#ifdef RTE_USE_LIBBSD\n#include \n\n#else /* no BSD header files, create own */\n#define strlcpy(dst, src, size) rte_strlcpy(dst, src, size)\n#define strlcat(dst, src, size) rte_strlcat(dst, src, size)\n\n#endif /* RTE_USE_LIBBSD */\n#endif /* FREEBSD */\n\nAccordingly the only way to address this inflexibility is to ensure that\ndpdk dependencies are appropriately transferred to\nINTERFACE_LINK_LIBRARIES of the dpdk library.\n\nSigned-off-by: Povilas Kanapickas ","shortMessageHtmlLink":"cmake: Depend on libbsd if DPDK depends on it"}},{"before":"f44a799c9080dbb2a0b44db4b344ac4d5fa920c1","after":"1147ac2b699ee5f583d7f022b6fbb0d468381d8d","ref":"refs/heads/master","pushedAt":"2024-09-19T18:11:38.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 'Python formatting' from Travis Downs\n\nThis series enforces python formatting via a CI check, starting with addr2line files.\n\nIt also formats those two files. The formatter is black which seems like the dominant formatter these days and it adheres to (a subset of) PEP8 and seems generally in line with our own formatting. The two config changes I made from the defaults were to extend the line length to 120 (from 88) and to disable \"string conversion\" (which changes almost all `'` to `\"`). This reduces the churn a lot but I'm also happy to remove those (or just the latter) if we want to go totally default.\n\nCloses scylladb/seastar#2441\n\n* github.com:scylladb/seastar:\n python: introduce a python formatting CI check\n addr2line: reformat with black\n scripts: add pyproject.toml","shortMessageHtmlLink":"Merge 'Python formatting' from Travis Downs"}},{"before":"0b752bb906443c6593297d128d9330b5827879dd","after":"f44a799c9080dbb2a0b44db4b344ac4d5fa920c1","ref":"refs/heads/master","pushedAt":"2024-09-19T16:04:52.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":"http: clarify the ownership in the router's doxygen comment\n\nEmphasize pointer ownership and deletion responsibility for each of methods which work with raw pointers\n\nCloses scylladb/seastar#2423","shortMessageHtmlLink":"http: clarify the ownership in the router's doxygen comment"}},{"before":"3f662f64c58f6f0569fb6b761bf3eb17f450851a","after":"0b752bb906443c6593297d128d9330b5827879dd","ref":"refs/heads/master","pushedAt":"2024-09-19T15:55:46.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":"build: check for P2582R1 support\n\nin a recent GCC packaging update in fedora, the maintainer backported a\npatch [PR116276](https://gcc.gnu.org/pipermail/gcc-patches/2024-August/659909.html)\nfrom GCC-14. the patch implements\n[P2582R1 - Wording for class template argument deduction from inherited constructors](https://wg21.link/P2582R1)\nwhich was accepted by C++23. since it's included by C++23, Clang\nis also working in this direction, see\nhttps://github.com/llvm/llvm-project/issues/92606.\n\nthis is the reason why gcc-14.2.1-3 fails to build the tree, which\nrelies on the behavior without P2582R1.\n\nin this change, we check for the support of P2581R1 with\nCMake, and defined `SEASTAR_P2581R1` macro if the proposed\nbehavior is implemented. we define the argument deduction guide\nfor `rpc::tuple` only if this macro is not defined. this should\naddress the build failure. and it is future-proof as once Clang\nsupports P2581R1, we can detect it, and disable the dedution\nguide as well.\n\nFixes #2445\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2446","shortMessageHtmlLink":"build: check for P2582R1 support"}},{"before":"69f88e2ff04f62b79e493e76b4a5edf4f01608af","after":"3f662f64c58f6f0569fb6b761bf3eb17f450851a","ref":"refs/heads/master","pushedAt":"2024-09-17T14:17:51.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":"README.md: use the github homepage of Ceph for Crimson\n\nReef is a major version of Ceph, and the URL of \"Ceph - Crimson\" is a\npage targeting Crimson developers. We should instead reference the\nproject's homepage or its github project address like other projects.\n\nso, in this change, let's reference Ceph's project page on GitHub.\n\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"README.md: use the github homepage of Ceph for Crimson"}},{"before":"ebb0385f30f51ea42f16f16aaa0de7d99fab0133","after":"69f88e2ff04f62b79e493e76b4a5edf4f01608af","ref":"refs/heads/master","pushedAt":"2024-09-17T12:06:21.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: s/Sanitizers_COMPILER_OPTIONS/Sanitizers_COMPILE_OPTIONS\n\nthis change addresses a regression introduced by ed889199, which\nrenamed the exported CMake variable of `Sanitizers_COMPILER_OPTIONS`\nto `Sanitizers_COMPILE_OPTIONS`, to be more consistent with the\nnames used by CMake. but it failed to update the top-level\n`CMakeLists.txt`, which was still using the old name to populate\nthis setting down to .pc. that's why some parent project fails to\nlink with the latest seastar with sanitizers enabled.\n\nin this change, we correct the variable name.\n\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"build: s/Sanitizers_COMPILER_OPTIONS/Sanitizers_COMPILE_OPTIONS"}},{"before":"8ca37ec709f980b9dcfda98479de6fcfcf18ca8b","after":"ebb0385f30f51ea42f16f16aaa0de7d99fab0133","ref":"refs/heads/master","pushedAt":"2024-09-17T09:20:12.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 'Introduce output_stream writing shugar' from Pavel Emelyanov\n\nWhen putting data into output_stream() a common pattern exists. Data is written into stream, then flushed and the end and the stream is closed. Any exception that may pop up in the middle shouldn't leave stream not closed, so in the code it looks smth like\n\n```\n try {\n for (...) {\n co_await out.write()\n }\n co_await out.flush()\n } catch () {\n ex = current_exception()\n }\n co_await out.close()\n if (ex) {\n throw ex\n }\n```\n\nThis is very typical to http client and handlers code that use request::write_bod() and response::write_body() overloads that call user-provided lambda giving it chunked or content-length output_stream. The caller then implements the paterns described above on its own.\n\nThis PR suggest a pair of helpers -- one is the util::write_to_stream() function that looks literally like above; the other one is request and response .write_body() overloads that accept a callback doing only the out.write() (for the loop) part of the above, flushing and closing the stream on its own.\n\nCloses scylladb/seastar#2431\n\n* github.com:scylladb/seastar:\n test: Update httpd test with request/reply body writing sugar\n http: Add sugar to request and response body writers\n utils: Add util::write_to_stream() helper","shortMessageHtmlLink":"Merge 'Introduce output_stream writing shugar' from Pavel Emelyanov"}},{"before":"e5d33ea82873fe564f9b960388ff73b8e496787a","after":"8ca37ec709f980b9dcfda98479de6fcfcf18ca8b","ref":"refs/heads/master","pushedAt":"2024-09-16T19:07:47.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":"seastar-addr2line: adjust llvm termination regex\n\nWe feed addresses into the underlying addr2line binary one at a time,\npassing:\n\n
\n0x0\n\neach time. The 0x0 \"dummy\" is there so we can tell when the decoding is\nfinished, as it will emit a characteristic line. We need this sentinel\nbecause the address itself can emit several frames (due to inlining).\n\nIf the dummy output (associated with the 0x0 frame) is not correctly\ndetected the symptom is that seastar-addr2line simply hangs while\ndecoding a backtrace.\n\nThis change adjusts the regex used to detect the dummy output, since\nin the case where ASAN is linked in it can be different than we\nexpected (the file will be an ASAN internal thing rather than ??).","shortMessageHtmlLink":"seastar-addr2line: adjust llvm termination regex"}},{"before":"d90a3b6a4894739591cb41966bfff2ba63b0dc95","after":"e5d33ea82873fe564f9b960388ff73b8e496787a","ref":"refs/heads/master","pushedAt":"2024-09-15T17:06:27.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":"README.md: add Crimson project","shortMessageHtmlLink":"README.md: add Crimson project"}},{"before":"2c1da84a27b65b5cf703737ff331cfd1956ea7ad","after":"d90a3b6a4894739591cb41966bfff2ba63b0dc95","ref":"refs/heads/master","pushedAt":"2024-09-13T14:18: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":"rpc: conditionally use fmt::runtime() based on SEASTAR_LOGGER_COMPILE_TIME_FMT\n\nin 8c58a723, we fixed the build failure when passing\n`fmt::format_string<>` to `fmt::runtime()`. but we were checking the fmt\nstring's type to see if it is a `const char*`. this works fine. as there\nare only two cases,\n\n1. `SEASTAR_LOGGER_COMPILE_TIME_FMT` is defined, and a templated\n parameter of `fmt::format_string<...>` is passed in.\n2. `SEASTAR_LOGGER_COMPILE_TIME_FMT` is not defined, and a `const char*`\n pointer is passed in.\n\nit would be better if we can check the same macro and dispatch based on\nit to pass `fmt` or `fmt::runtime(fmt)` to `fmt::format_to()`, for\n\n- better readability. as we are more consistent this way.\n- probably faster compilation. the preprocessor pass could be faster\n than the compiler which actually evaluate the `std::is_same_v`\n type trait.\n\nso, in this change, let's switch the plain macro based dispatch.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2425","shortMessageHtmlLink":"rpc: conditionally use fmt::runtime() based on SEASTAR_LOGGER_COMPILE…"}},{"before":"20cf440ae1840382a71f4332a0abf8e338ed63cf","after":"2c1da84a27b65b5cf703737ff331cfd1956ea7ad","ref":"refs/heads/master","pushedAt":"2024-09-11T20:08:24.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"Merge 'Make http::client::make_request() abortable' from Pavel Emelyanov\n\nThis PR adds abort_source& argument to client::make_request() method. With it, calling abort_source::request_abort() will break the request making process wherever it is and resolve the make_request() with abort_requested_exception exception.\n\nOne of the use-cases is to let client impose a timeout on the make_request(). For that, a timer should be armed that would request abort on the abort source passed to the method. In #2304 there was an attempt to put a timeout on connect() only, but this approach is more generic and allows aborting request at any stage, not only connecting.\n\nAnother scenario is stopping long operations on user request. There can be several examples of what \"long\" operation can be. One of them is simple connect() to the server -- TCP times out after 1 minute by default, and breaking this earlier can be useful. Another example of long operation is S3 file uploading. It may happen in \"parts\" and part can be of any size, so simple writing of the request body into the socket may take time.\n\nfixes: #2409\ncloses: #2304\n\nCloses scylladb/seastar#2410\n\n* github.com:scylladb/seastar:\n test: Add abortable http client test cases\n http/client: Add abortable make_request() API method\n http/client: Abort established connections\n http/client: Handle abort source in pool wait\n http/client: Add abort source to factory::make() method\n http/client: Pass abort_source here and there\n http/client: Idnentation fix after previous patch\n http/client: Merge some continuations explicitly","shortMessageHtmlLink":"Merge 'Make http::client::make_request() abortable' from Pavel Emelyanov"}},{"before":"ed88919915ba399e0e8aed4ea21760392654d708","after":"20cf440ae1840382a71f4332a0abf8e338ed63cf","ref":"refs/heads/master","pushedAt":"2024-09-11T11:26:00.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 'prometheus: sanitize label value for text protocol' from Gellért Peresztegi-Nagy\n\nThis PR fixes a bug in the prometheus text-based endpoint where a label value with a special character (backslash (\\), double-quote (\") or line feed (\\n)) makes the whole metrics output unparseable by prometheus.\n\nThe prometheus text protocol requires that the label value to be escaped. Note that this is only needed for the text protocol and not for the protobuf-based prometheus protocol.\n\n> label_value can be any sequence of UTF-8 characters, but the backslash (\\), double-quote (\"), and line feed (\\n) characters have to be escaped as \\\\, \\\", and \\n, respectively.\n\nFrom https://github.com/prometheus/docs/blob/main/content/docs/instrumenting/exposition_formats.md\n\nThis also adds a new test (`prometheus_http_test.cc`) to validate the output of the text-based prometheus response. I've introduced this because it was simpler to make explicit checks on the text output than modifying `prometheus_test.py` and `metrics_tester.cc` to do that. I am open to give a go at working this into `prometheus_test.py` if you prefer that.\n\nFinally, we switch to using `fmt::print` to format the metric value and the metric type instead of the originally used `std::to_string`. `std::to_string` is going to change its formatting behaviour in C++26 and so we prefer a more deterministic formatter here. The formatting matters because if the floating point numbers are converted to scientific notation, they can lose precision.\n\nAs an added benefit, using `fmt::print` writes these values to the output stream directly which means that we avoid a string copy when writing these values to the prometheus text-based response.\n\nCloses scylladb/seastar#2400\n\n* github.com:scylladb/seastar:\n prometheus: `fmt::print` to stringstream directly\n prometheus: sanitize label value for text protocol\n tests: unit test prometheus wire format","shortMessageHtmlLink":"Merge 'prometheus: sanitize label value for text protocol' from Gellé…"}},{"before":"5e9b43ae3d23131502b415c7f30ee94e5c3cbfac","after":"ed88919915ba399e0e8aed4ea21760392654d708","ref":"refs/heads/master","pushedAt":"2024-09-11T10:43:20.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: check the combination of Sanitizers\n\nwe are going to add a build with ThreadSanitizer enabled, but\nThreadSanitizer cannot be used along with AddressSanitizer. the\nexisting sanitizer detection checks each sanitizer separately, so\neven if the sanitizers combination does not work, the detection\nstill passes.\n\nalso, we hardwire two sanitizers in `FindSanitizers.cmake`, this\nis not extensible to the use case where we only need to selectively\nfind a certain (combination) of sanitizers.\n\nin order to address these problems, in this change\n\n* find specified component(s) in FindSanitizers.cmake, to prepare for\n the change which selectively specifies a subset of sanitizers\n* check if the compiler supports the combination of compile options\n required by all specified sanitizers\n\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"build: check the combination of Sanitizers"}},{"before":"be65ad38599a72ef68832d7067d6f8d8aea87572","after":"5e9b43ae3d23131502b415c7f30ee94e5c3cbfac","ref":"refs/heads/master","pushedAt":"2024-09-11T10:40:40.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":"tls: clear session ticket before releasing\n\nThe tls session ticket contains sensitive data which needs to be cleared\nbefore it is released with free.\n\nThis is documented in the man page of\n`gnutls_session_ticket_enable_server`:\n```\nRequest that the server should attempt session resumption using\nsession tickets, i.e., by delegating storage to the client.\n key must be initialized using\ngnutls_session_ticket_key_generate(). To avoid leaking that key,\nuse gnutls_memset() prior to releasing it.\n```","shortMessageHtmlLink":"tls: clear session ticket before releasing"}},{"before":"35fc02a296948b4451b0cb81e89637e56e946cdd","after":"be65ad38599a72ef68832d7067d6f8d8aea87572","ref":"refs/heads/master","pushedAt":"2024-09-11T10:29:03.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":"print: remove dead code\n\noperator<< overload for `const void*` was commented out in ceb0c942.\nthis code has been around for more than 8 years at the time of writing.\nthere is not point to keep it anymore.\n\nSigned-off-by: Kefu Chai ","shortMessageHtmlLink":"print: remove dead code"}},{"before":"d28c9a25c7e8f4e5dc302d73e5040980efa99beb","after":"35fc02a296948b4451b0cb81e89637e56e946cdd","ref":"refs/heads/master","pushedAt":"2024-09-11T10:25:50.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"avikivity","name":"Avi Kivity","path":"/avikivity","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1017210?s=80&v=4"},"commit":{"message":"Merge 'Add \"batch\" requests submission to io-tester' from Pavel Emelyanov\n\nCurrently io-tester supports two kinds of IO workloads -- continuous and rated. In the former case requests come one after another from several fibers, in the latter case fibers submit requests at a given rate one at a time.\n\nIn real life the incoming requests pattern is not that simple. A nice approach to pretty common pattern can be to submit requests in batches at some rate. Say, once every 200 milliseconds 10 requests are queued at once.\n\nOf course, in reality it's even more convoluted, e.g. once every 200 ms there can comes a _sequence_ of, say, 10 requests with some small pauses in between, but submitting them in a one-time batch gives good approximation.\n\nAlso this PR simplifies the continuous and rate-based submission code to make the new batch parameter apply smoother.\n\nCloses scylladb/seastar#2402\n\n* github.com:scylladb/seastar:\n io-tester: Introduce batches to rate-based submission\n io-tester: Generalize issueing request and collecting its result\n io-tester: Cancel intent once\n io-tester: Dont carry rps/parallelism variables over lambdas\n io-tester: Simplify in-flight management","shortMessageHtmlLink":"Merge 'Add \"batch\" requests submission to io-tester' from Pavel Emely…"}},{"before":"8c58a7237378314b4ba971621054c6c907808a3d","after":"d28c9a25c7e8f4e5dc302d73e5040980efa99beb","ref":"refs/heads/master","pushedAt":"2024-09-10T09:55:11.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/lambda-coroutine-fiasco: reword for better readability\n\nrewrite part of the document to enhance readability.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2401","shortMessageHtmlLink":"doc/lambda-coroutine-fiasco: reword for better readability"}},{"before":"56d18e2160308921e48ef939235bc1f550a707d9","after":"8c58a7237378314b4ba971621054c6c907808a3d","ref":"refs/heads/master","pushedAt":"2024-09-09T11:58: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":"rpc: fix compilation error caused by fmt::runtime()\n\nDepending on the 'SEASTAR_LOGGER_COMPILE_TIME_FMT' the declaration\nof 'logger::log()' function may use either 'fmt::format_string' or\n'const char*' format parameter.\n\nIn the case of the usage of 'const char*', there is a need to call\n'fmt::runtime()' function to obtain format_string.\n\nWhen the project was built on Ubuntu 22.04 using the steps described\nin the tutorial, there was a compilation error related to passing\nargument with type 'fmt::format_string<>' to 'fmt::runtime()' that\nhandles characters strings.\n\nThis change introduces contexpr if statement to remove the compilation\nerror and use 'fmt::runtime()' only when the function takes 'const char*'.\n\nSigned-off-by: Patryk Wrobel ","shortMessageHtmlLink":"rpc: fix compilation error caused by fmt::runtime()"}},{"before":"44cc54e4423397ddd3729bcbc4d33727ca2f824d","after":"56d18e2160308921e48ef939235bc1f550a707d9","ref":"refs/heads/master","pushedAt":"2024-09-06T07:29:22.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":"tutorial: explain the use case of rethrow_exception and coroutine::exception\n\nthe provided information would allow developer to make a better choice\nbetween these two options that meets their needs.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2086","shortMessageHtmlLink":"tutorial: explain the use case of rethrow_exception and coroutine::ex…"}},{"before":"e3249a8ede9a16127cd2e6995b02602649ea305f","after":"44cc54e4423397ddd3729bcbc4d33727ca2f824d","ref":"refs/heads/master","pushedAt":"2024-09-06T07:19: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":"reactor: print more informative error when io_submit fails\n\nwhen io_submit() fails with errno of ENOTSUP, there are good chances\nthat the application is sending i/o requests to a network filesystem\nor a stacked filesystem. instead of printing\n\n> seastar - io_submit: Operation not supported\n\nlet's print\n\n> seastar - could not submit io. this happens when accessing filesystem which does not support asynchronous direct I/O\n\nRefs #1947\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#1949","shortMessageHtmlLink":"reactor: print more informative error when io_submit fails"}},{"before":"2d64e0560df777aa25d63110dbf89905d8362be0","after":"e3249a8ede9a16127cd2e6995b02602649ea305f","ref":"refs/heads/master","pushedAt":"2024-09-03T19:11:15.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 'treewide: use fmtlib's fmt::format_string in format() ' from Kefu Chai\n\nthis series enables `seastar::format()` to use compile-time format check.\n\nusing `fmt::format_string` would allow us to perform compile-time\nformat checking. so in this change, we switch to `fmt::format_string`\nwhen fmtlib's version is greater or equal to 8.0, which introduced\nthe compile-time checking.\n\nalso, because the `fmt::format_string` can only be instantiated with\na compile-time constexpr, the fmt string specified in test is changed\nto a constexpr accordingly.\n\nplease note, this is a breaking change which might require caller to use\n`seastar::format()` if the tree is compiled with libstdc++ 13 or a standard\nlibrary with `std::formt()` implemented.\n\nCloses scylladb/seastar#1727\n\n* github.com:scylladb/seastar:\n print: use fmtlib's fmt::format_string in format()\n rpc: do not use seastar::format() in rpc logger\n treewide: s/format/seastar::format/","shortMessageHtmlLink":"Merge 'treewide: use fmtlib's fmt::format_string in format() ' from K…"}},{"before":"f03f7df1639d00581012a5bc6bda62ad82a849ca","after":"2d64e0560df777aa25d63110dbf89905d8362be0","ref":"refs/heads/master","pushedAt":"2024-09-03T08:26:14.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":"README.md: note GitHub discussions\n\nsince we enabled the GitHub discussion, we might want encourage user\nto use it.\n\nin this change\n\n* reformat the \"Resource\" section so it is more structured. and\n categorize the different options for claity\n* add GitHub discussions to the bulletin list, so that users are\n aware of this new option for retrieving information and for\n contributing.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2418","shortMessageHtmlLink":"README.md: note GitHub discussions"}},{"before":"644bb662e5aa0268b6c4ae59d4546423d6180d1f","after":"f03f7df1639d00581012a5bc6bda62ad82a849ca","ref":"refs/heads/master","pushedAt":"2024-08-30T11:54:50.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: add document for testing with seastar\n\nsince Boost.Test does not provide builtin support for testing\ntest cases implemented with coroutine. we have our own test runner\nand macros for declaring tests. for new developers these macros\nand the macros like `BOOST_AUTO_TEST_CASE` could be confusing.\n\nthis document intend to clarify the declaration and organization\nof tests in Seastar and Seastar applications using Seastar's testing\nframework.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2407","shortMessageHtmlLink":"doc: add document for testing with seastar"}},{"before":"c3e826ad1197f2610138f3bcfaeb0b458f8fb799","after":"644bb662e5aa0268b6c4ae59d4546423d6180d1f","ref":"refs/heads/master","pushedAt":"2024-08-30T11:53:13.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":"seastar/testing: only include used headers\n\nincluding unused header hurts the readability of source code. and\ncould potentially slow down the compiling.\n\nthese unused headers were identified with clang-include-cleaner\nwith following process:\n\n1. ./configure.py --disable-dpdk --compiler clang++ \\\n --compile-commands-json --mode debug\n2. find include/seastar/testing -name *.hh \\\n -exec echo {} \\; \\\n -exec clang-include-cleaner --print=changes -p build/debug {} \\;\n3. audit all the reported unused headers, check if\n they are used or not by inspecting the header\n files in the report, and remove the includes which\n are not used. add the marks to the one which are\n actually used.\n\nthe \"IWYU\" marks are documented at\nhttps://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md,\nsince clang's include-cleaner supports IWYU pragma. they are used\nto prevent the false alarms in future.\n\nSigned-off-by: Kefu Chai \n\nCloses scylladb/seastar#2413","shortMessageHtmlLink":"seastar/testing: only include used headers"}},{"before":"3b0d5a521f322df913590ac909971077e16adf46","after":"c3e826ad1197f2610138f3bcfaeb0b458f8fb799","ref":"refs/heads/master","pushedAt":"2024-08-30T06:48:17.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":"signal: add seastar signal api\n\nCloses scylladb/seastar#2384","shortMessageHtmlLink":"signal: add seastar signal api"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNVQwODowNDoyMC4wMDAwMDBazwAAAATABvTX","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNVQwODowNDoyMC4wMDAwMDBazwAAAATABvTX","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0zMFQwNjo0ODoxNy4wMDAwMDBazwAAAASoWuM_"}},"title":"Activity · scylladb/seastar"}