Pavel Emelyanov

Results 123 issues of Pavel Emelyanov

``` .../unit/tls_test.cc(89): error: in "test_x509_client_with_builder_system_trust_multiple": check buf.size() > 8 has failed ``` Failing assertion: ```c++ auto f = in.read(); return f.then([](temporary_buffer buf) { // std::cout > BOOST_CHECK(buf.size() > 8); });...

This place: https://github.com/scylladb/seastar/blob/f3749938ad9f77cce04359805742ba96aa635602/include/seastar/rpc/rpc_impl.hh#L480 deserves being a standard continuation chain to avoid `when_all` state allocation (and extra task to collect result) for no gain.

enhancement

```c++ auto recv_helper(signature sig, Func&& func, WantClientInfo wci, WantTimePoint wtp) { ... (void)try_with_gate(client->get_server().reply_gate(), [client, timeout, msg_id, data = std::move(data), permit = std::move(permit), &func] () mutable { try { auto args...

The `output_stream::flush()` looks like this ```c++ template future output_stream::flush() noexcept { if (!_batch_flushes) { return do_sync_flush(_fd); } else { if (_ex) { // flush is a good time to deliver...

If artificially aborting the call for `connection::send_buffer` with exception, the `send_helper` doesn't wake up. E.g. this patch ```patch --- a/src/rpc/rpc.cc +++ b/src/rpc/rpc.cc @@ -2,6 +2,7 @@ #include #include #include +#include...

Not all error paths in src/rpc code are checked, some do not even exist (e.g. #1137). It might make sense to add fault-injection for network communication and equip unit tests...

As shown in 0c2228a4916dc2dc66e9d587343ce436b92b7bef, on a busy target shard the `smp::submit_to` can take ~50ms to complete. Partially this is because a task that arrives from a smp message queue is...

(originated from scylladb/scylla#9505, more specifically -- https://github.com/scylladb/scylla/issues/9505#issuecomment-1128722209) Current cpu scheduler is flat, but each group typically runs tons of tasks inside, some may want to be more latency sensitive, but...

enhancement

As seen on i3.large node (2 cores) in scylladb/scylla#10704

When called it reserves the needed amount of elements in the `_list`, but when calling `.emplace_back()` it may try to populate the `_front` unique pointer and fail.