Fixes the issue when we are trying to Report the error from JournalStreamer::OnCompletion
that is called from a proactor callback directly from the I/O fiber.
We can not use fiber mutexes in the I/O fiber so we switch to regular mutex and reduce its critical sections
as much as possible.
Should fix the following failure:
2628431732 (step):6:622
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
We already have a Fiber-aware DNS resolver in Helio, so it's trivial to
change and use.
I tested this end-to-end and it really resolves DNS addresses, not just
localhost.
Fixes#947
Introduced `max_multi_bulk_len` as a max limit when parsing RESP arrays
as well as `max_client_iobuf_len` as a max limit on the iobuf used to
read from a socket.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
If an empty buffer is passed to the socket Recv function - it returns error 103.
Even if we returned success, this would lead to the endless loop since the parser
requires more data to parse the load.
Fixes#1680
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* sec: Adjust flag checks when using TLS.
* Trust default certificates if no specific roots are given
* Add regression tests for the different scenarios
* Validate that client connections work as well
* refactor: Split redis I/O logic out of dfly::Replica
* Split DFLY shard replication into a separate class.
* Address comments from CR
* Add comments
* remove dead code
* Add a virtual dtor
* * Address comments by Shahar.
* Fix the redis replication code.
* And now fix the Dragonfly replication